Affiliate Integration Center

Connect Offers, attribution, and postbacks in one reliable flow

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.

For affiliates

Everything affiliates need: links, postbacks, and reconciliation

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.

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.

End-to-End Traceability

Clicks, conversions, affiliate notifications, and billing records share one click ID, making issues easy to trace.

Reliable Postbacks

Valid conversions are sent to the affiliate's configured URL. Any 2xx response is treated as successful delivery for clear acceptance testing.

Clear Billing Fields

CPA, CPI, CPL, and CPS all use explicit macros for events, payout, currency, and status, simplifying reconciliation.

Onboarding

A Standard Onboarding Flow

The affiliate prepares a click ID, postback URL, and test traffic. AdRelay creates the affiliate, generates tracking links, and traces the complete flow.

01

Create the Affiliate

Confirm the affiliate name, aff_id, contact, click-source IP allowlist, and downstream postback URL.

02

Fetch Offers

Call the Offer API with your aff_id to receive available Offers and affiliate-specific tracking links.

03

Test the Postback

Open a test link, trigger a test conversion, and confirm that the affiliate receives the postback.

04

Launch and Reconcile

Use test results and billing data to verify the conversion event, payout, currency, and status.

Integration docs

Affiliate Integration Guide

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.

1. Offer List API

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.

Request Example
GET https://trk-adrelay.ravioncore.com/api/offers?aff_id={aff_id}&page=1&page_size=20
ParameterRequiredDescription
aff_idYesThe aff_id assigned to the affiliate by AdRelay.
pageNoPage number. Defaults to 1.
page_sizeNoNumber of items per page.
countryNoFilter by country, such as US or BR.
platformNoFilter by platform, such as Android or iOS.
Response Example
{
  "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 FieldDescriptionUsage
offer_idOffer ID.Use this returned ID in click requests.
app_name, package_nameApp name and package name / Bundle ID.Verify that the advertised app matches.
description, conversion_flowOffer details, KPI, and conversion requirements.Determine whether the traffic meets the requirements.
platform, countries, regions, citiesPlatform and geographic targeting.Filter traffic before launch.
os_min_version, market, download_typeOS version, app store, and download restrictions.Filter unsupported devices or traffic.
traffic_allowed, traffic_forbiddenAllowed and prohibited traffic sources.Confirm the traffic type before launch.
billing_mode, payout_type, payoutBilling model, payout type, and price.Display the settlement terms.
daily_cap, remaining_cap_dailyDaily limit and current availability. -1 means unlimited; 0 means no capacity remains.Decide whether to continue sending traffic.
preview_link, icon_links, creative_linksPreview, icon, and creative URLs. Icon and creative fields contain raw URLs separated by \n.Manual review and asset download.
eventsEvent 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_linkAffiliate-specific tracking link.Replace {sub_click_id} with the affiliate's click ID before launch.
Only active formal Offers available to the affiliate appear in this list. The test Offer is excluded; use the offer_id=100001 test link in section 6 for integration testing.

3. Click Parameters

Fewer required parameters make launch easier, while complete recommended parameters improve attribution and troubleshooting.

ParameterRequiredDescription
offer_idYesThe Offer ID returned by the Offer List API.
aff_idYesThe aff_id assigned to the affiliate by AdRelay.
sub1YesThe affiliate's click ID, used to match subsequent postbacks.
sub2 - sub5NoOptional campaign, creative, placement, sub-affiliate, or other metadata.
gaidStrongly recommended for AndroidGoogle Advertising ID. Omitting it for Android traffic may prevent attribution.
idfaRecommended for iOSThe iOS advertising identifier.
device_idOptionalA generic device identifier.
ip, uaOptionalIf omitted, the system uses the request IP and User-Agent.
country, platformRecommendedCountry and platform, such as US and Android.
lang, os_version, model, brandRecommendedDevice language, OS version, model, and brand. Complete values improve attribution and troubleshooting.
For Android traffic, pass 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.

4. Affiliate Postback URL

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.

Fixed-price Example
https://channel.example.com/postback?click_id={click_id}&event={event_name}&payout={payout}&currency={currency}&status={status}
CPS Example
https://channel.example.com/postback?click_id={click_id}&event={event_name}&sale={sale_amount}&payout={payout}&currency={currency}&status={status}

5. Postback Macros

AdRelay replaces macros in the affiliate postback URL with actual conversion and click data.

MacroMeaningTypical Use
{click_id}The affiliate's click ID, equivalent to {sub1}Affiliate attribution
{sub1} - {sub5}Sub parameters supplied with the clickAffiliate metadata
{offer_id}AdRelay Offer IDOffer reconciliation
{event_name}Conversion event nameinstall, register, purchase, etc.
{billing_mode}CPA, CPI, CPL, or CPSBilling model
{sale_amount}CPS order amount; 0 for CPA, CPI, and CPLCPS reconciliation
{payout}Affiliate payoutAmount payable to the affiliate
{currency}CurrencyUSD, CNY, etc.
{status}Conversion statusUsually approved

6. Acceptance Test

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.

Test Offer Structure
{
  "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
    }
  ]
}
StepCheckpointPass Criteria
Open the test linkThe URL includes offer_id, aff_id, and sub1Returns 302 and redirects to the landing page
Provide sub1Send the affiliate click ID to the integration contactThe click can be located
Trigger a test conversionConfirm that the test conversion is createdApproval is confirmed or a clear rejection reason is provided
Check the affiliate callbackConfirm that the affiliate endpoint receives the requestThe affiliate returns 2xx
Verify the amountEvent, payout, and currencyMatches the commercial configuration
FAQ

Frequently Asked Questions

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.

What if the affiliate does not receive a postback?

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.

Why was a click rejected?

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.

Why is sub1 required?

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.

How do fixed-price and CPS postbacks differ?

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.

Ready to launch

One link, one macro table, and one click ID for troubleshooting

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.

Copied