Agent skill

Attribution Setup

by appeeky in appeeky/aso-skills

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…

MITAuto-check passedMobile

Install Attribution Setup

skills CLI
$ npx skills add appeeky/aso-skills --skill attribution-setup -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install appeeky/aso-skills attribution-setup --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/appeeky/aso-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/attribution-setup .claude/skills/attribution-setup && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
attribution-setup
GitHub stars
2.2k
Token cost
~2k tokens
SKILL.md length
851 words
Files
1
Skills in repo
39
Repo updated
First seen
Licence
MIT

At a glance

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…

  • Works in 5 steps: Check for app-marketing-context.md → Ask: iOS, Android, or both? → Ask: Do you currently use an MMP… → …
  • Wants to set up
  • SKILL.md covers Initial Assessment, The iOS Attribution Reality…, SKAdNetwork 4.0 Essentials and Conversion Value Schema Design, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Attribution Setup is an agent skill from appeeky/aso-skills. 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"…

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile, covering Paid advertising and App store release. It works with iOS. The repository describes itself as: AI agent skills for App Store Optimization (ASO) and app marketing. Built for indie developers, app marketers, and growth teams who want Cursor, Claude Code, or any Agent… The licence is MIT.

When your agent uses it

  • Wants to set up
  • Interpret app install attribution — including SKAdNetwork (SKAN)
  • Apples AdAttributionKit
  • Google Play Install Referrer

Example prompts

  • “SKAdNetwork”
  • “SKAN 4”
  • “AdAttributionKit”
  • “/attribution-setup”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Check for app-marketing-context.md
  2. Ask: iOS, Android, or both?
  3. Ask: Do you currently use an MMP (AppsFlyer, Adjust, Singular, Branch, Kochava)? If yes, which.
  4. Ask: Which paid channels are running or planned? (ASA, Meta, TikTok, Google UAC, etc.)
  5. Ask: What's broken / what's the goal? (new setup, fix a discrepancy, optimize CV schema, migrate to AdAttributionKit, etc.)

What it can do on your machine

Read from SKILL.md and the folder at commit 3919d7c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Attribution Setup loads about 2k tokens when it runs. Until then it costs about 189 tokens; SKILL.md has 851 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~189
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from appeeky/aso-skills at commit 3919d7c, republished under its MIT licence (© appeeky). 851 words, ~2,022 tokens.

Download SKILL.mdSave it as .claude/skills/attribution-setup/SKILL.md (or your agent's skills folder).
name
attribution-setup
description
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.
metadata.version
1.0.0

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

  1. Check for app-marketing-context.md
  2. Ask: iOS, Android, or both?
  3. Ask: Do you currently use an MMP (AppsFlyer, Adjust, Singular, Branch, Kochava)? If yes, which.
  4. Ask: Which paid channels are running or planned? (ASA, Meta, TikTok, Google UAC, etc.)
  5. 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+)

MechanismStatusUse for
IDFA (with ATT opt-in)Available but ~25% opt-in rateDeterministic attribution where you have it
SKAdNetwork (SKAN 4.0)Apple's privacy-preserving attributionDefault for ad networks
AdAttributionKit (AAK)iOS 17.4+, Apple's evolution of SKANUse alongside SKAN; required for some networks
MMP probabilisticBanned by Apple for fingerprinting; allowed for limited useLimited — check MMP terms
Apple Search Ads attributionDetailed (campaign/keyword) for ASA onlyAlways 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

ConceptWhat it means
PostbackThe 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 window3 windows: 0–2 days, 3–7 days, 8–35 days post-install
Privacy thresholdIf install volume too low, value becomes coarse or null
Hierarchical source ID4-digit ID encodes campaign + ad + creative
Web-to-appSKAN 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:

  1. Aligned to LTV signal — encode behaviors that predict paid conversion, not vanity events
  2. Front-loaded — most signal in window 1 (0–2 days)
  3. Monotonic when possible — higher CV = more valuable user

Template for a subscription app (window 1, 6-bit fine):

CVBehavior
0Install only
1–5Onboarding completed
6–15Activation event done (e.g. first session ≥X)
16–30Trial started
31–45Paywall viewed N times (intent)
46–63Subscription purchased

Window 2 (3–7d): trial-to-paid conversion, ARPU buckets. Window 3 (8–35d): D7/D14 retention + subscription renewal signal.

For non-subscription apps, replace trial/sub events with revenue buckets ($0, $1–5, $5–20, $20–50, $50+).

Setup Checklist by MMP

