Skip to main content
Affiliate partners use this endpoint to report a click from their server when the user never opens a Linkrunner tracking link. For the setup guide, see Server-to-Server Clicks.

Endpoint

No API key is needed. The advertiser is identified by the app ID (or the tracking link’s domain) and the campaign by c. The campaign must belong to your partner account, and the advertiser must have turned on S2S clicks for you.

Parameters

Send all parameters as URL-encoded query parameters. Each value is limited to 256 characters. Every click needs at least one of gaid, idfa or a public ip. A device ID matches the install exactly; an IP alone matches probabilistically. If both a name and its alias are sent, the name wins. redirect, pid, af_siteid and af_lang are ignored, so an AppsFlyer S2S template works once the host and c are changed. Linkrunner never uses the IP address or user agent of the request itself, because those belong to your server.

Responses

The response is always JSON, never a redirect.
click_id is Linkrunner’s ID for the click. It is the same for every retry of the same tid on the same campaign. To match an Android install exactly without a device ID, open the Play Store with referrer=lr_ia_id%3D<click_id>.

Status codes

Examples

An IP-only click, with no device ID:

Retries and deduplication

The same tid on the same campaign always maps to the same click_id, and the click is stored once, so it is safe to retry. Retry only 429 and 503, after the delay in the Retry-After header. Keep tid unique per campaign for good: a reused tid is treated as a retry of the earlier click, so the new click is not recorded.