AI Affiliate Tracking: Sub-IDs, Attribution and Postbacks
A deep dive into AI affiliate tracking: how clicks on AI adult offers become credited sales, attribution windows and last-touch rules, designing a sub-ID schema, choosing a tracker, server-to-server postbacks and reconciling numbers across platforms.
- 📅 Updated October 23, 2026
- ⏱️ 8 min read
By Dragan Verton, Guides editor
Key takeaways
- Tracking is a chain: click, attribution window, conversion, approval, payout. A break anywhere loses money.
- OmniPink uses last-touch attribution with a 180-day click window and 6 months of signup attribution.
- Design one sub-ID schema and use it everywhere, so every report answers a question.
- Server-to-server postbacks are more reliable than browser pixels, especially on mobile.
Every affiliate eventually learns the same lesson: you can't improve what you can't see. Tracking is how you see. It decides whether a sale is credited to you, which placement gets the credit, and whether your ad platform learns anything from your spend. With AI adult offers most income arrives as subscriptions and renewals, so every sale you fail to track is income you lose month after month.
The onboarding steps on tracking links and postbacks show you how to set things up. We'll explain how tracking actually works, so you can design a system that answers real questions and debug it when something breaks.
A sale travels through five links. Each one can break.
| Step | What happens | What can go wrong |
|---|---|---|
| 1. Click | The tracking link records the visit and your labels | Shorteners or plugins strip parameters |
| 2. Attribution | The visit is tied to you for the tracking window | Another affiliate's later click takes the credit |
| 3. Conversion | The visitor subscribes and the sale is recorded | Payment fails, visitor never returns |
| 4. Approval | The sale is reviewed and approved | Refunds, chargebacks or rule breaks |
| 5. Payout | Approved sales are paid on schedule | Missing payment details or minimums not met |
When numbers look wrong, walk the chain from the start. Most problems live in step 1.
Attribution decides which affiliate gets credit for a sale.
- Last touch: the most recent affiliate click before the sale wins. This is how OmniPink attributes sales.
- Click window: how long after a click a sale still counts. OmniPink uses 180 days.
- Signup attribution: once a visitor creates an account through your link, their purchases stay credited to you for 6 months.
Example: a visitor clicks your review link on 1 March, browses, leaves and subscribes on 20 March without clicking anything else. The sale is yours. If they had clicked another affiliate's link on 15 March, that later click would win under last touch.
Long windows matter for adult buyers, who often take time to decide. They also mean your organic content keeps earning from visitors who return weeks later.
Sub-IDs are only useful if they are consistent. Decide your schema once and use it everywhere.
| Field | Answers the question | Example values |
|---|---|---|
| Source ID | Which channel? | reddit, blog, exoclick, discord |
| sub1 | Which property or campaign? | r-aiart, review-site, t1-mobile |
| sub2 | Which placement? | pinned, table, below-player |
| sub3 | Which creative or angle? | banner-03, memory-hook |
| sub4 | Which audience or country group? | t1, anime, en |
| sub5 | Tracker click ID (paid traffic) | {clickid} macro |
Naming rules
- Lowercase letters, numbers and dashes only.
- Short but readable:
below-playerbeatsbpandbelow-the-video-player-desktop. - Never put personal data in sub-IDs.
- Write the schema down and share it with anyone who builds links for you.
Tip: if a report can't answer a question you care about, add a field for it. If a field never changes a decision, stop filling it in.
SEO and review sites
Use source_id=blog, the page slug in sub1 and the placement in sub2: table, section button, in-text or verdict. After a month, sort by earnings per click to see which pages and placements deserve updates.
Reddit and communities
Use source_id=reddit or discord, the community in sub1 and the post type in sub2. Communities often send delayed sales, so give each placement at least a few weeks before judging it.
Short video and link-in-bio
Use the platform as Source ID, the account in sub1, the content series in sub2 and the bridge page button in sub3. The bridge page is where you learn which app each audience prefers.
Paid networks
Use the network as Source ID, the campaign in sub1, the zone or placement macro in sub3 and your tracker's click ID in sub5. This lets you match sales to zones even if your tracker goes down.
| Situation | Tracker needed? | Why |
|---|---|---|
| SEO, communities, social | Usually no | Sub-IDs in the affiliate dashboard are enough |
| One paid network with direct postbacks | Optional | The network can receive conversions directly |
| Several paid networks | Yes | One place to compare costs and conversions |
| Google, Meta, TikTok or Reddit ads | Yes | Their conversion APIs need a middleman |
Popular trackers include RedTrack, Voluum, BeMob, Binom and AnyTrack. They generate click IDs, receive postbacks and forward conversions to ad platforms.
| Method | How it works | Reliability |
|---|---|---|
| Server-to-server postback | The affiliate platform calls a URL on your tracker | High, independent of the visitor's browser |
| Browser pixel | A script or image loads in the visitor's browser | Lower, blocked by ad blockers and privacy settings |
Browsers increasingly limit third-party cookies and scripts, especially on mobile. Server-to-server postbacks avoid most of those problems because the visitor's browser isn't involved when the sale is reported.
A postback only works if your tracker's click ID was passed into the tracking link at click time. That is why sub5 matters for paid traffic.
- Redirect links pass through the tracking domain before the landing page. They work everywhere and record the click server side.
- Direct links point straight to the landing page and use an on-page script to record the click. They avoid an extra hop, which helps SEO and some ad platforms, but depend on the script loading.
Use redirect links by default and direct links where the landing page supports them and you have a reason to.
Not every recorded conversion is final. Understand the statuses before you judge a campaign:
- Pending: recorded and under review. New sales usually start here.
- Approved: confirmed, counted toward your payout and your tier.
- Rejected: refunded, charged back or outside the program rules. Not paid.
Because of review time, the last few days of any report always look weaker than they will end up. Compare complete periods, such as last week rather than the past three days, and remember that only approved sales count toward VIP at 20 and PRO at 100.
Your ad network, your tracker and the affiliate dashboard will rarely match exactly. Know which differences are normal:
| Difference | Usually caused by |
|---|---|
| Network clicks higher than tracker clicks | Bots, accidental clicks, slow pages, redirect drop-off |
| Tracker clicks higher than affiliate clicks | Parameters stripped between tracker and link |
| Affiliate sales higher than tracker conversions | Postback missing, wrong macro or empty click ID |
| Tracker conversions higher than approved sales | Pending or rejected sales not yet reflected |
A gap of a few percent is normal. A gap of 20% or more means something in the chain is broken.
Data is only useful if it changes what you do. A simple weekly routine turns reports into action:
- Rank placements by earnings per click. The top three get more effort next week.
- Find the biggest spender with the lowest return. Pause it or change one thing about it.
- Check the newest test. Is it ahead, behind or too early to tell?
- Write down one decision. Without a written decision, reports become a habit instead of a tool.
Over a few months, this routine compounds. Small weekly improvements on the placements that already work usually add more income than any new channel.
- Never pass names, emails or other personal data in sub-IDs or postbacks.
- Keep only the data you need for decisions.
- Respect platform rules on tracking and consent in the regions you target.
- Click one live link per channel in a private window.
- Confirm each click appears in your click report with the right labels.
- For paid traffic, confirm the click ID is filled and not a literal macro.
- Check the postback report for recent fires and success responses.
- Compare last week's sales across tracker and affiliate dashboard.
- Note any gap over a few percent and walk the chain to find it.
Do cookies still matter? Less than they used to. Server-side click recording and postbacks carry most of the weight, which is why clean links and click IDs matter more than browser settings.
What if a visitor uses two devices? If they click on a phone and subscribe on a laptop without signing in through your link, the sale may not be attributed. Signup attribution helps once they create an account through your link.
Can I change a sub-ID after a link is live? Create a new link instead. Old clicks stay on the old link, new traffic flows through the new one.
- One link for every placement.
- Inconsistent sub-ID names, such as
Reddit,redditandrdt. - Click IDs placed in a field the postback never reads.
- Link shorteners in front of tracking links.
- Trusting the ad network's conversion count over the affiliate dashboard.
Good tracking is invisible when it works. Spend an hour setting it up properly, fifteen minutes a week checking it, and it will quietly protect every sale you earn.
If clicks are missing, follow affiliate clicks not tracking. To route mixed traffic automatically, read smartlinks. For the step-by-step setup, see tracking links and postbacks.
Also useful: link hubs and landing pages and adult ad networks.