Skip to main content
ClaudeWave
EN, English
Skill906 repo starsupdated 17d ago

attribution-report

The attribution-report skill performs multi-touch attribution analysis across multiple models including first-touch, last-touch, linear, time-decay, and position-based approaches to allocate conversion credit to marketing channels and campaigns. Use this skill to compare how different attribution models credit each channel, identify which touchpoints drive awareness versus conversions, and generate budget reallocation recommendations based on actual channel contribution rather than last-click bias, particularly valuable for analyzing AI Assistant channel performance in GA4 properties.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/indranilbanerjee/digital-marketing-pro /tmp/attribution-report && cp -r /tmp/attribution-report/skills/attribution-report ~/.claude/skills/attribution-report
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# /digital-marketing-pro:attribution-report

## GA4 AI Assistant channel (added 13 May 2026)

When generating attribution reports against a GA4 property, the **AI Assistant** default channel group is now a first-class channel. GA4 automatically categorizes sessions referred by ChatGPT, Gemini, Claude, and other recognized AI assistants under this channel (and sets `Medium=ai-assistant`). For any brand running an AEO program, include the AI Assistant channel in the channel set and compare its contribution across all attribution models (first-touch, last-touch, linear, time-decay, position-based, data-driven).

The model-comparison view is especially informative here: AI Assistant traffic often shows wildly different credit under first-touch vs last-touch because users frequently *discover* a brand via an AI assistant but convert via a later branded search or direct visit. Don't conclude "AI search doesn't drive revenue" from a last-touch number alone.

