links.arjun.tv/docs/end-user/smart-link-personalization

Smart Link Personalization

Route different visitors to different destinations from the same short link, based on location, device, traffic source, or behavioral segment.

Tip

Personalization runs at the edge with zero latency impact — visitors are routed before the page loads.

Key concepts

ConceptWhat it means
Personalization ruleA named set of conditions and a variant destination. When conditions match, the visitor goes to the variant instead of the default
Routing ruleLink-level rules set directly on a link (see Advanced Link Controls). Personalization rules operate at the handle level
ConditionWhat the platform checks: country, device, source, campaign, or segment
VariantThe alternative destination URL served when conditions match
Route previewA dry-run endpoint that shows which destination would be chosen for a given set of conditions
SegmentA visitor classification (e.g., returning, vip, engaged_prospect) derived from signals or assigned manually

How personalization works

The platform evaluates rules in this order:

  1. Link-level routing rules

    Rules set via routingRules on the link are checked first, in priority order.

  2. Handle-level personalization rules

    Checked next if no link-level rule matched.

  3. Default destination

    The link's base destinationUrl is used if no rules match.

Note

Link-level rules always take precedence over handle-level personalization rules.

Available conditions

ConditionTypeExampleWhat it checks
countryInString[]["US", "GB", "CA"]Visitor's country (from IP geolocation)
deviceInString[]["MOBILE", "TABLET"]Visitor's device type
sourceInString[]["email", "social"]Traffic source / referrer category
campaignInString[]["spring-launch"]Active campaign context
segmentInString[]["vip", "returning"]Visitor segment membership

Note

Conditions within a rule are AND-ed. If you set both countryIn: ["US"] and deviceIn: ["MOBILE"], the visitor must be in the US and on a mobile device for the rule to match.

Create personalization rules

  1. Open personalization

    Go to https://app.{PUBLIC_DOMAIN}, navigate to your handle, and open Personalization (or Campaigns).

  2. Create a rule

    Click Create Rule and give it a name (e.g., us-mobile-variant).

  3. Set conditions

    Choose the conditions: country, device, source, campaign, or segment.

  4. Set the variant

    Enter the variant destination URL.

  5. Save and preview

    Save and enable the rule. Use Route Preview to verify the rule fires correctly with sample inputs.

  6. Monitor

    Check Analytics with groupBy=segment to see how each segment performs.

Required auth

Auth modeUse case
CREATOR-level JWT or aboveCreate and manage personalization rules
PAT with personalization.* scopeAutomation
None (visitor-side)Edge personalization uses cookies and IP-based geolocation

Example: geo-targeting workflow

Goal: Route US visitors to a US landing page and everyone else to a global page.

  1. Create the link

    Create a link with the global page as the default destination:

    Request

        curl -sS -X PUT "https://api.10x.in/v2/handles/{handle}/links/product" \
          -H "Authorization: Bearer <access-token>" \
          -H "Content-Type: application/json" \
          -d '{"destinationUrl": "https://example.com/global", "title": "Product Page"}'

    Body

        {
          "destinationUrl": "https://example.com/global",
          "title": "Product Page"
        }
  2. Add the US variant

    Create a personalization rule for US visitors:

    Request

        curl -sS -X PUT "https://api.10x.in/v2/handles/{handle}/personalization-rules/us-variant" \
          -H "Authorization: Bearer <access-token>" \
          -H "Content-Type: application/json" \
          -d '{"enabled": true, "when": {"countryIn": ["US"]}, "variant": {"destinationUrl": "https://example.com/us"}}'

    Body

        {
          "enabled": true,
          "when": { "countryIn": ["US"] },
          "variant": { "destinationUrl": "https://example.com/us" }
        }
  3. Verify with route preview

    Test with a US visitor — expected destination: https://example.com/us.

    Test with a non-US visitor ("country": "DE") — expected destination: https://example.com/global (default).

Common errors
CodeErrorCause
400invalid_rule_conditionsCondition uses an unsupported field or empty array
400invalid_destination_urlVariant destination is not a valid HTTP(S) URL
404not_foundRule or link does not exist
403insufficient_roleCaller does not have CREATOR or higher role

Personalization layers at a glance

LayerWhere to configureScopeGuide
Link routing rulesroutingRules on each linkPer-linkAdvanced Link Controls
Handle personalization rulespersonalization-rules/{ruleId}Per-handleThis guide
Campaign targetingCampaign with segment conditionsPer-campaignCampaign Funnel Workflow
Chain signal rulesSignal-driven rules with behavioral triggersCross-sessionChain Signals and Prefetch
Vector embeddingsContent-aware auto-rerankingPer-handle, automaticVector Embedding Targeting