Overview
When a conversion is attributed to your click, Linkrunner sends a server-to-server postback to your endpoint. You give Linkrunner a postback URL that contains macros. Linkrunner replaces each macro with the real value and sends the request. You provide one URL template per conversion you want to receive (install, signup, in-app event). Linkrunner sends the request as an HTTPGET.
Event mapping
Linkrunner sends these postbacks automatically:- Install, for every install attributed to your click.
- Signup, once a signup postback is set up for you.
- The advertiser, from Integrations → your network → Event Mapping in their Linkrunner dashboard.
- You, from Event Mapping in your affiliate dashboard.
purchase sent as sale. It can also turn on Send Revenue so the postback includes the event’s revenue and currency.
See Event Mapping for a walkthrough of the screen, including how to apply a mapping to all your customers or only one.
Missing an event you expected? Check that it has a mapping for this advertiser.
Allowlist Linkrunner postback IPs
If your endpoint restricts incoming traffic by source IP, allowlist both Linkrunner production egress addresses:These are postback URL macros. They are different from the macros your
platform may use in the click tracking link. Your platform must resolve click
macros before sending traffic to Linkrunner.
Click tracking link
The Linkrunner dashboard shows a click tracking link for your campaign. For affiliate campaigns, the click link uses Linkrunner’s click parameters:
Use these parameter names in the URL. For example, use
tid={click_id} instead of utm_id={click_id}, and use s2={campaign_id} instead of cc={campaign_id}.
Do not add postback-only values such as postbackKey, event, event_name, or crc to the click tracking link. If your postback endpoint requires a secret key, configure it privately with Linkrunner.
Macro syntax
Macros are written in lowercase inside curly braces:- Linkrunner replaces every macro it recognizes with the conversion’s value.
- Values are URL-encoded automatically. Do not encode the macros yourself.
- A macro with no value for a given conversion is replaced with an empty string. For example,
{idfa}is empty on an Android install. - Text that is not a recognized macro is left untouched, so static query parameters are safe.
- All timestamps are Unix seconds in UTC.
Macro reference
Identifiers
Event
{timestamp} is when the postback was sent, not when the conversion happened.
Use {event_time} for the time of the event itself.Time
All three are Unix timestamps in seconds, UTC.{install_time} is the first app open as received by Linkrunner’s servers,
the same definition other MMPs use. It is not the Play Store download or
install-begin time.App
Revenue
Device
Network
{user_agent} and {click_time} come from the click the conversion was matched to. {ip} is the device’s public IP at install time.
Attribution
{touch_type} is always click today. Linkrunner does not run impression
tracking for affiliate partners.Click passthrough
Static values
If your endpoint needs a fixed query parameter, add it as plain text in the URL template:{secret.postbackKey}. If your endpoint requires a secret key, configure it privately with Linkrunner so it is not shown in dashboard tracking links or public examples.
Not available
- Country code. There is no country macro. Derive it from
{ip}if you need one. - App store ID. Use
{bundle_id}. On Android it is the same value as the Play Store listing ID. - Retargeting and re-engagement conversions. Linkrunner does not send affiliate postbacks for these.
- Rejected and fraud postbacks. Linkrunner does not send these.
Examples
Install postback
Your template:Signup postback
Purchase postback with revenue
Your template:Device and attribution detail
Your template:Deduplication
Linkrunner retries a postback if your endpoint does not respond with a success status. Treat postbacks as at-least-once. Deduplicate on your click ID plus event name, or use a fixed value you send ins4 on the click link.
Formatting reference
Troubleshooting
A macro arrives empty. The value was not available for that conversion. For example,{idfa} is empty on Android, and {revenue} is 0 on events without revenue. Device advertising IDs depend on the value being present on the click and on user consent.
A macro arrives as literal text.
That macro is not supported by the current Linkrunner postback renderer. Use one of the macros listed on this page.
You do not receive an in-app event.
In-app events are sent only after they are mapped. Ask the advertiser to map the event, or add the mapping yourself from Event Mapping in your affiliate dashboard. See Event mapping.
You want to check whether a postback reached you.
Open Postback Logs in your affiliate dashboard. It shows every conversion sent to you and what your endpoint answered.
You receive the same conversion twice.
Postbacks are at-least-once. Deduplicate on your click ID plus event name, or use a fixed value you send in s4 on the click link.
Revenue looks 100x too large or too small.
{revenue} is in major units (9.99), not minor units. Do not multiply or divide by 100.
Need help? Contact support@linkrunner.io