Unified Tracking Links
Each Offer gets an affiliate-specific link. Send your own click ID and AdRelay handles the landing-page redirect and click attribution automatically.
AdRelay gives affiliates one tracking link format, consistent click parameters, conversion postback macros, and a clear testing workflow. Send a click ID as documented to receive conversion and billing data reliably.
AdRelay normalizes different conversion sources into a postback format affiliates can use. Follow one guide for traffic, parameters, and acceptance testing without worrying about the underlying platform differences.
Each Offer gets an affiliate-specific link. Send your own click ID and AdRelay handles the landing-page redirect and click attribution automatically.
Clicks, conversions, affiliate notifications, and billing records share one click ID, making issues easy to trace.
Valid conversions are sent to the affiliate's configured URL. Any 2xx response is treated as successful delivery for clear acceptance testing.
CPA, CPI, CPL, and CPS all use explicit macros for events, payout, currency, and status, simplifying reconciliation.
The affiliate prepares a click ID, postback URL, and test traffic. AdRelay creates the affiliate, generates tracking links, and traces the complete flow.
Confirm the affiliate name, aff_id, contact, click-source IP allowlist, and downstream postback URL.
Call the Offer API with your aff_id to receive available Offers and affiliate-specific tracking links.
Open a test link, trigger a test conversion, and confirm that the affiliate receives the postback.
Use test results and billing data to verify the conversion event, payout, currency, and status.
You can send the following guide directly to the affiliate's technical team. Replace the example domain with your live tracking domain and use the aff_id assigned by AdRelay.
Affiliates can fetch currently available Offers with their aff_id. The returned tracking_link already includes offer_id, aff_id, and sub1={sub_click_id}; the top-level affiliate_id contains the same aff_id.
For acceptance testing, use the test Offer in section 6 and always pass offer_id=100001.
GET https://trk-adrelay.ravioncore.com/api/offers?aff_id={aff_id}&page=1&page_size=20
| Parameter | Required | Description |
|---|---|---|
aff_id | Yes | The aff_id assigned to the affiliate by AdRelay. |
page | No | Page number. Defaults to 1. |
page_size | No | Number of items per page. |
country | No | Filter by country, such as US or BR. |
platform | No | Filter by platform, such as Android or iOS. |
{
"code": 0,
"message": "success",
"data": {
"affiliate_id": "{aff_id}",
"list": [
{
"offer_id": {offer_id},
"name": "Example App",
"app_name": "Example App",
"package_name": "com.example.app",
"description": "Install and open the app",
"conversion_flow": "CPI Download,Install&Open",
"platform": "Android",
"countries": "US,BR",
"market": "GP",
"download_type": "GP",
"billing_mode": "CPI",
"payout_type": "CPI",
"payout": 1.2,
"billing_event": "install",
"currency": "USD",
"daily_cap": 100,
"remaining_cap_daily": 73,
"preview_link": "https://play.google.com/store/apps/details?id=com.example.app",
"icon_links": "https://cdn.example.com/icon.png\nhttps://cdn.example.com/icon-secondary.png",
"creative_links": "https://cdn.example.com/banner.png\nhttps://cdn.example.com/banner-secondary.png",
"tracking_link": "https://trk-adrelay.ravioncore.com/api/click?aff_id={aff_id}&offer_id={offer_id}&sub1={sub_click_id}",
"events": [
{
"event_name": "install",
"description": "Install and open the app for the first time",
"payout": 1.2
},
{
"event_name": "register",
"description": "Registration tracking event, not settled",
"payout": 0
}
]
}
],
"total": 1,
"page": 1,
"size": 10
}
}
| Response Field | Description | Usage |
|---|---|---|
offer_id | Offer ID. | Use this returned ID in click requests. |
app_name, package_name | App name and package name / Bundle ID. | Verify that the advertised app matches. |
description, conversion_flow | Offer details, KPI, and conversion requirements. | Determine whether the traffic meets the requirements. |
platform, countries, regions, cities | Platform and geographic targeting. | Filter traffic before launch. |
os_min_version, market, download_type | OS version, app store, and download restrictions. | Filter unsupported devices or traffic. |
traffic_allowed, traffic_forbidden | Allowed and prohibited traffic sources. | Confirm the traffic type before launch. |
billing_mode, payout_type, payout | Billing model, payout type, and price. | Display the settlement terms. |
daily_cap, remaining_cap_daily | Daily limit and current availability. -1 means unlimited; 0 means no capacity remains. | Decide whether to continue sending traffic. |
preview_link, icon_links, creative_links | Preview, icon, and creative URLs. Icon and creative fields contain raw URLs separated by \n. | Manual review and asset download. |
events | Event settings with event name, description, and event-level payout. Zero-priced events are still returned. | Confirm requirements for install, register, purchase, and other events; 0 means non-billable. |
tracking_link | Affiliate-specific tracking link. | Replace {sub_click_id} with the affiliate's click ID before launch. |
offer_id=100001 test link in section 6 for integration testing.AdRelay provides an affiliate-specific tracking link. The affiliate must pass its own click ID in sub1; conversion postbacks return the same value unchanged.
https://trk-adrelay.ravioncore.com/api/click?offer_id={offer_id}&aff_id={aff_id}&sub1={sub_click_id}&sub2={campaign}&gaid={gaid}&idfa={idfa}&country={country}&platform={platform}&lang={language}&os_version={os_version}&model={device_model}
Fewer required parameters make launch easier, while complete recommended parameters improve attribution and troubleshooting.
| Parameter | Required | Description |
|---|---|---|
offer_id | Yes | The Offer ID returned by the Offer List API. |
aff_id | Yes | The aff_id assigned to the affiliate by AdRelay. |
sub1 | Yes | The affiliate's click ID, used to match subsequent postbacks. |
sub2 - sub5 | No | Optional campaign, creative, placement, sub-affiliate, or other metadata. |
gaid | Strongly recommended for Android | Google Advertising ID. Omitting it for Android traffic may prevent attribution. |
idfa | Recommended for iOS | The iOS advertising identifier. |
device_id | Optional | A generic device identifier. |
ip, ua | Optional | If omitted, the system uses the request IP and User-Agent. |
country, platform | Recommended | Country and platform, such as US and Android. |
lang, os_version, model, brand | Recommended | Device language, OS version, model, and brand. Complete values improve attribution and troubleshooting. |
gaid whenever it is available. If platform is omitted, AdRelay uses the Offer platform or infers it from gaid/idfa. A reduced User-Agent such as Android 10; K can still identify Android, but it cannot provide a reliable device model, so pass model separately when available.After validating a conversion, AdRelay sends an HTTP GET request to the affiliate's configured postback URL. Any 2xx response is treated as successful.
Affiliates may configure separate paid-event and optimization-event postback URLs. Events configured with billable=true use the paid URL; billable=false events prefer the optimization URL and fall back to the paid URL when it is empty. Both URLs support the same macros.
https://channel.example.com/postback?click_id={click_id}&event={event_name}&payout={payout}¤cy={currency}&status={status}
https://channel.example.com/postback?click_id={click_id}&event={event_name}&sale={sale_amount}&payout={payout}¤cy={currency}&status={status}
AdRelay replaces macros in the affiliate postback URL with actual conversion and click data.
| Macro | Meaning | Typical Use |
|---|---|---|
{click_id} | The affiliate's click ID, equivalent to {sub1} | Affiliate attribution |
{sub1} - {sub5} | Sub parameters supplied with the click | Affiliate metadata |
{offer_id} | AdRelay Offer ID | Offer reconciliation |
{event_name} | Conversion event name | install, register, purchase, etc. |
{billing_mode} | CPA, CPI, CPL, or CPS | Billing model |
{sale_amount} | CPS order amount; 0 for CPA, CPI, and CPL | CPS reconciliation |
{payout} | Affiliate payout | Amount payable to the affiliate |
{currency} | Currency | USD, CNY, etc. |
{status} | Conversion status | Usually approved |
Run at least one complete flow before launching each affiliate. The integration contact provides a test Offer or tracking_link; test traffic is used only to verify clicks, conversions, and postbacks.
Replace {aff_id} in the test tracking_link with the affiliate's aff_id, and replace {sub_click_id} with the affiliate's own click ID.
{
"offer_id": 100001,
"name": "AdRelay Test Offer",
"offer_type": "H5",
"app_name": "AdRelay Test Offer",
"description": "TEST ONLY: for downstream channel click and postback integration; not used for live traffic or billing.",
"conversion_flow": "Click the AdRelay tracking link, land on the test page, then trigger a test S2S postback with click_id.",
"categories": "test,integration",
"traffic_allowed": "test traffic only",
"traffic_forbidden": "production buying traffic",
"billing_mode": "CPA",
"billing_event": "install",
"payout_type": "TEST",
"payout": 0.01,
"currency": "USD",
"daily_cap": -1,
"remaining_cap_daily": -1,
"total_cap": -1,
"allow_incentive": true,
"preview_link": "https://trk-adrelay.ravioncore.com/api/test/landing",
"tracking_link": "https://trk-adrelay.ravioncore.com/api/click?aff_id={aff_id}&offer_id=100001&sub1={sub_click_id}",
"events": [
{
"event_name": "install",
"description": "Trigger this test install event from the AdRelay test landing page.",
"payout": 0.01
}
]
}
| Step | Checkpoint | Pass Criteria |
|---|---|---|
| Open the test link | The URL includes offer_id, aff_id, and sub1 | Returns 302 and redirects to the landing page |
| Provide sub1 | Send the affiliate click ID to the integration contact | The click can be located |
| Trigger a test conversion | Confirm that the test conversion is created | Approval is confirmed or a clear rejection reason is provided |
| Check the affiliate callback | Confirm that the affiliate endpoint receives the request | The affiliate returns 2xx |
| Verify the amount | Event, payout, and currency | Matches the commercial configuration |
Most issues can be traced with the AdRelay click ID or affiliate click ID. Send the relevant ID and request time to the integration contact when something goes wrong.
First confirm that the affiliate postback URL is configured, then trigger a conversion with the test link. If it still does not arrive, send sub1, the request time, and the affiliate endpoint to the integration contact.
Common causes include an inactive Offer or affiliate, country or platform mismatch, a full cap, or a click IP outside the allowlist. The integration contact can identify the exact reason from the click ID.
sub1 is the affiliate's own click ID. In a postback, AdRelay replaces both {click_id} and {sub1} with this value so the affiliate can attribute the conversion to its click.
CPA, CPI, and CPL usually require only the event and payout. CPS also requires the sale_amount. An affiliate postback URL can include all of these macros; sale_amount is 0 for fixed-price conversions.
Before launch, verify one click, one conversion, and one downstream postback. After launch, use the same click ID to trace the complete flow and quickly resolve traffic or billing issues.