How do you integrate network postbacks safely?
Configure the per-network mapping, verify with test conversions, then go live.
Related resources
Configure the per-network mapping, verify with test conversions, then go live.
Related resources
Standardizes partner integration between Adjust and the networks (Meta/Google/TikTok/Apple). One misconfigured postback can wreck a network's machine-learning optimization — every integration goes LIVE only after passing this procedure.
A postback is the channel through which the MMP (Adjust) delivers attribution results back to each ad network. Every network goes through three steps: (1) partner activation, (2) postback mapping, (3) macro verification. Meta/TikTok are SAN (Self-Attributing Networks); Google/Apple run a SAN+S2S hybrid by default.
For SAN networks, Adjust doesn't issue click URLs — the network supplies its own click/view data to the MMP. Meta, Google, TikTok, Snap, X, and Apple Search Ads are the main examples.
| Network | Type | Attribution window | Cost ingestion | Notes |
|---|---|---|---|---|
| Meta Ads | SAN | 1d click / 1d view | Automatic | Check app AEM eligibility and optimization events |
| Google Ads (UAC) | SAN | 30d click / 1d engaged-view | Automatic | Firebase link required; gbraid/wbraid auto-collected |
| TikTok | SAN | 7d click / 1d view | Automatic | Separate SKAN postback channel for iOS |
| Apple Search Ads | S2S | 30d click | Automatic (ASA API) | Map ASA campaign IDs to the App Token |
| Moloco | S2S | 7d click | Manual (file) | Disabling probabilistic matching recommended |
| LINE Ads | Click URL | 7d click | Manual | JP/TW markets only |
| AppLovin | SAN | 7d click | Automatic | Verify MAX bidding vs Direct separately |
Partner Setup+ Add PartnerDistinguish app AEM from web event configuration. Do not apply the historical web eight-event priority limit as a universal iOS app sending limit. Check app and event eligibility in Events Manager and the current ad-set measurement and optimization settings.
Check the MMP Meta integration and event mapping, event receipt in Events Manager, optimization-event eligibility, and the ad-set AEM and SKAN settings. Test against the options supported for the account.
UAC requires a Firebase connection. Either mirror Adjust events into GA4, or send Adjust → Google Ads directly. Direct sending loses less data and is the primary recommendation.
# Found on the Google Ads partner page in the Adjust dashboard
# Linker ID example: aw-123456789
# Conversion Labels are issued per event:
# install: AbCdEf1234-aw-installs
# purchase: XyZ789-aw-purchase
# Match 1:1 in Adjust → Partner Setup → Google Ads → Conversion Mapping
Non-SAN networks (Moloco, LINE, etc.) require Adjust macros embedded in the click URL. The network substitutes each macro with its own value at click time.
| Macro | Adjust parameter | Purpose |
|---|---|---|
| {campaign_id} | campaign_id | Campaign identifier. Matches the network campaign ID 1:1 |
| {campaign_name} | campaign | Campaign name (URL-encode non-ASCII/whitespace) |
| {adgroup_name} | adgroup | Ad group / targeting unit |
| {creative_name} | creative | Creative unit (for A/B testing) |
| {idfa} | idfa | iOS advertising identifier (when ATT authorized) |
| {gps_adid} | gps_adid | Android Google Play Services ADID |
| {cost} | cost_amount | Cost per click/impression |
| {click_id} | click_id | Network's unique click ID |
| {deeplink} | deeplink | Deep link URL (URL-encoded) |
1) Check the Install Postback toggle in Adjust → Partner Setup. 2) Never issue a separate click URL to a SAN network — double tracking misclassifies traffic as organic. 3) Confirm a Sandbox token isn't being used in Production.
Per-network Cost API integration is a separate opt-in. Adjust → App Setup → Cost Data → register each network's API key. Meta = System User Access Token, Google = Ads API auth. Initial sync takes 24–48 hours.
When iOS 14.5+ users decline ATT, IDFA is masked and deterministic matching is impossible. Adjust falls back to IP+UA fingerprinting, but networks like Moloco don't trust it. Run those networks on a single SKAdNetwork channel instead.