marketing-attribution-dashboard

Build multi-touch attribution dashboards tracking revenue by channel, campaign, and creative with blended ROAS analysis and budget allocation recommendations

11 stars

Best use case

marketing-attribution-dashboard is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Build multi-touch attribution dashboards tracking revenue by channel, campaign, and creative with blended ROAS analysis and budget allocation recommendations

Teams using marketing-attribution-dashboard should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/marketing-attribution-dashboard/SKILL.md --create-dirs "https://raw.githubusercontent.com/finsilabs/awesome-ecommerce-skills/main/skills/marketing-growth/marketing-attribution-dashboard/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/marketing-attribution-dashboard/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How marketing-attribution-dashboard Compares

Feature / Agentmarketing-attribution-dashboardStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Build multi-touch attribution dashboards tracking revenue by channel, campaign, and creative with blended ROAS analysis and budget allocation recommendations

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Marketing Attribution Dashboard

## Overview

Every ecommerce business faces attribution chaos: Meta says it drove 300 purchases, Google says 280, and your order management system shows 400 total. The overlap is real, the methodologies differ, and single-touch last-click models misrepresent the true value of upper-funnel channels. A proper attribution dashboard aggregates all marketing data in one place and applies a consistent model so you can make defensible budget decisions. For most merchants, a third-party attribution tool — not custom code — is the fastest path to accurate channel ROI.

## When to Use This Skill

- When ad spend decisions rely on platform-reported ROAS rather than actual order data
- When you suspect paid social is stealing attribution from organic search or email
- When preparing a quarterly marketing budget review and need a defensible data source
- When launching a new channel and need to measure its true incremental contribution
- When reporting marketing performance to investors or a board

## Core Instructions

### Step 1: Choose the right attribution tool

| Platform | Best For | Shopify | WooCommerce | BigCommerce | Price |
|----------|---------|---------|-------------|-------------|-------|
| **Triple Whale** | Shopify-native, real-time pixel + CAPI | App Store | Limited | Limited | $129+/mo |
| **Northbeam** | Advanced multi-touch, TV/podcast spend | App Store | Via pixel | Via pixel | $500+/mo |
| **Rockerbox** | Mid-market, all channels including offline | App Store | Via pixel | Via pixel | $500+/mo |
| **GA4** (free) | All platforms, good enough for most | Via tag | Via tag | Via tag | Free |
| **Wicked Reports** | WooCommerce-native, integrates with Klaviyo | Limited | Plugin | Limited | $299+/mo |

**Start with GA4** for most stores — it is free, handles multi-channel attribution with configurable models, and integrates natively with Google Ads. Upgrade to Triple Whale or Northbeam when you need real-time pixel data that survives iOS 14 restrictions.

### Step 2: Set up attribution reporting

---

#### Shopify

**With GA4 (recommended starting point):**
1. Go to **Shopify Admin → Online Store → Preferences → Google Analytics**
2. Enter your GA4 Measurement ID (`G-XXXXXXXXXX`)
3. Enable **Enhanced Ecommerce** under GA4 property settings
4. In **GA4 → Reports → Acquisition → Traffic Acquisition**: set secondary dimension to `Session campaign` to break down by campaign
5. In **GA4 → Reports → Acquisition → Traffic Acquisition**: set the comparison period to 30 days and filter by `Session medium` to isolate paid, organic, email, and social

**With Triple Whale (Shopify-native, recommended for paid social):**
1. Install **Triple Whale** from the Shopify App Store
2. Go to **Triple Whale → Pixel Setup** and add the Triple Whale pixel to your theme — this is a first-party pixel not blocked by iOS 14
3. Connect your ad accounts: **Triple Whale → Integrations** → connect Meta, Google Ads, and TikTok
4. Triple Whale's **Summary Page** shows a unified ROAS view across all ad platforms using your actual Shopify order data as the source of truth
5. Use **Triple Whale → Attribution → Model Comparison** to compare last-click, first-click, and linear attribution in a single view

---

#### WooCommerce

**With GA4:**
1. Install **MonsterInsights** (free tier) or **Google Site Kit** from the WordPress plugin directory
2. Go to **MonsterInsights → Settings → Analytics** and connect your GA4 property
3. Enable enhanced ecommerce tracking — MonsterInsights handles the data layer events automatically
4. For UTM attribution reports: go to **GA4 → Reports → Acquisition → Traffic Acquisition** and filter by source/medium