Source: [GA4 default channel groups](https://support.google.com/analytics/answer/9164320?hl=en). For the upstream impression-side data, pair with `/digital-marketing-pro:gsc-ai-performance` (GSC AI Performance Report rolled out 3 June 2026, deliberately no click data — so GA4 is your click attribution surface).

## Purpose

Generate multi-touch attribution analysis showing how different marketing channels and campaigns contribute to conversions. Compare multiple attribution models side-by-side, allocate revenue across touchpoints, and provide actionable budget reallocation recommendations based on true channel contribution. This command moves beyond simplistic last-click attribution to reveal the full customer journey — identifying which channels drive awareness, which nurture consideration, and which close conversions — so marketing budgets can be allocated based on actual contribution rather than positional bias.

## Input Required

The user must provide (or will be prompted for):

- **Attribution models to compare**: Two or more models to run side-by-side — `first-touch` (100% credit to the first interaction that initiated the journey), `last-touch` (100% credit to the final interaction before conversion), `linear` (equal credit distributed across all touchpoints), `time-decay` (exponentially more credit to touchpoints closer to conversion, with configurable half-life — default 7 days), `position-based` (40% to first touch, 40% to last touch, 20% distributed across middle interactions), or `data-driven` (algorithmic allocation based on conversion path patterns and counterfactual analysis). At least two models should be compared to reveal attribution bias
- **Conversion events to attribute**: The conversion actions to analyze — `purchases` (completed transactions with revenue), `signups` (account or trial creation), `leads` (form submissions, demo requests, contact inquiries), or `custom events` (user-defined conversion points with optional revenue values). Multiple conversion events can be analyzed simultaneously with separate attribution for each
- **Time period**: The analysis window — specific date range, relative period (last 30 days, last quarter), or year-over-year comparison. Longer periods provide more conversion paths for reliable model comparison but may include seasonal distortions
- **Conversion window**: The lookback window for attributing touchpoints to a conversion — `7 days` (short-cycle purchases, impulse buys), `14 days` (standard eCommerce), `30 days` (B2B lead gen, considered purchases), or `90 days` (enterprise B2B, high-value purchases with long sales cycles). Touchpoints outside the conversion window are excluded from attribution
- **Channels to include**: Which marketing channels to attribute across — paid search, paid social, organic search, direct, email, referral, display, video, affiliate, or specific campaign groups. All channels are included by default unless the user restricts scope

## Process

1. **Load brand context**: Read `~/.claude-marketing/brands/_active-brand.json` for the active slug, then load `~/.claude-marketing/brands/{slug}/profile.json`. Apply business model context (SaaS, eCommerce, B2B) to set appropriate default conversion window and model recommendations. Check for guidelines at `~/.claude-marketing/brands/{slug}/guidelines/_manifest.json`. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults.
2. **Gather conversion path data from analytics MCPs**: Pull multi-touch journey data from connected sources — Google Analytics MCP for conversion paths, multi-channel funnel reports, and assisted conversion data; Google Ads MCP for search attribution reports and cross-network attribution; Meta MCP for view-through and click-through attribution data; CRM MCP for deal stage progression with marketing touchpoint timestamps. Merge touchpoints into unified customer journeys, deduplicating cross-platform overlap where the same interaction is recorded by multiple sources.
3. **Apply each selected attribution model to the data**: Run every requested model against the unified conversion path dataset. (The model *taxonomy* — definitions, best-fit, limitations, and the selection decision tree — is single-sourced in `skills/funnel-architect/attribution-models.md`; the per-model math below is this report's execution of those definitions, not a second catalogue.) First-touch: assign 100% of conversion value to the first recorded touchpoint in each journey. Last-touch: assign 100% to the final touchpoint before conversion. Linear: divide conversion value equally among all touchpoints (n touchpoints each receive 1/n credit). Time-decay: apply exponential decay from conversion backward with the configured half-life — a touchpoint at one half-life distance receives 50% of the credit of the converting touchpoint, two half-lives receives 25%, and so on, then normalize to 100%. Position-based: assign 40% to first, 40% to last, distribute remaining 20% equall
ab-test-planSkill

Design a statistically rigorous A/B or multivariate test plan — If/Then/Because hypothesis, control and variant specs, required sample size per variant (absolute vs relative MDE via sample-size-calculator.py), test duration, guardrail metrics, stopping rules, and go/no-go decision criteria. Triggers on \"/digital-marketing-pro:ab-test-plan\", \"set up an A/B test\", \"how long should my test run\", \"calculate sample size for an experiment\", \"is this test result significant\". Reads the brand profile and past campaign-tracker results to avoid re-testing validated hypotheses; finished tests are evaluated with significance-tester.py by the cro-specialist agent.

ad-creativeSkill

Generate 3-5 ad copy variations per platform — headlines, descriptions, and CTAs formatted to Google, Meta, LinkedIn, TikTok, X, and Pinterest specs — each scored 1-10 with policy-compliance flags, A/B testing groupings, and a message-match check against the landing page. Triggers on \"/digital-marketing-pro:ad-creative\", \"write ad copy for Meta\", \"give me RSA headline variations\", \"we need LinkedIn ad copy\", \"draft TikTok ad creative\". Reads the brand profile, guidelines, and compliance rules; routes video ad scripts to /digital-marketing-pro:video-script and gates AI-generated visuals for EU campaigns through /digital-marketing-pro:c2pa-metadata and /digital-marketing-pro:check.

add-integrationSkill

Walk through adding a custom MCP server integration to the plugin — searches npm for an existing MCP package (or scaffolds a custom server from the plugin's guide), generates the exact .mcp.json entry, sets up environment-variable credentials, tests connectivity, and documents the tools the new server exposes. Triggers on \"/digital-marketing-pro:add-integration\", \"connect Ahrefs to the plugin\", \"add a new MCP server\", \"integrate our internal API\", \"hook up Stripe data\". Reads the brand profile and agency credential profiles at ~/.claude-marketing/credentials/ to map client-specific keys; custom builds follow skills/context-engine/custom-mcp-guide.md.

aeo-auditSkill

Audit how a brand appears across the 6 canonical AI answer surfaces — ChatGPT, Perplexity, Google AI Mode, AI Overviews, Gemini, Copilot — probing 10-25 queries into a numbered output bundle with per-platform visibility scorecards, citation-accuracy checks, a competitor matrix, content gaps, and an optimization playbook behind a four-gate quality scorecard. Triggers on \"/digital-marketing-pro:aeo-audit\", \"does ChatGPT know about our brand\", \"check our AI search visibility\", \"how does Perplexity describe us\", \"are we showing up in AI Overviews\". Reads the brand profile; reconciles probes against GSC actuals via /digital-marketing-pro:gsc-ai-performance and defines the AI-visibility scoring standard reused by geo-monitor and share-of-voice.

aeo-geoSkill

Strategy module for Answer Engine / Generative Engine Optimization — audits AI visibility, restructures content for citation, runs entity-consistency checks across Knowledge Graph, Wikidata, Wikipedia, Crunchbase, and LinkedIn, and produces JSON-LD schema specs, monitoring frameworks, and a 90-day LLM content strategy. Triggers on \"/digital-marketing-pro:aeo-geo\", \"how do we get cited by AI\", \"optimize for AI Overviews\", \"fix our entity consistency\", \"do we need llms.txt\". Reads the brand profile, compliance rules, and industry benchmarks; its measurement counterpart is /digital-marketing-pro:aeo-audit, with GSC actuals via /digital-marketing-pro:gsc-ai-performance.

agency-dashboardSkill

Generate a portfolio-level dashboard across ALL client brands — per-client RAG health scores, campaign activity, budget pacing, aggregate KPIs, team utilization, pending approvals, upcoming deadlines, and an alerts panel — built for agency standups and weekly reviews. Triggers on \"/digital-marketing-pro:agency-dashboard\", \"how are all our clients doing\", \"portfolio health check\", \"budget pacing across accounts\", \"which accounts are at risk\". Enumerates every brand under ~/.claude-marketing/brands/ and pulls data via campaign-tracker.py, execution-tracker.py, and team-manager.py; drill into a single client with /digital-marketing-pro:performance-report or /digital-marketing-pro:client-report.

agency-operationsSubagent

Invoke when the user needs to manage multiple client brands, view portfolio-level dashboards, generate client reports, manage SOPs, switch credential profiles, assign team tasks, configure regions, or generate executive summaries. Triggers on requests involving multi-client management, agency workflows, client onboarding, or portfolio oversight.

analytics-analystSubagent

Invoke when the user needs help with marketing measurement, KPI definition, dashboard design, attribution reporting, performance analysis, competitive benchmarking, or translating data into marketing decisions. Triggers on requests involving metrics, reporting, analytics setup, or data interpretation.