Search...

How App Attribution Works: A Step-by-Step Technical Guide

SolarEngine - All-in-One Mobile Attribution & Analytics Platform

Key Takeaways

  • App attribution works by matching an install signal from your SDK to a prior ad interaction record using device identifiers or probabilistic signals.
  • The full cycle — ad click → install → match → postback — typically completes in under 60 seconds.
  • The attribution stack has five components: the ad network, the click record, the app SDK, the MMP, and the postback.
  • iOS attribution requires a three-layer approach: IDFA (consented), Google ICM (non-consented Google traffic), SKAN (no signal).
  • Without postbacks, ad networks optimize on clicks, not conversions — costing you budget on low-quality traffic.

Table of Contents

  1. The Five Components of App Attribution
  2. The Attribution Cycle: Step by Step
  3. Deterministic vs Probabilistic Matching
  4. iOS Attribution: The Three-Layer Stack
  5. What Is a Postback and Why Does It Matter?
  6. How SolarEngine Handles Attribution
  7. FAQ

The Five Components of App Attribution {#components}

Before walking through the cycle, it helps to understand what's actually involved. App attribution requires five components working together:

Component Role
Ad Network Logs ad interactions (clicks, impressions) with device identifiers and timestamps
Click Record The timestamped entry stored by the ad network when a user interacts with an ad
App SDK Code embedded in your app that fires an install signal when the app is opened for the first time
MMP The neutral third party that receives the install signal and attempts to match it to a click record
Postback The confirmation signal sent from the MMP back to the ad network after a successful match

Remove any one of these and the attribution breaks down. The MMP is the orchestrating layer — it connects all the others.


The Attribution Cycle: Step by Step {#cycle}

Here is exactly what happens from the moment a user sees an ad to the moment the ad network receives a confirmed conversion signal:

Step 1: Ad Interaction Recorded

A user sees or clicks an ad on Google, Meta, Mintegral, TikTok, or any other network. The ad network captures:

  • A timestamp
  • The device identifier (IDFA on iOS for consented users, GAID on Android)
  • Campaign metadata: campaign ID, ad group, creative, placement
  • The click or impression type

This record is stored and held, waiting to be matched against a future install.

Step 2: User Installs the App

The user follows through — they download and open the app for the first time. On first open, the MMP SDK embedded in the app fires and sends an install signal containing:

  • Device identifiers (where available)
  • Timestamp of the install
  • App version and device metadata

Step 3: MMP Receives the Install Signal

The MMP receives the signal and begins a match lookup. It searches its database of click and impression records for an interaction from the same device, within the configured attribution window (typically 7 days for clicks, 24 hours for impressions).

Step 4: Match Decision

The MMP applies its matching logic:

  • If an exact device ID match is found → deterministic attribution. The install is assigned to the matched channel, campaign, ad group, and creative.
  • If no exact match but probabilistic signals align → probabilistic attribution. The install is assigned to the most likely source based on IP, device model, OS version, and timing.
  • If no match is found → the install is marked as organic.

Step 5: Postback Sent

Once a match is confirmed, the MMP sends a postback to the winning ad network — a server-to-server signal confirming the install. This postback can also carry subsequent in-app events (purchases, ad revenue, retention milestones) as they occur.

The entire cycle from click to postback typically completes in under 60 seconds.


Deterministic vs Probabilistic Matching {#matching}

The two methods differ significantly in accuracy and applicability:

Deterministic Matching

Uses an exact device identifier — IDFA (iOS) or GAID (Android) — to create a one-to-one match between the click record and the install record. This is the most accurate method available. When a match is deterministic, you can be confident the attribution is correct.

When it works: Android (GAID available by default), iOS users who granted ATT permission (IDFA available).

Probabilistic Matching

Used when no device identifier is available. The MMP uses a combination of contextual signals — IP address, device model, OS version, screen resolution, install timing — to estimate which prior ad interaction most likely caused the install.

When it works: iOS users who declined ATT, environments where device IDs are unavailable.

Trade-off: Probabilistic attribution is less precise than deterministic. Two devices on the same IP address with similar specifications can produce ambiguous matches. However, it recovers a significant portion of attribution that would otherwise be marked as organic.


iOS Attribution: The Three-Layer Stack {#ios}

Apple's App Tracking Transparency (ATT) framework (iOS 14.5+) made IDFA opt-in, and most users decline. This created a layered attribution challenge that every MMP now addresses with a three-tier approach:

Layer Signal When Used Accuracy
Layer 1 — IDFA Device identifier ATT-consented users Highest (deterministic)
Layer 2 — Google ICM Google's Install Conversion Measurement Non-consented users, Google Ads campaigns High (privacy-safe signal)
Layer 3 — SKAN Apple's SKAdNetwork All remaining iOS users Aggregated only

Layer 2 note: Install Conversion Measurement (ICM) is Google's product. SolarEngine integrates with Google's ICM interface, allowing clients to recover attribution signals for non-consented iOS users running Google Ads campaigns — without requiring IDFA.

Layer 3 note: SKAN provides aggregated, delayed, campaign-level data only — no user-level attribution. It is the fallback layer when no other signal is available.

An MMP that only handles Layer 1 loses attribution data for the majority of iOS users. Full three-layer coverage is the industry standard for iOS measurement in 2026.


What Is a Postback and Why Does It Matter? {#postback}

A postback is a server-to-server HTTP request sent from the MMP to the ad network after an install or in-app event is attributed. It is the mechanism through which ad platform algorithms receive real conversion feedback.

Without postbacks, ad networks optimize on click-through rates and estimated conversions — proxy metrics that don't reflect actual revenue.

With postbacks, ad networks receive:

  • Confirmed install signals (which users actually installed)
  • Post-install events: purchases, ad revenue, tutorial completion
  • Revenue values (IAP amounts, IAA earnings)

This feedback loop is what enables ad network algorithms — Google's Target CPA, Meta's value optimization, Mintegral's Target ROAS — to shift spend toward users who generate revenue, not just clicks.

Postback timing matters: Events sent back within the first 24–48 hours after install have the highest impact on algorithm performance. Most MMPs allow you to configure postback rules per network — which events to send, when, and at what frequency.


How SolarEngine Handles Attribution {#solarengine}

SolarEngine's attribution module handles the full cycle described above — across all major ad networks — with additional capabilities for complex attribution scenarios:

Cross-channel integration: Integrates with Google, Meta, Mintegral, TikTok, and 30+ additional networks. All attribution data flows into a single report with consistent methodology across channels.

iOS three-layer coverage: SolarEngine's iOS attribution implements all three layers — IDFA, Google ICM integration, and SKAdNetwork — so clients recover the maximum possible attribution coverage on iOS without additional development work.

Postback configuration: SolarEngine's postback system allows clients to define custom postback rules — which events, which networks, which thresholds — through a visual interface. No engineering involvement required. For Mintegral campaigns, sending accurate IAA revenue postbacks through SolarEngine feeds real monetization signals into Mintegral's Target ROAS bidding model.

Fraud filtering: SolarEngine's real-time fraud detection identifies and blocks fake installs, click injection, and device farm activity before they enter attribution reports — ensuring the data your team acts on is clean.

30+ dimensions: Every attributed install can be analyzed across 30+ dimensions including region, device type, OS version, ad network, campaign, ad group, creative, and custom segments.

For a complete overview of the attribution platform and how to choose the right MMP, see
Mobile App Attribution: Complete Guide [2026]


FAQ

Q: How does app attribution work technically?
App attribution works by embedding an SDK in your app that fires an install signal on first open. A neutral MMP receives this signal and matches it to a prior ad click or impression record using device identifiers or probabilistic signals. The MMP assigns credit to the matching channel and sends a postback confirmation to the ad network.

Q: What happens if two ad networks claim credit for the same install?
Without an MMP, both networks would count the install in their dashboards — creating double-counting. An MMP applies a single attribution model (typically Last Click) and assigns credit to only one source. All other networks receive no credit for that install.

Q: How long does the attribution matching process take?
The full cycle — ad click to MMP match to postback delivery — typically completes in under 60 seconds for deterministic matches. Probabilistic matches may take slightly longer as the MMP evaluates multiple contextual signals.

Q: What is the difference between click attribution and impression attribution?
Click attribution assigns credit to an ad that a user clicked before installing. Impression attribution assigns credit to an ad the user saw (but may not have clicked) before installing. Click attribution is the standard; impression attribution is used for awareness campaigns. Impression windows are typically shorter (24 hours vs 7 days for clicks).

Q: Why do I need a postback? Can't I just look at MMP reports?
MMP reports tell you what happened. Postbacks tell the ad network what happened — so its algorithm can optimize toward users who actually convert. Without postbacks, you're reporting on past performance but not improving future performance. Postbacks close the loop between measurement and optimization.


Conclusion

App attribution works through a five-component cycle: ad interaction → install signal → MMP match → attribution decision → postback. Understanding each step helps UA teams configure their MMP correctly, set appropriate attribution windows, and get the maximum value from postback data.

The difference between attribution that improves your campaigns and attribution that merely reports on them comes down to postback quality — and that starts with accurate, real-time matching.

Set up attribution with SolarEngine → — cross-channel coverage, three-layer iOS attribution, and postback configuration in a single platform.

SolarEngine — Unlock Your App Growth with Comprehensive Data
Last modified: 2026-04-02Powered by