**With Wicked Reports (WooCommerce-specific):**
1. Install **Wicked Reports** from the WordPress plugin directory
2. Connect your WooCommerce store and email platform (Klaviyo, Mailchimp)
3. Wicked Reports assigns multi-touch attribution to each order by tracking the full customer journey from first ad click to purchase
4. Go to **Wicked Reports → ROI** to see revenue per ad campaign using your actual order data

---

#### BigCommerce

1. Go to **BigCommerce Admin → Settings → Analytics → Google Analytics**
2. Enter your GA4 Measurement ID and enable Enhanced Ecommerce
3. For advanced attribution: install **Triple Whale** or **Northbeam** from the BigCommerce App Marketplace — both support BigCommerce via tracking pixel
4. In BigCommerce Analytics, go to **Analytics → Marketing** to see channel-level attribution based on BigCommerce's built-in last-click model

---

#### Custom / Headless

For headless stores, capture first-touch attribution server-side before building any reporting layer. Third-party tools like Triple Whale, Northbeam, or Rockerbox all provide a JavaScript pixel + server-side API for custom stacks.

If you need to build custom multi-touch attribution:

```typescript
interface TouchpointEvent {
  sessionId: string;
  customerId?: string;
  anonymousId: string;
  channel: string;       // 'paid-social' | 'paid-search' | 'organic' | 'email' | 'sms' | 'direct'
  source: string;        // 'meta' | 'google' | 'tiktok' | 'klaviyo'
  medium: string;
  campaign?: string;
  orderId?: string;
  orderValue?: number;
  timestamp: Date;
}

function classifyChannel(utm: UtmParams, referrer?: string): string {
  if (utm.medium === 'cpc' || utm.medium === 'paid')       return 'paid-search';
  if (utm.medium === 'paid-social' || utm.source?.match(/meta|facebook|instagram|tiktok/i)) return 'paid-social';
  if (utm.medium === 'email')                               return 'email';
  if (utm.medium === 'sms')                                 return 'sms';
  if (referrer?.match(/google|bing|yahoo/i))                return 'organic-search';
  if (referrer && !referrer.includes(process.env.STORE_DOMAIN!)) return 'referral';
  return 'direct';
}

// Attribution model: 40% first touch, 40% last touch, 20% distributed across middle
function positionBasedWeights(touchpoints: TouchpointEvent[]): number[] {
  const n = touchpoints.length;
  if (n === 1) return [1];
  if (n === 2) return [0.5, 0.5];
  const middleShare = 0.2 / (n - 2);
  return touchpoints.map((_, i) => {
    if (i === 0) return 0.4;
    if (i === n - 1) return 0.4;
    return middleShare;
  });
}
```

Use a dedicated attribution API service like **Rockerbox** or **Northbeam** rather than building the full attribution engine from scratch — the complexity of cross-device stitching and model computation is not worth custom-building for most stores.

### Step 3: Configure UTM tracking consistently

UTM parameters are the foundation of any attribution system. Without consistent UTMs, even GA4 cannot attribute sessions correctly.

**Standard UTM structure:**

| Channel | `utm_source` | `utm_medium` | `utm_campaign` |
|---------|-------------|-------------|----------------|
| Meta Ads | `facebook` or `instagram` | `paid-social` | `spring-2026-prospecting` |
| Google Ads | `google` | `cpc` | `brand-search` |
| TikTok Ads | `tiktok` | `paid-social` | `ugc-spring-2026` |
| Klaviyo email | `klaviyo` | `email` | `welcome-series` |
| SMS | `postscript` | `sms` | `abandoned-cart` |

Use Google's Campaign URL Builder at `ga-dev-tools.google.com/campaign-url-builder` to generate UTM links consistently.

**In Klaviyo:** Go to **Klaviyo → Account → Settings → UTM Tracking** and enable auto-UTM tagging — Klaviyo appends UTM parameters to all email links automatically.

**In Meta Ads:** Go to **Ads Manager → Campaign → URL Parameters** and add `utm_source={{site_source_name}}&utm_medium=paid-social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}` to your ad URL parameters at the campaign level.

### Step 4: Build a blended ROAS dashboard in GA4

1. Go to **GA4 → Explore → Free Form** and create a new exploration
2. Set **Dimensions**: Session source/medium, Session campaign
3. Set **Metrics**: Sessions, Ecommerce purchases, Purchase revenue, Transactions
4. Add a filter: `Session medium` contains `paid` to isolate paid channels
5. Use **GA4 → Advertising → Attribution** to compare last-click vs. data-driven attribution models side by side
6. For manual ROAS: export GA4 revenue by channel → enter ad spend from each platform → calculate `Revenue / Spend` in a spreadsheet

