Skip to main content

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 HTTP GET.
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.
The Linkrunner dashboard shows a click tracking link for your campaign. For affiliate campaigns, the click link uses Linkrunner’s click parameters:
Your platform resolves the placeholders before redirecting the user to Linkrunner. The actual click should look like this:
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:
Rules:
  • 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.
Only use the postback macros listed below in your postback URL template. Linkrunner leaves unsupported campaign, event, platform, sub, and secret placeholders unchanged.

Macro reference

Identifiers

Event

Revenue

{revenue} is in major currency units, not minor units. 9.99 means 9.99, not 9.99 cents. Parse it as a decimal amount.

Device

Click passthrough

Static values

If your endpoint needs a fixed query parameter, add it as plain text in the URL template:
Do not use {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.

Examples

Install postback

Your template:
What Linkrunner sends:

Signup postback

Purchase postback with revenue

Your template:
What Linkrunner sends:

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 in s4 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 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