Tracking Link vs Postback: What Goes Where
What a postback is, how a postback URL differs from a tracking link, which values belong on each, and how postback macros differ by MMP.
The tracking link carries the click into the MMP; the postback carries the conversion back to you. Click-time values (campaign, click ID, sub-IDs) go on the link. Revenue, event names and secret keys go only in the postback.
What is a postback?
A postback is the server-to-server request an MMP sends to a partner when an attributed conversion happens, filling the partner's URL template with the click ID and the conversion details.
Tracking link (click link): the URL the user passes through on the way to the store. It carries the click into the MMP.
Postback URL: a URL template the partner gives the advertiser's MMP. It carries the conversion back out.
Direction is the easiest way to remember it: the tracking link flows from you to the MMP at click time, and the postback flows from the MMP to you after the install or event.
Side by side
| Question | Tracking link | Postback |
|---|---|---|
| Who sends it | The user's browser through your redirect, or your server for S2S clicks | The MMP's servers |
| When | At the click | After an install, signup or mapped event |
| Whose macros | Yours, filled by your platform | The MMP's, filled by the MMP |
| What it carries | Campaign, click ID, sub-IDs, device IDs | Click ID, event, revenue, timestamps, sub-IDs |
| Example | clickid={click_id} with your macro | click={click_id} with the MMP's macro |
The two meet at the click ID: you send it out on the link and the postback brings it home.
Which values belong on which?
Anything that exists at click time goes on the tracking link; anything that only exists after a conversion goes in the postback.
On the click link:
- Campaign identifier (
pidandcon AppsFlyer,~campaignon Branch) - Your click ID
- Sub-IDs and passthrough values
- Device IDs, where the MMP documents them
Postback only, never on the click link:
- Revenue, sale amount and currency
- Event names
- Secret or postback keys
- Checksums such as
crc
On a click link these values are ignored or stored as meaningless text, and a secret on a click link is exposed to anyone who sees the URL. The generator on the home page flags postback-only values if you add them to a click link.
Worked example: a postback template
A postback URL is your receiver's address with the MMP's macros where the values should go. An install postback template might look like this:
https://postback.example-network.com/install?click={click_id}&pub={sub_publisher}&ts={install_time}
And an event postback with revenue:
https://postback.example-network.com/event?click={click_id}&ev={event_name}&rev={revenue}&cur={currency}
The macro names in braces are placeholders here. Each MMP has its own list, so copy the exact names from the advertiser's MMP rather than from this example.
Postback macros by MMP
- Adjust: callbacks are set up with the advertiser. Placeholders include
{gps_adid},{idfa},{idfv}and{adid}, alabelon the link comes back through{label}, and callback URLs must be percent-encoded as one value. See the Adjust link format. - Tenjin: callback macros include the channel's
click_idandsite_id, the sixtenjin_parameterpassthrough values, and an impression flag that is 1 for view-through and 0 for a click. - AppMetrica: any click link parameter can be forwarded to the postback by name in braces.
- Linkrunner: macros are lowercase in single braces, such as
{click_id},{event_name},{revenue}and{s2}, and are sent as HTTP GET requests. Its postbacks and macros documentation lists the full set.
Questions to settle before you build the receiver
- Which events will send a postback, and who maps them?
- Are values URL-encoded, and what arrives when the MMP has no value for a macro?
- What format are timestamps in, and is revenue in major or minor units?
- Which IP addresses will postbacks come from, if your firewall needs them?
- Can the same postback arrive twice? If so, deduplicate on the click ID plus the event name before you count or pay.
Postback macro syntax is MMP-specific in the same way click macros are platform-specific; the macros guide covers the click side. On the advertiser's side, postbacks also feed ad networks and ROAS reporting, which this chapter on events, postbacks and ROAS explains.
Questions
What is a postback URL?
It is a URL template a partner gives the advertiser's MMP, with the MMP's macros where the values should go. When an attributed conversion happens, the MMP fills the macros and calls the URL server to server.
Can I send revenue on the tracking link?
No. Revenue does not exist at click time, so it belongs in the postback, where the MMP fills it after a paying event. On a click link it is ignored or stored as meaningless text.
Do I get a postback for every click?
No. Postbacks fire on conversions such as installs, signups and mapped in-app events, not on clicks. Most clicks never produce a postback.
Why am I not receiving postbacks?
Common causes are a postback URL that was never saved, an event that was never mapped, a link created without your network selected, and a firewall blocking the MMP.
Can the same postback arrive twice?
It can, as some MMPs deliver postbacks at least once. Deduplicate on the click ID plus the event name before you count or pay.
Is a postback the same as a webhook?
Both are server-to-server calls. A postback here is the MMP telling a partner about a conversion in the partner's own URL format, while a webhook usually sends the advertiser's own systems a fuller event feed.