Tracking guide
SmartLinks
One link that routes each click to the best offer in a pool by priority, weight, EPC or round robin, with geo and device filters and fail-traffic handling.
A SmartLink is a tracking link that does not point at one offer. The edge picks a member offer per click from the SmartLink's pool, then runs the normal click pipeline for that offer (rules, caps, fraud, dedupe), so every guard of the chosen offer still applies. Use SmartLinks to monetise mixed traffic, to rotate offers, and to send traffic to the best-converting offer automatically.
URLs
https://go.yourbrand.com/s/{smartlink_hash}/{partner_hash}
https://go.yourbrand.com/s/{smartlink_hash}?p={partner_hash}
Clicks are attributed to the member offer that was chosen, and the click records the smartlink_id. Generate the link from the SmartLink page in the admin portal or with POST /smartlinks/{id}/tracking-link (it can also return a QR code). GET /smartlinks/{id}/report shows the performance of the pool.
Routing modes
Set with routing_type:
| Mode | Behaviour |
|---|---|
priority | Lowest priority number first; members sharing a priority are ordered by a weighted draw. |
weight | Weighted random order across eligible members (deterministic per click id). |
round_robin | Rotates through eligible members; a Redis counter keeps the rotation fair across edge instances. |
kpi_auto, epc | Ranks members by recent performance in the click's geo and device bucket over lookback_hours (default 24), by kpi.metric epc (default) or cr. Members with fewer than kpi.min_clicks clicks (default 20) are "unproven": they follow the proven ones in priority order, and about 10% of clicks explore the unproven members first so new offers get data. |
The edge walks the ranked list and takes the first member that passes its caps. KPI modes learn from conversions: ingest records conversions per offer, geo and device bucket in Redis and the edge reads them, so ranking adapts without manual work. Without data they behave like priority.
Members and filters
Each member (/smartlinks/{id}/offers) has priority, weight, status and optional filters: geo_allow, geo_deny, device_types (mobile means smartphone or tablet) and os. SmartLink-level targeting applies to the whole pool. A click whose geo or device matches no member goes to the catch-all offer (catch_all_offer_id), then to the fail-traffic target (offer, offer_url, offer_group or smartlink) and finally to fallback_url.
Access
blocked_partner_ids always wins. If allowed_partner_ids is not empty only those partners may use the SmartLink; otherwise is_open_to_partners decides whether any active partner may.
Things to know
- Rule sets of the member offer run after the pick. If the chosen member would deny the click, the click goes to fail traffic; the router does not try the next member. Caps are different: members at their cap are skipped while walking the ranked list.
- Caps on SmartLink members count clicks only, like offer caps.
- SmartLink-level
append_urladds key/value pairs to every destination. - The SmartLink
typeismanual(you choose members) orcategory.