Tracking

Mobile Attribution for Affiliate Networks: How MMPs and Trackers Work Together

Alex Kim

Alex Kim

Head of Product

  16 min

Web affiliate campaigns need one system: the tracker. App campaigns need two, because inside the app-store ecosystem, install credit is decided by a mobile measurement partner (MMP) — AppsFlyer, Adjust, Branch, Kochava, or Singular — that the advertiser, not the network, chooses. Every affiliate network that touches app offers lives or dies by the quality of its MMP integration. This guide explains the full architecture: how a click becomes an attributed install, and how that install becomes a payable, fraud-checked conversion.

Why App Campaigns Need Two Systems

The MMP's SDK sits inside the advertiser's app and is the single arbiter of attribution: it matches installs to ad interactions across every paid channel and decides who gets credit. The affiliate tracker owns everything the MMP does not: the publisher hierarchy and sub-affiliate structure, click-level tracking and targeting, commission logic, fraud screening, and payouts. Neither replaces the other — the engineering problem is the handshake between them, which runs on two artifacts: an attribution link going in, and a postback coming out.

The Click ID Round Trip

Everything hangs on one parameter surviving a round trip. When a user clicks an affiliate link, the tracker generates a unique click ID, stores the click context (campaign, affiliate, sub-IDs, device, geo), and redirects to the MMP attribution link with the click ID attached as a partner parameter. If the MMP later attributes the install to that link, it returns the click ID in its postback — and the tracker can reconnect the install to the exact click, publisher, and sub-affiliate that produced it.

User click
  └─> Tracker redirect        — click_id generated, context stored
        └─> MMP attribution link   — click_id passed as partner param
              └─> App store → install → MMP SDK attributes
                    └─> MMP postback → Tracker   — click_id returned
                          └─> Validate → fraud-screen → convert → pay

Each MMP names its parameters differently — AppsFlyer carries partner IDs in af_siteid / af_sub_siteid and campaign context in af_c_id, while Adjust exposes a campaign / adgroup / creative / label hierarchy. A correct macro mapping between the MMP's naming and your tracker's affiliate structure is most of the integration work; get it wrong and installs arrive unattributable. The per-platform mappings are covered in our setup guides for AppsFlyer, Adjust, Branch, Kochava, Singular, and Apptrove.

Install and In-App Event Postbacks

MMPs send two classes of postback. Install postbacks fire once per attributed install and typically drive CPI payouts. In-app event postbacks fire on downstream actions — registration, deposit, purchase, subscription — and carry the event name plus revenue, enabling CPA and RevShare models on app traffic. Configure both from day one even if you only pay on installs: event data is how you detect publishers who deliver installs that never open the app again, which is the signature of install farms.

Postbacks are S2S by nature

MMP postbacks are server-to-server calls — the same architecture as web postbacks, with the MMP standing in for the advertiser's server. If you understand S2S tracking, you already understand two thirds of mobile attribution.

Deduplication, Organic, and Retargeting

Raw postback streams contain more than payable conversions, and a tracker that converts everything it receives overpays systematically. Three filters are mandatory. Deduplication: MMPs retry failed postbacks, so identical events must be idempotent on the tracker side. Organic filtering: postbacks flagged organic (AppsFlyer sends af_status=Organic) carry no paid credit and must not create commissions. Attribution-type separation: retargeting and re-engagement events need their own payout rules — paying full CPI on a reattribution is a quiet margin leak.

Mobile-Specific Fraud Signals

Mobile adds fraud vectors that web campaigns never see: install farms, click flooding (spraying clicks to steal last-click credit), SDK spoofing (fake postbacks from scripts, not devices), and click injection on Android. Defence combines both systems. The MMP contributes its own verdicts — AppsFlyer postbacks carry a fraud_reason field that should hard-block conversion. The tracker contributes what the MMP cannot see: click-to-install time distributions per publisher, sub-affiliate concentration anomalies, device ID reuse across clicks, and postback signature verification so spoofed calls never enter the pipeline. Our fraud prevention guide covers the layered model in depth.

Attribution in the Privacy Era

Deterministic device-ID attribution is shrinking: iOS ATT gates the IDFA behind consent, SKAdNetwork returns aggregated conversion data without click IDs, and Android Privacy Sandbox moves the same direction. Practical consequences for networks: expect a share of iOS conversions to arrive through privacy postbacks with campaign-level rather than click-level granularity, keep probabilistic attribution windows conservative, and lean on first-party click IDs — which remain fully functional — for everything the platform allows. The direction of travel matches the web's cookieless shift, covered in our cookieless tracking analysis.

Reconciling MMP and Tracker Numbers

Advertisers pay on MMP numbers; publishers get paid on tracker numbers — so the gap between the two is your dispute surface. Keep it in low single digits by aligning attribution windows on both sides, filtering the same event set (organic, retargeting) that the advertiser excludes, reporting in one timezone (UTC end to end), and pulling the MMP's raw install reports via API as a periodic audit against the postback stream. Persistent gaps beyond that are diagnostic: missing click IDs point to macro misconfiguration; tracker-side surpluses point to dedup or spoofing problems.

  • Click ID macro present on every MMP attribution link
  • Install and event postbacks both configured, signatures verified
  • Organic, retargeting, and duplicate events filtered before payout
  • Attribution windows and timezones aligned with the advertiser
  • Raw-report reconciliation running as a scheduled audit

Affclix ships this pipeline pre-built: postback templates and macro maps for AppsFlyer, Adjust, Branch, Kochava, Singular, and Apptrove, signature verification, organic and duplicate filtering, and ClickHouse-backed attribution reporting that stays fast at billions of events.

Track App Campaigns Free  See MMP Integrations

Frequently Asked Questions

What is an MMP (mobile measurement partner)?

An MMP is a neutral third-party SDK and attribution service — AppsFlyer, Adjust, Branch, Kochava, Singular — that decides which traffic source gets credit for an app install or in-app event. App advertisers integrate one MMP, and every ad partner, including affiliate networks, receives attribution data from it via postbacks.

Do I need both an affiliate tracker and an MMP?

For app campaigns, yes — they do different jobs. The MMP owns install attribution inside the app ecosystem; the affiliate tracker owns click tracking, publisher hierarchy, commission calculation, fraud screening, and payouts. The two are connected by passing a click ID into the MMP's attribution link and receiving it back in postbacks.

Why do MMP numbers and tracker numbers differ?

Common causes: attribution window mismatches, organic and retargeting events being forwarded, deduplication rules firing on retried postbacks, timezone differences in reporting, and fraud rejections applied on the tracker side. A healthy integration reconciles within low single-digit percentages.

Alex Kim

Alex Kim

Performance marketing practitioner at AffClix, writing about affiliate tracking, fraud prevention, publisher management, and network operations.

Related Articles

Tutorial

AppsFlyer Postback Integration for Affiliate Tracking: The Setup Guide

Tutorial

Adjust S2S Callback Integration: The Complete Setup Guide