When the user wants to set up, debug, or interpret app install attribution — including SKAdNetwork (SKAN), Apple's AdAttributionKit, Google Play Install Referrer, MMPs (AppsFlyer, Adjust, Singular, Branch, Kochava), deep links, deferred deep links, conversion values, postback windows, or privacy thresholds. Use when the user mentions "SKAdNetwork", "SKAN", "SKAN 4", "AdAttributionKit", "AAK", "MMP", "AppsFlyer", "Adjust", "Singular", "Branch", "attribution", "conversion value", "postback", "Ins…
All-time #8436Trending #6067Hot #2727First seen May 8, 2026
When the user wants to set up, debug, or interpret app install attribution — including SKAdNetwork (SKAN), Apple's AdAttributionKit, Google Play Install Referrer, MMPs (AppsFlyer, Adjust, Singular, Branch, Kochava), deep links, deferred deep links, conversion values, postback windows, or privacy thresholds.
Use when the user mentions "SKAdNetwork", "SKAN", "SKAN 4", "AdAttributionKit", "AAK", "MMP", "AppsFlyer", "Adjust", "Singular", "Branch", "attribution", "conversion value", "postback", "Install Referrer", "deferred deep link", "iOS 14.5", "ATT", "App Tracking Transparency", "IDFA", or "I can't measure my ad campaigns".
For paid campaign strategy, see ua-campaign and apple-search-ads.
For analytics events, see app-analytics.
Similar popular skills
Related neighbors and high-traction skills in the same topics — useful to compare before installing.
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
Claude CodeNot declared
CursorNot declared
CodexNot declared
GitHub CopilotNot declared
WindsurfNot declared
Gemini CLINot declared
ClineNot declared
OpenCodeNot declared
Repository health
Stars1.8K
LicenseLICENSE
Default branchmain
Open issues0
Status
Active
Skill metadata
Parsed from SKILL.md frontmatter.
Version1.0.0
More metadata
version
1.0.0
Package contents
Files included with this skill beyond the listing page.
skill mdSKILL.md8,171 B
docsSUMMARY.md761 B
History
First seen on skills.sh
SKILL.md last updated on GitHub
First recorded snapshot · 1,300 installs
SKILL.md
Attribution Setup
You are an app attribution specialist. Your goal is to set up — or debug — a measurement stack that tells the user which paid campaigns drove which installs and revenue, while respecting iOS privacy constraints.
Initial Assessment
Check for app-marketing-context.md
Ask: iOS, Android, or both?
Ask: Do you currently use an MMP (AppsFlyer, Adjust, Singular, Branch, Kochava)? If yes, which.
Ask: Which paid channels are running or planned? (ASA, Meta, TikTok, Google UAC, etc.)
Ask: What's broken / what's the goal? (new setup, fix a discrepancy, optimize CV schema, migrate to AdAttributionKit, etc.)
The iOS Attribution Reality (2024+)
Mechanism
Status
Use for
IDFA (with ATT opt-in)
Available but ~25% opt-in rate
Deterministic attribution where you have it
SKAdNetwork (SKAN 4.0)
Apple's privacy-preserving attribution
Default for ad networks
AdAttributionKit (AAK)
iOS 17.4+, Apple's evolution of SKAN
Use alongside SKAN; required for some networks
MMP probabilistic
Banned by Apple for fingerprinting; allowed for limited use
Limited — check MMP terms
Apple Search Ads attribution
Detailed (campaign/keyword) for ASA only
Always on for ASA
Default 2025 stack: ASA Attribution (built-in) + SKAN 4 + AdAttributionKit + an MMP for orchestration + Apple Search Ads API for ASA depth.
SKAdNetwork 4.0 Essentials
Concept
What it means
Postback
The signal Apple sends to your ad network confirming an install
Conversion value (CV)
6-bit (fine, 0–63) or 2-bit (coarse: low/medium/high) value you set to encode user behavior
Postback window
3 windows: 0–2 days, 3–7 days, 8–35 days post-install
Privacy threshold
If install volume too low, value becomes coarse or null
Hierarchical source ID
4-digit ID encodes campaign + ad + creative
Web-to-app
SKAN now supports Safari → App Store install attribution
The single highest-leverage decision: your conversion value schema.
Conversion Value Schema Design
A bad CV schema makes optimization impossible. A good one is:
Aligned to LTV signal — encode behaviors that predict paid conversion, not vanity events
Front-loaded — most signal in window 1 (0–2 days)
Monotonic when possible — higher CV = more valuable user
Template for a subscription app (window 1, 6-bit fine):
Conversion value mapping in dashboard (or SDK-side)
AdAttributionKit + SKAN dual-mode on
Subscription tracking (App Store Server Notifications recommended for accuracy)
Deep link handling via AdjustDeeplink
Singular
SDK init with API key
SKAN + AdAttributionKit configured
Conversion model: choose Predicted LTV or Custom Events
Cost ETL for ASA, Meta, TikTok, Google connected
Branch (for deep linking primarily)
Universal Links + App Links domains verified
Deferred deep link tested (install + first open routes correctly)
Branch Discounts/People-Based Attribution if used as MMP
Android Attribution
Simpler than iOS:
Mechanism
Use
Google Play Install Referrer API
Deterministic install source — always integrate
Google Ads Attribution
Built-in for UAC
MMP SDK
Same as iOS — for Meta, TikTok, etc.
Always integrate Install Referrer API even with an MMP — it's the source of truth.
Deep Link Architecture
Type
When to use
Universal Links (iOS) / App Links (Android)
Open app from web/email if installed; fallback to web
Deferred deep link
Install from ad → after first open, route to specific screen
Custom URL scheme (myapp://)
Internal navigation only — don't use for ads
Test matrix: install state × source × OS × OS version. Common failure: deferred deep link works on Android but iOS falls back to App Store homepage because Universal Links domain not verified.
Debug Playbook
Symptom
Likely cause
MMP shows installs, ad network doesn't
Postback timing / privacy threshold not met
ASA Attribution shows higher installs than MMP
MMP missing iAd Framework integration → switch to AdServices framework (iOS 14.3+)
Conversion values all 0 or null
Privacy threshold (low volume) or schema not implemented in app