> AffiliateOS Help Center. Index of every article for AI tools: https://www.affiliateos.ai/help/llms.txt

# What happens after a user clicks

Offer Links and click tracking · For publishers, networks · Updated 30 October 2026
Web version: https://www.affiliateos.ai/help/links-and-tracking/what-happens-after-click

We record the tap, check it and send the user on to the app store or the offer with a click ID attached. When the advertiser's tracking reports an install or a step, we match it to that click, record the conversion and send your postback.

> Figure: Example trace for click clk_7Q2f81 from user u_48213: click recorded at 2:06 PM, install received for Harbor Blocks at 2:09 PM, payout of $4.20 recorded, postback delivered to api.pebble.example.

## One tap, step by step

Example. Player `u_48213` taps Harbor Blocks in Pebble Rewards on an iPhone in Texas at 2:06 PM. The link carries `sub_id=u_48213`.

1. **The tap reaches our link.** Every [tracking link](https://www.affiliateos.ai/glossary#tracking-link) opens on our click host (or [your own domain](https://www.affiliateos.ai/help/links-and-tracking/use-own-tracking-domain)), with the offer, your account and your user in it.
2. **A short page may show first.** Depending on your account, the user sees "Preparing your offer…" or a blank page for a moment while our checks run in the browser. A few offers show "Find Harbor Blocks" with a button to the store instead.
3. **We check the tap.** Our traffic checks, the US state the tap comes from where the offer turns states away, whether the offer is still live and open to your account today, and whether the phone's OS version fits. A tap that fails a check gets a [page that says why](https://www.affiliateos.ai/help/links-and-tracking/messages-users-see-after-click) and never reaches the advertiser.
4. **Already installed?** If this user already installed the app through this offer and was credited, they go to the app's store page, where the button reads **Open**. That tap doesn't count as a click.
5. **We record the click.** It gets a [click ID](https://www.affiliateos.ai/glossary#click-id), here `clk_7Q2f81`, stored with your `sub_id`, the time, country, device and any `sub1` to `sub10` you added.
6. **The user goes on.** We send the phone to the advertiser's link with the click ID attached, and from there to the App Store. The user installs Harbor Blocks and opens it at 2:09 PM.
7. **The advertiser reports it.** The game's tracking reports the install with the click ID, and we match it to `clk_7Q2f81`. That's the [conversion](https://www.affiliateos.ai/glossary#conversion).
8. **We post back.** We send your server a signed [postback](https://www.affiliateos.ai/glossary#postback) with `sub_id=u_48213` and the amounts. Later steps, such as level 10, repeat steps 7 and 8, each with its own postback.

## What we keep from the tap

Open a conversion under **Reporting**, then **Flight Recorder**, and its **Related Click** section shows what we recorded:

| Field | Example |
|---|---|
| Click ID | `clk_7Q2f81` |
| Time | 10/29/2026, 2:06:14 PM |
| Sub ID | `u_48213` |
| Country | US |
| OS / Device | iOS / mobile |
| IP | 203.0.113.24 |
| User agent | The browser string the phone sent |

Your `sub1` to `sub10` values are kept for 90 days and come back on that conversion's postbacks, reversals included. If the same user taps the same offer twice, the latest tap that carried them is the one returned.

## How long a user has

There's no single window. Each step can have its own time limit, set by the advertiser's side and counted from the tap or the install: `goals[].maximumCompletionTimeDays` in the Offer API, `null` when there's none.

## Edge cases

- **Old links.** Links outlive offers: saved lists and cached walls keep sending taps to offers that have ended. Those users see "This offer has ended", not an error.
- **The phone's advertising ID.** Fill `{DEVICE_ID}` with it when you have it. Advertisers credit more installs with it. An empty or all-zero value is dropped and the tap works as before.
- **No postback.** We match and record the conversion even when your postback can't be sent, for example with no postback secret. It shows in **Conversions** and **Flight Recorder** either way.
- **Networks.** Your own links and your publishers' links follow the same steps. Trace a conversion under **Reporting**, then **Flight Recorder**.