AppsFlyer
  • SDK integrated (AppsFlyerLib.shared().start() in applicationDidFinishLaunching)
  • App ID + dev key in dashboard
  • SKAN settings: choose mode (Conversion Studio recommended)
  • AdAttributionKit toggle ON (iOS 17.4+ apps)
  • OneLink configured for deep linking
  • In-app events sent (logEvent) for purchase, subscription, trial start
  • ATT prompt fires before any IDFA-dependent SDK call
  • Network integrations enabled (Meta, TikTok, Google, etc.)
Adjust
  • SDK + token in Adjust.appDidLaunch(...)
  • 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
Show full SKILL.md (345 more words)Show less
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:

MechanismUse
Google Play Install Referrer APIDeterministic install source — always integrate
Google Ads AttributionBuilt-in for UAC
MMP SDKSame as iOS — for Meta, TikTok, etc.

Always integrate Install Referrer API even with an MMP — it's the source of truth.

TypeWhen to use
Universal Links (iOS) / App Links (Android)Open app from web/email if installed; fallback to web
Deferred deep linkInstall 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

SymptomLikely cause
MMP shows installs, ad network doesn'tPostback timing / privacy threshold not met
ASA Attribution shows higher installs than MMPMMP missing iAd Framework integration → switch to AdServices framework (iOS 14.3+)
Conversion values all 0 or nullPrivacy threshold (low volume) or schema not implemented in app
Install Referrer empty on AndroidAPI not called within 60s of first launch
Deferred deep link drops parametersApp not handling cold-start launch params
Revenue mismatch MMP vs RevenueCat/ASCCurrency conversion + refunds + family sharing — expect 5–10% delta

Output Template

ATTRIBUTION SETUP — <App Name>

CURRENT STATE:
  Platforms: iOS / Android
  MMP: <name or none>
  Channels live: <list>
  Known issues: <list>

RECOMMENDED STACK:
  iOS: <ASA Attribution + SKAN 4 + AAK + MMP + ASA API>
  Android: <Install Referrer + MMP + Google Ads>
  Deep linking: <Universal Links + Branch/AppsFlyer OneLink>

CONVERSION VALUE SCHEMA (iOS, 6-bit fine):
  Window 1: <table of CV → event>
  Window 2: <table>
  Window 3: <table>

IMPLEMENTATION CHECKLIST:
  [ ] <step 1>
  [ ] <step 2>

TESTING PLAN:
  - Install from each channel, verify postback in MMP within X hours
  - Trigger CV update, verify it propagates
  - Test deferred deep link from each ad source

