Skills · Data & AI

Attribution Audit

Unverified30/40

Paste the sales and spend numbers each ad platform claims, and get back a plain explanation of why they disagree and which figure to trust.

Originally by AgriciDaniel · MIT

Claude CodePartialHas SKILL.md but declares no allowed-tools — Claude Code will ask for permission each time
CursorPartialPlain prose you can paste in — but no Cursor rules file
CodexPartialPlain prose you can paste in — but no AGENTS.md
Gemini CLIPartialPlain prose you can paste in
CopilotPartialPlain prose you can paste in — but no Copilot instructions file
npx agentalley add ads-attribution

This command does not work yet — the CLI is still being built. Until then, use Raw in the reader below to take the file.

Who is stuck, and on what

Facebook says my ads made 50 sales, Google says 30, and my checkout total is nowhere near either number. I have no idea which one to believe or how much I actually made back.

What it gives you

A written breakdown of why each platform's numbers differ, which count is inflated or double-reported, and what your real result likely is.

When NOT to use it

It will not connect to your ad accounts or pull the numbers for you — you paste in the figures each platform shows you.

The whole source

No sign-in, no blur, nothing truncated
ads-attribution/SKILL.md33 lines1.9 KBRawView on GitHub
Frontmatter — 2 properties
nameads-attribution
descriptionAudit cross-platform attribution, conversion definitions, reporting windows, GA4, AdServices and AdAttributionKit, MMPs, browser and server events, offline conversions, and platform reconciliation. Use for attribution audit, attribution models, conversion windows, requests to add or total Meta and Google conversions, incompatible reporting-window aggregation, GA4 attribution, MMP review, AppsFlyer, Adjust, Branch, Singular, or cross-platform discrepancies.
1---
2name: ads-attribution
3description: "Audit cross-platform attribution, conversion definitions, reporting windows, GA4, AdServices and AdAttributionKit, MMPs, browser and server events, offline conversions, and platform reconciliation. Use for attribution audit, attribution models, conversion windows, requests to add or total Meta and Google conversions, incompatible reporting-window aggregation, GA4 attribution, MMP review, AppsFlyer, Adjust, Branch, Singular, or cross-platform discrepancies."
4---A5No allowed-tools declared — no way to tell what this skill may touch
5 
6# Attribution Audit
7 
81. Read the main `ads` contract and normalized account snapshots.
92. Declare the business conversion, value, data window, timezone, currency, and
10 decision the attribution analysis must support.
113. Inventory every browser, server, platform, analytics, MMP, offline, and app
12 attribution source with its identity, counting, deduplication, and privacy rules.
134. Reconcile comparable events and explain differences caused by eligibility,
14 view-through rules, consent, modeled data, conversion lag, thresholds, or scope.
155. Separate measurement quality from platform-reported performance.
166. Return findings, contradictions, confidence, missing evidence, and a measurement
17 improvement plan through the common JSON contract.
18 
19Do not assume one platform is ground truth, add incompatible reports together, or
20recommend an attribution model without the operator's decision context.
21 
22## Comparability gate
23 
24Reject aggregation until the sources share, or are explicitly normalized to, the
25same conversion event and value definition, attribution window, click/view scope,
26counting method, deduplication identity, timezone, currency, attribution model,
27and modeled-data treatment. Until then, report the values side by side with their
28definitions; do not compute a total.
29 
30Example: Meta seven-day conversions and Google thirty-day conversions are
31incompatible. Refuse to add them, reconcile windows and definitions first, and
32only aggregate a newly comparable dataset.
33 

Reviews

Installed this one?Write the first review and take the Trailblazer badge.

Reviews only open after a real install, so this is empty — and we leave it empty rather than invent one.

Alternatives

Also in Data & AI