Marketing Skill

Attribution

A framework for answering marketing's hardest question — which efforts actually caused a conversion — by choosing the right attribution model, reconciling dashboards that disagree, and (when you control the site) instrumenting first-party tracking yourself. Point your agent here when Google, Meta, GA, and your CRM all report different numbers and you need a defensible read before setting a budget.

Maintained by Corey Hainesv1.0.0Updated 2026-07-224 references
npx skills add coreyhaines31/marketingskills

Installs the full library — Attribution included

No single source is 'right,' and you should never sum conversions across platforms — if Google and Meta both claim the same sale, that's one conversion with two claimants, not two. Pick one source of truth for the conversion count (usually your CRM or backend, where revenue is real) and treat every other source as explaining where those conversions came from, not redefining how many. Each source is biased in a known direction: ad platforms over-count themselves via view-through, GA dumps the unknown into 'direct,' CRMs depend on human entry, and surveys favor the memorable touch. Read directional agreement over absolute match, use self-reported surveys and incrementality tests as tiebreakers, and expect an attribution gap you explain rather than eliminate.

When to use it

Your agent reaches for this skill when you ask for things like:

attribution,attribution model,first-touch vs last-touch,multi-touch,which channel drives revenue,what's my real CAC,my dashboards disagree,Google/Meta says X but GA says Y,

What's inside

The playbook covers

Boundaries — what this skill does NOT ownPillar A — InterpretationPillar B — Own your attribution (first-party)Output formatThe questionSource of truthWhat each source saysModel comparison (for long cycles)Confidence & gapsRecommendationTool Integrations

Reference library — 4 deep-dives

Attribution Models — The Math, WorkedSix standard models, one journey scored six ways, and data-driven attribution explained without the black box. Use this when the user wants to understand *why* two models disagree, or needs to pick one defensibly.Attribution by Business TypeAttribution defaults differ sharply by business model. The same "which channel drives revenue?" question wants a different source of truth, model, and paradigm depending on how long your cycle is, how many people are involved, and where your budget goes. Two playbooks: B2B SaaS and Ecommerce/DTC. Match the user's product to one (or blend, for PLG-with-sales).First-Party Attribution — The Own-Your-Attribution RunbookHow to instrument and stitch attribution yourself when you control the site/app. This is the build track (Pillar B). It's distilled from real production builds and kept tool-agnostic — PostHog + SavvyCal are the worked example, but the pattern maps to any product-analytics tool with `identify()`/merge (Segment, Amplitude, GA4 user-id) and any third-party conversion domain with a metadata passthrough + webhook (Calendly, Cal.com, Stripe Checkout, Typeform).Measurement Paradigms — MTA vs. MMM vs. IncrementalityAttribution *models* (see `attribution-models.md`) split credit *within* your tracked data. They can't tell you what would have happened anyway. That's what these three paradigms are for — increasingly rigorous, increasingly expensive ways to get closer to causality. Use this reference to help a user pick, and to explain how a test *reads* (not how to run the statistics).

Key data

The recommendations are grounded in benchmarks, not opinion:

The whole point: the touch that gets credit depends entirely on the model, and each model tells a different story about where your $12k came from.
Long B2B cycle, clear created/closed moments** → position-based as the primary, first-touch + last-touch shown alongside.
Use the B2B approach for the sales-assisted funnel (CRM as truth, position-based, pipeline-stage attribution, self-reported at demo).

See it in action

You ask

Google Ads says we got 50 conversions last month, Meta says 40, GA4 says 60, and our CRM shows 35 closed deals. Which one is right? I need to know our real numbers before I set next quarter's budget.

The skill delivers
Attribution readout (excerpt)

# Attribution Readout — 2026-07 ## Source of truth CRM closed-won count (35). Platforms explain where these came from; they do not redefine how many. ## What each source says (de-duped, not summed) | Channel | Platform | GA4 | CRM | Self-reported | Our read | |-------------|----------|-----|-----|---------------|----------| | Paid search | 50 | 22 | 14 | 11 | Trending up | | Paid social | 40 | 12 | 6 | 4 | Over-claimed (view-through) | | Direct/branded | — | 18 | 9 | — | Top-of-funnel cashing out | | Word of mouth | 0 | 0 | 3 | 12 | Invisible to tracking | ## Confidence & gaps Platforms claim ~90; CRM verifies 35. Delta = over-claiming + view-through + dark social. ## Recommendation Hold paid social flat and run a geo-holdout — high reported ROAS + flat revenue is the classic low-incrementality signature.

FAQ

Should I use first-touch or last-touch attribution?

For anything beyond a short, single-session purchase, don't report either in isolation — show first-touch and last-touch side by side, because the gap between them is the insight. First-touch over-credits awareness and ignores what closed the deal; last-touch over-credits branded search and direct and defunds the top of funnel. For B2B with clear 'created' and 'closed' moments, position-based (U-shaped) is a defensible primary, paired with self-reported attribution at demo or signup.

Why is half my traffic showing up as 'direct'?

Direct is the junk drawer, not a channel. It captures bookmarks and typed URLs but mostly stripped referrers, dark social (DMs, Slack, podcasts), app-to-web handoffs, and any touch your tracking dropped. A large direct share usually means your top of funnel is working but under-measured — segment branded vs. non-branded search and run a 'how did you hear about us?' survey to surface the demand-creating channels behind it.

My Meta campaign shows 6x ROAS but revenue isn't growing — why?

Platform-reported ROAS is systematically inflated by self-crediting, view-through conversions, and generous attribution windows, and reported ROAS is not incremental ROAS. Retargeting especially claims conversions that would have happened anyway. High reported ROAS alongside flat revenue is the classic signature of low incrementality. Run a holdout test — withhold the campaign from a random percentage or geo and measure the lift — and let incremental CPA, not reported ROAS, drive budget.

Build a tool for this workflow?

Marketers run this skill mid-task — the exact moment your tool matters. Partner tiers put your tool inside the skill their agent runs.

See partner tiers