Common Mistakes

  • Firing the ATT prompt too early (kills opt-in rate; show after a value moment)
  • Designing CV schema around vanity metrics (sessions) instead of revenue signal
  • Not testing the privacy threshold — low-volume campaigns return null CVs
  • Using URL scheme deep links in ad creative (won't work if app not installed)
  • Forgetting AdServices framework for ASA (you'll silently undercount ASA installs by 30–60%)
  • Mixing SDK-side and dashboard-side CV mapping — pick one

Cross-Skill Handoffs

  • Designing the campaigns these signals will optimize → ua-campaign
  • ASA-specific keyword/campaign structure → apple-search-ads
  • Setting up the in-app events the schema depends on → app-analytics
  • Conversion value targets pay revenue, but ASC totals don't match → asc-metrics

© appeeky, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/attribution-setup of appeeky/aso-skills.

Open the folder on GitHubat commit 3919d7c

Compare with similar skills

Attribution Setup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Attribution Setup compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Attribution Setup this skillappeeky/aso-skills2.2k—~2kAutomated safety check: PassMIT
Suede AsoJasonColapietro/suede-creator-skills127—~3.9kAutomated safety check: PassMIT
App Adskostja94/marketing-skills1k—~781Automated safety check: PassMIT
App Store Screenshots GeneratorParthJadhav/app-store-screenshots7.2k—~14kAutomated safety check: PassMIT
App Store Release Flowrorkai/app-store-connect-cli-skills1.1k2 repos~2kAutomated safety check: PassMIT
App Store Submission Healthrorkai/app-store-connect-cli-skills1.1k2 repos~2.2kAutomated safety check: PassMIT

Similar skills

  • Suede Aso

    JasonColapietro/suede-creator-skills

    Suede-owned app-store optimization discipline for keyword fields, titles, subtitles, descriptions, screenshots, ratings context, and competitor listing audits.

    127 GitHub stars~3.9k tokensUpdated yesterday
    MobileAuto-check passed
  • App Ads

    kostja94/marketing-skills

    When the user wants to run app install ads, user acquisition (UA), or promote mobile apps.

    1k GitHub stars~781 tokensUpdated 2 days ago
    MobileAuto-check passed
  • App Store Screenshots Generator

    ParthJadhav/app-store-screenshots

    Scaffolds a Next.js editor for designing App Store and Google Play screenshots as ads and exporting them at every required size, for iOS, Mac and Android.

    7.2k GitHub stars~14k tokensUpdated today
    MobileAuto-check passed
  • App Store Release Flow

    rorkai/app-store-connect-cli-skills

    Orchestrates App Store releases with the asc CLI: staging a version, uploading or building, publishing and submitting for review, with dry-run and confirmation gates.

    1.1k GitHub starsUsed in 2 repos~2k tokens
    MobileAuto-check passed
  • App Store Submission Health

    rorkai/app-store-connect-cli-skills

    Diagnoses why an App Store version cannot be submitted or is stuck in review, using the asc CLI for validation, repair routing, status checks and retry decisions.

    1.1k GitHub starsUsed in 2 repos~2.2k tokens
    MobileAuto-check passed
  • App Store Preflight Skills

    truongduy2611/app-store-preflight-skills

    Scan an iOS/macOS Xcode project for common App Store rejection patterns before submission.

    1.4k GitHub stars~1.4k tokensUpdated 4 mo ago
    MobileAuto-check passed

More from appeeky/aso-skills

All 39 skills in this repo
  • Ab Test Store Listing

    appeeky/aso-skills

    When the user wants to A/B test App Store product page elements to improve conversion rate.

    2.2k GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • Android Aso

    appeeky/aso-skills

    When the user wants to optimize their Google Play Store listing — title, short description, full description, keywords, ratings, or Play Store-specific features.

    2.2k GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • App Analytics

    appeeky/aso-skills

    When the user wants to set up, interpret, or improve their app analytics and tracking.

    2.2k GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • App Clips

    appeeky/aso-skills

    When the user wants to implement, optimize, or use App Clips for app discovery and conversion.

    2.2k GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • App Icon Optimization

    appeeky/aso-skills

    When the user wants to design, test, or improve their app icon to increase tap-through rate and conversions in App Store search and browse.

    2.2k GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • App Marketing Context

    appeeky/aso-skills

    When the user wants to create or update their app marketing context document.

    2.2k GitHub stars~910 tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Attribution Setup

What does Attribution Setup do?

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…. Attribution Setup is an agent skill from appeeky/aso-skills. 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.

When should I use Attribution Setup?

Attribution Setup fits situations like: wants to set up; interpret app install attribution — including SKAdNetwork (SKAN); apples AdAttributionKit; google Play Install Referrer.

How do I install Attribution Setup in Claude Code?

Run `npx skills add appeeky/aso-skills --skill attribution-setup -a claude-code`. Or copy the skill folder (skills/attribution-setup in appeeky/aso-skills) into .claude/skills/attribution-setup in your project. Claude Code loads it when a task matches its description.

How do I install Attribution Setup in Codex?

Run `npx skills add appeeky/aso-skills --skill attribution-setup -a codex`. Or copy the skill folder (skills/attribution-setup in appeeky/aso-skills) into .agents/skills/attribution-setup in your project. Codex loads it when a task matches its description.

Can I use Attribution Setup in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add appeeky/aso-skills --skill attribution-setup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/attribution-setup, .gemini/skills/attribution-setup, .github/skills/attribution-setup and .opencode/skills/attribution-setup in your project.

What does Attribution Setup need to run?

SKILL.md names no scripts, command-line tools or credentials: Attribution Setup is instructions for the agent only.

Does Attribution Setup access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Attribution Setup safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Attribution Setup use?

Attribution Setup is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Attribution Setup use?

About 2k tokens (SKILL.md is roughly 8.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Attribution Setup?

Skills that share tags, products or a category with Attribution Setup: Suede Aso (JasonColapietro/suede-creator-skills, 127 stars), App Ads (kostja94/marketing-skills, 1k stars), App Store Screenshots Generator (ParthJadhav/app-store-screenshots, 7.2k stars) and App Store Release Flow (rorkai/app-store-connect-cli-skills, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Attribution Setup?

appeeky (a GitHub organization) maintains it in appeeky/aso-skills, which has 2,152 GitHub stars. The repository holds 39 skills in this directory. The repository was last updated on October 6, 2026.

Source: appeeky/aso-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.