CtrlK
BlogDocsLog inGet started
Tessl Logo

attribution-setup

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.

72

Quality

88%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

77%

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is highly actionable with concrete APIs, checklists, and a debug feedback loop, and its workflows are clearly sequenced with verification. Its main weaknesses are time-sensitive version markers scattered outside any deprecated section and a monolithic single-file structure that does not leverage reference files for progressive disclosure.

Suggestions

Move time-sensitive version/date references (e.g., 'Default 2025 stack', 'iOS 17.4+', 'SKAN 4.0') into a clearly labeled 'Current versions' or 'Deprecated/old patterns' section so they can be maintained without penalizing conciseness.

Split the per-MMP setup checklists and/or the full conversion-value schema into separate reference files (e.g., references/mmp-setup.md, references/cv-schema.md) referenced one level deep from the overview to improve progressive disclosure.

Make the few code snippets more complete (e.g., show the ATT-prompt-before-SDK-call ordering as a small runnable snippet) so the actionable examples are fully copy-paste ready.

DimensionReasoningScore

Conciseness

The body is dense and assumes Claude's intelligence (no basic concept explanations), but it is sprinkled with time-sensitive version/date markers — '(2024+)', 'SKAN 4.0', 'iOS 17.4+', 'iOS 14.3+', 'Default 2025 stack', 'iOS 14.5' — none placed in a deprecated/old-patterns section. The rubric penalizes such time-sensitive info on conciseness, so it sits at 2 rather than 3.

2 / 3

Actionability

Provides concrete, executable guidance: real API calls ('AppsFlyerLib.shared().start() in applicationDidFinishLaunching', 'Adjust.appDidLaunch(...)', 'AdjustDeeplink'), a specific 6-bit CV schema table with per-window mappings, per-MMP checklists, and a copy-ready output template. Not the level-2 'pseudocode/missing key details' case.

3 / 3

Workflow Clarity

Multi-step work is clearly sequenced: a numbered Initial Assessment, per-MMP setup checklists, a Debug Playbook that maps symptom to likely cause (an error-recovery feedback loop), and a Testing Plan with explicit verification checkpoints ('verify postback in MMP within X hours', 'verify it propagates'). Matches the 'checklists + feedback loops' anchor.

3 / 3

Progressive Disclosure

The skill is a single ~175-line SKILL.md with no bundle files and all content inline; sections are well-organized, but nothing is split into one-level-deep references (e.g., per-MMP setup or CV-schema detail could live in reference files). Well-structured but monolithic, so it does not reach the 'content appropriately split' level-3 anchor.

2 / 3

Total

10

/

12

Passed

Description

100%

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is strong across all dimensions: it states concrete capabilities, provides an explicit 'Use when' trigger list with natural user phrasings, and proactively disambiguates from neighboring skills. No changes needed.

DimensionReasoningScore

Specificity

Lists multiple concrete actions ('set up, debug, or interpret app install attribution') alongside a comprehensive enumeration of concrete subjects (SKAdNetwork, AdAttributionKit, Install Referrer, MMPs, deep links, conversion values, postback windows). This matches the 'lists multiple specific concrete actions' anchor rather than the partial 'names domain and some actions' level below.

3 / 3

Completeness

Explicitly answers both 'what' (set up/debug/interpret app install attribution plus the enumerated scope) and 'when' (a dedicated 'Use when the user mentions...' clause with explicit triggers). It is not the level-2 case where 'when' is only implied.

3 / 3

Trigger Term Quality

The 'Use when the user mentions' clause covers natural terms users would actually say, including 'SKAdNetwork', 'SKAN', 'attribution', 'conversion value', 'postback', 'IDFA', 'ATT', 'App Tracking Transparency', and the colloquial 'I can't measure my ad campaigns'. Broad coverage of natural phrasings, not just jargon.

3 / 3

Distinctiveness Conflict Risk

It carves a clear niche (app install attribution) and actively reduces conflict by handing off adjacent work: 'For paid campaign strategy, see ua-campaign and apple-search-ads' and 'For analytics events, see app-analytics'. Distinct triggers make wrong-skill firing unlikely.

3 / 3

Total

12

/

12

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
Eronred/aso-skills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.