**Automate with Google Looker Studio (free):**
1. Connect Looker Studio to GA4, Google Ads, and your Shopify/WooCommerce data source
2. Build a blended channel dashboard using Looker Studio's **Blend Data** feature
3. Join GA4 session data with Google Ads spend by campaign name

### Step 5: Measure attribution health

| Metric | Target | Where to Find |
|--------|--------|---------------|
| Channel coverage (% of orders with UTM attribution) | > 70% | GA4 Acquisition report |
| Email channel share of attributed revenue | Varies by business | GA4 filter by utm_medium=email |
| Paid social EMQ score (for Meta CAPI) | 7+ / 10 | Meta Events Manager |
| Cross-channel ROAS discrepancy | < 30% variance vs. platform-reported | Compare GA4 vs. Ads Manager |

## Best Practices

- **GA4 is ground truth, not platform dashboards** — every ad platform over-attributes to itself; your order database and GA4 are the closest thing to ground truth
- **Use position-based attribution for budget decisions** — it rewards both discovery (first-touch) and closing (last-touch) channels; linear attribution underweights email and organic
- **Set a 30-day lookback minimum** — customers research for weeks before buying; 7-day windows miss upper-funnel contributions from paid social
- **Consistent UTMs are more important than the tool** — even the best attribution tool fails with inconsistent or missing UTM parameters; audit UTM coverage before buying a tool
- **Compare models, not just the default** — looking at the same period under last-click vs. linear vs. position-based reveals which channels are being systematically over- or under-credited

## Common Pitfalls

| Problem | Solution |
|---------|----------|
| Direct traffic massively over-attributed | Set a 30-min session timeout in GA4; check for missing UTM parameters on all ad campaigns |
| Email channel under-attributed | Enable auto-UTM in Klaviyo; test all links to verify UTMs survive ESP link tracking |
| Platform ROAS looks great but profitability is flat | Platforms count view-through attribution; compare attribution windows — use 7-day click only |
| Dashboard loads slowly | Use pre-aggregated GA4 summary tables; avoid building attribution from raw event exports |

## Related Skills

- @meta-ads-integration
- @google-ads-ecommerce
- @tiktok-ads-integration
- @affiliate-program
- @influencer-marketplace-integration

Related Skills

sms-marketing

11
from finsilabs/awesome-ecommerce-skills

Launch SMS marketing campaigns with opt-in flows, audience segmentation, and full TCPA/GDPR compliance to drive revenue through text messaging

lifecycle-marketing-automation

11
from finsilabs/awesome-ecommerce-skills

Map customer journey stages from first visit to loyal advocate with personalized messaging, triggered workflows, and segment-based campaign automation

email-marketing-automation

11
from finsilabs/awesome-ecommerce-skills

Build automated email flows for welcome series, post-purchase follow-ups, win-back campaigns, and browse abandonment to drive repeat revenue

sales-reporting-dashboard

11
from finsilabs/awesome-ecommerce-skills

Build executive dashboards showing revenue, average order value, conversion rates, and cohort analysis with drill-down by date and channel

marketing-spend-analysis

11
from finsilabs/awesome-ecommerce-skills

Track and analyze marketing spend across all channels with ROAS calculation, diminishing returns analysis, and budget reallocation recommendations by platform

financial-reporting-dashboard

11
from finsilabs/awesome-ecommerce-skills

Build P&L, balance sheet, and cash flow dashboards for ecommerce with drill-down by product, channel, and time period for management and investor reporting

financial-analytics-dashboard

11
from finsilabs/awesome-ecommerce-skills

Build interactive financial KPI dashboards with customizable metrics, drill-down analysis, variance explanations, and automated threshold-based alerting

attribution-modeling

11
from finsilabs/awesome-ecommerce-skills

Understand which marketing channels drive purchases by implementing multi-touch attribution models across UTM-tracked campaigns and channels

wishlist-save-for-later

11
from finsilabs/awesome-ecommerce-skills

Let shoppers save products to a wishlist, share it with friends, and get notified when saved items come back in stock or drop in price

storefront-theming

11
from finsilabs/awesome-ecommerce-skills

Build a themeable storefront with design tokens and CSS custom properties that supports white-labeling, multi-brand variants, and dark mode

search-autocomplete

11
from finsilabs/awesome-ecommerce-skills

Speed up product discovery with instant search suggestions, fuzzy typo matching, and category-aware results powered by Algolia or Elasticsearch

responsive-storefront

11
from finsilabs/awesome-ecommerce-skills

Build a mobile-first storefront with thumb-friendly navigation, sticky add-to-cart buttons, and touch-optimized components for high mobile conversion