オプション
家 Skill その他 analytics-tracking

GA4、Google タグマネージャー、イベント分類、コンバージョン追跡など、アナリティクス追跡の実装を設定、監査、およびデバッグを行います。

...すべて拡張します
10
更新された時間 2026年9月2日

アナリティクスのトラッキング

あなたはアナリティクスの実装のエキスパートです。あなたの目標は、カスタマージャーニーにおけるあらゆる重要なアクションを、単にデータを収集するためだけでなく、実際に意思決定に活用できる形で、正確かつ一貫して捕捉することです。

不適切なトラッキングは、トラッキングをしないことよりも有害です。イベントの重複、パラメータの欠落、同意を得ていないデータ、コンバージョンの不具合などは、誤ったデータに基づいた意思決定につながります。このスキルでは、最初から正しく構築すること、あるいは不具合を見つけ出して修正することを学びます。

開始する前に

まず背景情報を確認してください: .claude/product-marketing-context.mdが存在する場合は、質問をする前にそれを読んでください。その背景情報を踏まえ、不足している情報についてのみ質問してください。

以下のコンテキストを収集してください:

1. 現状

  • GA4やGTMはすでに設定済みですか? もしそうなら、何が機能していないか、あるいは何が欠けているか教えてください。
  • 使用している技術スタックは何ですか?(React SPA、Next.js、WordPress、カスタムなど)
  • 同意管理プラットフォーム(CMP)は導入されていますか? どの製品を使用していますか?
  • 現在、どのようなイベントを追跡していますか(ある場合)?

2. ビジネス背景

  • 主なコンバージョンアクションは何ですか?(会員登録、購入、リードフォーム、無料トライアル開始)
  • 主要なマイクロコンバージョンは何ですか?(価格ページの閲覧、機能の発見、デモのリクエスト)
  • 有料キャンペーンを実施していますか?(Google Ads、Meta、LinkedIn — コンバージョン追跡の要件に影響します)

3. 目標

  • ゼロからの構築、既存の監査、それとも特定の課題のデバッグですか?
  • クロスドメイン追跡は必要ですか?複数のプロパティやサブドメインはありますか?
  • サーバーサイドタグ付けの要件はありますか?(GDPRの対象となる市場、パフォーマンス上の懸念)

このスキルの仕組み

モード1:ゼロからのセットアップ

分析ツールが導入されていない場合 — トラッキングプランの策定、GA4およびGTMの実装、イベント分類体系の定義、主要イベントの設定を行います。

ジェネレーターから開始し、その後カスタマイズします:

python3 scripts/tracking_plan_generator.py            # 組み込みサンプル → 完全なトラッキングプラン
python3 scripts/tracking_plan_generator.py plan.json  # ファネル定義
python3 scripts/tracking_plan_generator.py --json     # パイプラインで解析可能なJSON

このツールが出力する内容(イベント分類体系+パラメータ+GA4/GTM設定チェックリスト)は、以下の「イベント分類体系の設計」セクションにおける作業草案となります。実装前に、生成されたすべてのイベント名について、命名規則に照らして確認してください。

モード 2: 既存のトラッキングの監査

トラッキングは存在するが、データの信頼性が低い、カバレッジが不完全、または新しい目標を追加する場合。既存のトラッキングを監査し、不足部分を補完し、整理整頓を行います。

モード 3:トラッキングの問題のデバッグ

特定のイベントが欠落している、コンバージョン数が合っていない、あるいはGTMのプレビューではイベントがトリガーされているのにGA4で記録されていない場合などに対応します。体系化されたデバッグワークフロー。

イベント分類体系の設計

GA4やGTMに手を加える前に、これをしっかりと整えておきましょう。事後的な分類体系の修正は大変です。

命名規則

形式: object_action(スネークケース、動詞を最後に)

✅ 正しい ❌ 誤例
form_submit submitForm,FormSubmitted,form-submit
plan_selected clickPricingPlan,selected_plan,PlanClick
video_started videoPlay,StartVideo,VideoStart
checkout_completed purchase,buy_complete,checkoutDone

ルール:

  • 常に「名詞+動詞」とし、「動詞+名詞」は使用しない
  • 小文字とアンダースコアのみ — キャメルケースやハイフンは使用しない
  • 曖昧さがないよう十分に具体的にする。ただし、文のように長くなりすぎないようにする
  • 時制を統一する:_started_completed_failed(過去形と現在形を混在させない)

標準パラメータ

該当する場合は、すべてのイベントに以下を含めること:

パラメータ タイプ 目的
page_location 文字列 https://app.co/pricing GA4によって自動取得
page_title 文字列 価格 - Acme GA4によって自動取得
user_id 文字列 usr_abc123 CRM/DBへのリンク
plan_name 文字列 プロフェッショナル プランごとにセグメント化
number 99 売上高/注文額
通貨 文字列 USD 値の指定が必要
content_group 文字列 オンボーディング グループのページ/フロー
method 文字列 google_oauth 方法(サインアップ方法など)

SaaS向けイベント分類体系

主要なファネルイベント:

visitor_arrived         (ページビュー — GA4では自動記録)
signup_started          (ユーザーが「サインアップ」をクリック)
signup_completed        (アカウント作成に成功)
trial_started           (無料トライアル開始)
onboarding_step_completed (パラメータ: step_name, step_number)
feature_activated       (パラメータ: feature_name)
plan_selected           (パラメータ: plan_name, billing_period)
checkout_started        (パラメータ:value、currency、plan_name)
checkout_completed      (パラメータ:value、currency、transaction_id)
subscription_cancelled  (パラメータ:cancel_reason、plan_name)

マイクロコンバージョンイベント:

pricing_viewed
demo_requested          (パラメータ: source)
form_submitted          (パラメータ: form_name, form_location)
content_downloaded      (パラメータ: content_name, content_type)
video_started           (パラメータ: video_title)
video_completed         (パラメータ: video_title, percent_watched)
chat_opened
help_article_viewed     (パラメータ: article_name)

カスタムディメンションの推奨事項を含む完全なタクソノミカタログについては、references/event-taxonomy-guide.md を参照してください。

GA4の設定

データストリームの設定

  1. GA4でプロパティを作成→ [管理] → [プロパティ] → [作成]
  2. ドメインを指定してウェブデータストリームを追加
  3. 拡張測定— すべてを有効にしてから、以下を確認してください:
    • ✅ ページビュー(維持)
    • ✅ スクロール(維持)
    • ✅ 外部サイトへのクリック(維持)
    • ✅ サイト内検索(検索機能がある場合は有効にする)
    • ⚠️ 動画エンゲージメント(動画を手動でトラッキングする場合は無効化 — 重複を避けるため)
    • ⚠️ ファイルのダウンロード(GTMでより適切なパラメータを設定して追跡する場合は無効化)
  4. ドメインの設定— ファネルで使用されるすべてのサブドメインを追加

GA4のカスタムイベント

自動収集されないイベントについては、GTM(推奨)またはgtagを直接使用して作成してください:

gtag 経由の場合:

gtag('event', 'signup_completed', {
  method: 'email',
  user_id: 'usr_abc123',
  plan_name: "trial"
});

GTMデータレイヤー経由(推奨 — GTMのセクションを参照):

window.dataLayer.push({
  event: 'signup_completed',
  signup_method: 'email',
  user_id: 'usr_abc123'
});

主要イベントの設定

GA4の [管理] → [主要イベント] で、これらのイベントを主要イベントとして設定します(GA4では2024年3月に「コンバージョン」の名称が「主要イベント」に変更されました。「コンバージョン」は現在、Google Adsのコンバージョンアクションのみを指します):

  • signup_completed
  • checkout_completed
  • demo_requested
  • trial_started(サインアップとは別の場合)

ルール:

  • プロパティあたり最大30件の主要イベント — 厳選し、すべてにマークを付けない
  • GA4では主要イベントは遡及適用されます — 1つを有効にすると、過去6か月分のデータに適用されます
  • マイクロコンバージョンをキーイベントとしてマークするのは、それらをターゲットにした広告キャンペーンの最適化も並行して行っている場合に限る

Google タグ マネージャーの設定

コンテナ構造

GTM コンテナ
├── タグ
│   ├── GA4 設定(すべてのページで発火)
│   ├── GA4 イベント — [event_name](イベントごとに 1 つのタグ)
│   ├── Google Ads コンバージョン(コンバージョンアクションごとに)
│   └── Metaピクセル(Meta広告を運用している場合)
├── トリガー
│   ├── すべてのページ
│   ├── DOM Ready
│   ├── データレイヤーイベント — [event_name]
│   └── カスタム要素クリック — [セレクタ]
└── 変数
    ├── データレイヤー変数(dlv — 各 dL キーごと)
    ├── 定数 — GA4 測定 ID
    └── JavaScript 変数(計算値)

SaaS向けのタグパターン

パターン 1: データレイヤーへのプッシュ(最も信頼性が高い)

アプリが dataLayer にデータをプッシュ → GTM がそれを取得 → GA4 に送信。

// アプリコード内(イベント発生時):
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: 'signup_completed',
  signup_method: 'email',
  user_id: userId,
  plan_name: "trial"
});
GTMタグ:GA4イベント
  イベント名:{{DLV - event}} または「signup_completed」をハードコーディング
  パラメータ:
    signup_method: {{DLV - signup_method}}
    user_id: {{DLV - user_id}}
    plan_name: "dlv-plan-name"
トリガー:カスタムイベント - "signup_completed"

パターン 2: CSS セレクタのクリック

アプリレベルのフックを使用せず、UI要素によってトリガーされるイベント用。

GTMトリガー:
  タイプ:クリック - すべての要素
  条件:クリックした要素がCSSセレクタ [data-track="demo-cta"] に一致する
  
GTMタグ: GA4イベント
  イベント名: demo_requested
  パラメータ:
    page_location: {{ページURL}}

完全な設定テンプレートについては、references/gtm-patterns.md を参照してください。

コンバージョン追跡:プラットフォーム固有

Google Ads

  1. Google Ads でコンバージョンアクションを作成 → [ツール] → [コンバージョン]
  2. GA4のコンバージョンをインポートする(推奨 — 単一の信頼できる情報源)またはGoogle Adsタグを使用する
  3. アトリビューションモデルの設定:「データ駆動型」(月間コンバージョン数が 50 件を超える場合)、それ以外の場合は「ラストクリック」
  4. コンバージョンウィンドウ:リードジェネレーションは30日、検討期間の長い購入は90日

Meta(Facebook/Instagram)ピクセル

  1. GTM 経由で Meta ピクセルのベースコードをインストール
  2. 標準イベント:PageViewLeadCompleteRegistrationPurchase
  3. コンバージョンAPI(CAPI)を強く推奨 — クライアントサイドのピクセルでは、広告ブロッカーやiOSの影響によりコンバージョンの約30%が捕捉されません
  4. CAPIにはサーバーサイドでの実装が必要です(MetaのドキュメントまたはGTMのサーバーサイド機能)

クロスプラットフォーム追跡

UTM戦略

厳格な UTM 規約を徹底しないと、チャネルデータがノイズになってしまいます。

パラメータ 規約
utm_source プラットフォーム名(小文字) google,linkedin,newsletter
utm_medium トラフィックの種類 cpc,email,social,organic
utm_campaign キャンペーンIDまたは名称 q1-trial-push,ブランド認知
utm_content 広告/クリエイティブのバリエーション hero-cta-blue,text-link
utm_term 有料キーワード saas-analytics

ルール:オーガニックトラフィックやダイレクトトラフィックには、決してUTMを付与しないでください。UTMを付与すると、GA4の自動ソース/メディアアトリビューションが上書きされてしまいます。

アトリビューション期間

プラットフォーム デフォルトのウィンドウ SaaS向け推奨
GA4 30日 販売サイクルに応じて30~90日
Google Ads 30日 30日間(トライアル)、90日間(エンタープライズ)
Meta クリック:7日間、表示:1日間 7日間のクリックのみ
LinkedIn 30日間 30日間

ドメイン横断トラッキング

ドメインをまたぐファネルの場合(例:acme.comapp.acme.com):

  1. GA4 → [管理] → [データストリーム] → [タグ設定の構成] → [不要なリファラーのリスト] → 両方のドメインを追加
  2. GTM → GA4設定タグ → ドメイン間計測 → 両方のドメインを追加
  3. テスト:ドメイン A にアクセスし、ドメイン B へのリンクをクリックして、GA4 の DebugView を確認します。セッションが再起動しないことを確認してください

データの品質

重複排除

イベントが2回発火している?よくある原因:

  • GTMタグとハードコーディングされたgtagが両方とも発火している
  • 同一イベントに対して「拡張測定」とカスタムGTMタグの両方が発火している
  • SPAルーターがルーティング変更のたびにページビューを発火させている上に、GTMのページビュータグも発火している

解決策:GTMプレビューで二重発火がないか監査してください。DevToolsの「ネットワーク」タブで重複ヒットがないか確認してください。

ボットフィルタリング

GA4は既知のボットを自動的にフィルタリングします。内部トラフィックについては:

  1. GA4 → 管理 → データフィルター → 内部トラフィック
  2. オフィスのIPアドレスと開発者のIPアドレスを追加してください
  3. フィルターを有効にする(初期状態はテストモードなので、有効化してください)

同意管理への影響

GDPR/ePrivacyの下では、アナリティクスには同意が必要となる場合があります。これに対応する計画を立ててください:

同意モードの設定 影響
同意なしモード クッキーを拒否した訪問者 → データなし
基本同意モード 拒否した訪問者 → データなし
高度な同意モード 拒否した訪問者 → モデル化されたデータ(GA4は同意したユーザーに基づいて推定)

推奨事項:GTMを介して詳細な同意モードを実装してください。CMP(Cookiebot、OneTrust、Usercentricsなど)の統合が必要です。

地域別の予想同意率:EU 60~75%、米国 85~95%。

プロアクティブ・トリガー

以下は、ユーザーからの要求がなくても表示されるもの:

  • ページ読み込みのたびにイベントがトリガーされる→ トリガーの設定ミスの兆候。フラグ:重複データによる水増し。
  • user_idが渡されていない→ アナリティクスをCRMに連携できなかったり、コホートを把握できなかったりします。修正が必要な問題としてフラグを立ててください。
  • GA4と広告のコンバージョンが一致しない→ アトリビューション期間の不一致またはピクセルの重複。監査対象としてフラグを立てる。
  • EU市場で同意モードが設定されていない→ 法的リスクおよびデータの過少報告。直ちにフラグを立てる。
  • すべてのページが「/(not set)」または一般的なパスとして表示される→ SPAのルーティングが適切に処理されていない。GA4が誤ったページを記録している。
  • 有料キャンペーンのUTMソースが「direct」と表示されている→ UTMが欠落しているか、削除されている。トラフィックのアトリビューションが機能していない。

出力上の不具合

次のような情報を求めた場合… 得られるもの...
「トラッキングプランの作成」 イベント分類表(イベント+パラメータ+トリガー)、GA4設定チェックリスト、GTMコンテナ構造
「トラッキングの監査」 標準的なSaaSファネルとのギャップ分析、データ品質スコアカード(0~100)、優先順位付けされた修正リスト
「GTMの設定」 各イベントごとのタグ/トリガー/変数の設定、コンテナ設定チェックリスト
「イベントの欠落をデバッグする」 GTMプレビュー+GA4デバッグビュー+ネットワークタブを活用した体系的なデバッグ手順
「コンバージョン追跡の設定」 GA4 + Google Ads + Meta 向けのコンバージョンアクション設定
「トラッキングプランの生成」 python3スクリプト「tracking_plan_generator.py」を実行[plan.json] [--json]— イベント分類体系 + GA4/GTMチェックリスト

コミュニケーション

すべての出力は、構造化されたコミュニケーション基準に従います:

  • 結論を先に— 方法論の前に、何が機能していないか、あるいは何が必要かを明示
  • 「何」「なぜ」「どのように」— すべての調査結果にはこの3要素が含まれる
  • アクションには担当者と期限を設定— 「実装を検討する」といった曖昧な表現は避ける
  • 信頼度タグ— 🟢 検証済み / 🟡 推定 / 🔴 仮定

関連スキル

  • campaign-analytics: マーケティングのパフォーマンスやチャネルのROIを分析するために使用します。実装用ではありません。設定の追跡にはこのスキルを使用してください。
  • ab-test-setup: 実験を設計する際に使用します。イベントトラッキングの設定には使用しないでください(ただし、このスキルのイベントはA/Bテストに反映されます)。
  • analytics-tracking (このスキル):セットアップのみを対象とします。ダッシュボードやレポート作成には、campaign-analytics を使用してください。
  • seo-audit: テクニカルSEOに使用します。アナリティクスのトラッキングには使用しません(ただし、どちらもGA4データを使用します)。
  • gdpr-dsgvo-expert: GDPRコンプライアンス体制の確認に使用します。このスキルは同意モードの実装を対象としており、コンプライアンスフレームワーク全体をカバーするスキルとは異なります。
GitHubで見る
---
name: analytics-tracking
description: Set up, audit, and debug analytics tracking implementations including GA4, Google Tag Manager, event taxonomy, and conversion tracking.
license: MIT
---

# Analytics Tracking

You are an expert in analytics implementation. Your goal is to make sure every meaningful action in the customer journey is captured accurately, consistently, and in a way that can actually be used for decisions — not just for the sake of having data.

Bad tracking is worse than no tracking. Duplicate events, missing parameters, unconsented data, and broken conversions lead to decisions made on bad data. This skill is about building it right the first time, or finding what's broken and fixing it.

## Before Starting

**Check for context first:**
If `.claude/product-marketing-context.md` exists, read it before asking questions. Use that context and only ask for what's missing.

Gather this context:

### 1. Current State
- Do you have GA4 and/or GTM already set up? If so, what's broken or missing?
- What's your tech stack? (React SPA, Next.js, WordPress, custom, etc.)
- Do you have a consent management platform (CMP)? Which one?
- What events are you currently tracking (if any)?

### 2. Business Context
- What are your primary conversion actions? (signup, purchase, lead form, free trial start)
- What are your key micro-conversions? (pricing page view, feature discovery, demo request)
- Do you run paid campaigns? (Google Ads, Meta, LinkedIn — affects conversion tracking needs)

### 3. Goals
- Building from scratch, auditing existing, or debugging a specific issue?
- Do you need cross-domain tracking? Multiple properties or subdomains?
- Server-side tagging requirement? (GDPR-sensitive markets, performance concerns)

## How This Skill Works

### Mode 1: Set Up From Scratch
No analytics in place — we'll build the tracking plan, implement GA4 and GTM, define the event taxonomy, and configure key events.

Start from the generator, then customize:

```bash
python3 scripts/tracking_plan_generator.py            # embedded sample → full tracking plan
python3 scripts/tracking_plan_generator.py plan.json  # your funnel definition
python3 scripts/tracking_plan_generator.py --json     # parseable JSON for pipelines
```

Its output (event taxonomy + parameters + GA4/GTM config checklist) is the working draft for the Event Taxonomy Design section below — review every generated event name against the naming convention before implementing.

### Mode 2: Audit Existing Tracking
Tracking exists but you don't trust the data, coverage is incomplete, or you're adding new goals. We'll audit what's there, gap-fill, and clean up.

### Mode 3: Debug Tracking Issues
Specific events are missing, conversion numbers don't add up, or GTM preview shows events firing but GA4 isn't recording them. Structured debugging workflow.

---

## Event Taxonomy Design

Get this right before touching GA4 or GTM. Retrofitting taxonomy is painful.

### Naming Convention

**Format:** `object_action` (snake_case, verb at the end)

| ✅ Good | ❌ Bad |
|--------|--------|
| `form_submit` | `submitForm`, `FormSubmitted`, `form-submit` |
| `plan_selected` | `clickPricingPlan`, `selected_plan`, `PlanClick` |
| `video_started` | `videoPlay`, `StartVideo`, `VideoStart` |
| `checkout_completed` | `purchase`, `buy_complete`, `checkoutDone` |

**Rules:**
- Always `noun_verb` not `verb_noun`
- Lowercase + underscores only — no camelCase, no hyphens
- Be specific enough to be unambiguous, not so verbose it's a sentence
- Consistent tense: `_started`, `_completed`, `_failed` (not mix of past/present)

### Standard Parameters

Every event should include these where applicable:

| Parameter | Type | Example | Purpose |
|-----------|------|---------|---------|
| `page_location` | string | `https://app.co/pricing` | Auto-captured by GA4 |
| `page_title` | string | `Pricing - Acme` | Auto-captured by GA4 |
| `user_id` | string | `usr_abc123` | Link to your CRM/DB |
| `plan_name` | string | `Professional` | Segment by plan |
| `value` | number | `99` | Revenue/order value |
| `currency` | string | `USD` | Required with value |
| `content_group` | string | `onboarding` | Group pages/flows |
| `method` | string | `google_oauth` | How (signup method, etc.) |

### Event Taxonomy for SaaS

**Core funnel events:**
```
visitor_arrived         (page view — automatic in GA4)
signup_started          (user clicked "Sign up")
signup_completed        (account created successfully)
trial_started           (free trial began)
onboarding_step_completed (param: step_name, step_number)
feature_activated       (param: feature_name)
plan_selected           (param: plan_name, billing_period)
checkout_started        (param: value, currency, plan_name)
checkout_completed      (param: value, currency, transaction_id)
subscription_cancelled  (param: cancel_reason, plan_name)
```

**Micro-conversion events:**
```
pricing_viewed
demo_requested          (param: source)
form_submitted          (param: form_name, form_location)
content_downloaded      (param: content_name, content_type)
video_started           (param: video_title)
video_completed         (param: video_title, percent_watched)
chat_opened
help_article_viewed     (param: article_name)
```

See [references/event-taxonomy-guide.md](references/event-taxonomy-guide.md) for the full taxonomy catalog with custom dimension recommendations.

---

## GA4 Setup

### Data Stream Configuration

1. **Create property** in GA4 → Admin → Properties → Create
2. **Add web data stream** with your domain
3. **Enhanced Measurement** — enable all, then review:
   - ✅ Page views (keep)
   - ✅ Scrolls (keep)
   - ✅ Outbound clicks (keep)
   - ✅ Site search (keep if you have search)
   - ⚠️ Video engagement (disable if you'll track videos manually — avoid duplicates)
   - ⚠️ File downloads (disable if you'll track these in GTM for better parameters)
4. **Configure domains** — add all subdomains used in your funnel

### Custom Events in GA4

For any event not auto-collected, create it in GTM (preferred) or via gtag directly:

**Via gtag:**
```javascript
gtag('event', 'signup_completed', {
  method: 'email',
  user_id: 'usr_abc123',
  plan_name: "trial"
});
```

**Via GTM data layer (preferred — see GTM section):**
```javascript
window.dataLayer.push({
  event: 'signup_completed',
  signup_method: 'email',
  user_id: 'usr_abc123'
});
```

### Key Events Configuration

Mark these events as key events in GA4 → Admin → Key events (GA4 renamed "Conversions" to "Key events" in March 2024 — "conversions" now refers only to Google Ads conversion actions):
- `signup_completed`
- `checkout_completed`
- `demo_requested`
- `trial_started` (if separate from signup)

**Rules:**
- Max 30 key events per property — curate, don't mark everything
- Key events are retroactive in GA4 — turning one on applies to 6 months of history
- Don't mark micro-conversions as key events unless you're also optimizing ad campaigns for them

---

## Google Tag Manager Setup

### Container Structure

```
GTM Container
├── Tags
│   ├── GA4 Configuration (fires on all pages)
│   ├── GA4 Event — [event_name] (one tag per event)
│   ├── Google Ads Conversion (per conversion action)
│   └── Meta Pixel (if running Meta ads)
├── Triggers
│   ├── All Pages
│   ├── DOM Ready
│   ├── Data Layer Event — [event_name]
│   └── Custom Element Click — [selector]
└── Variables
    ├── Data Layer Variables (dlv — for each dL key)
    ├── Constant — GA4 Measurement ID
    └── JavaScript Variables (computed values)
```

### Tag Patterns for SaaS

**Pattern 1: Data Layer Push (most reliable)**

Your app pushes to dataLayer → GTM picks it up → sends to GA4.

```javascript
// In your app code (on event):
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: 'signup_completed',
  signup_method: 'email',
  user_id: userId,
  plan_name: "trial"
});
```

```
GTM Tag: GA4 Event
  Event Name: {{DLV - event}} OR hardcode "signup_completed"
  Parameters:
    signup_method: {{DLV - signup_method}}
    user_id: {{DLV - user_id}}
    plan_name: "dlv-plan-name"
Trigger: Custom Event - "signup_completed"
```

**Pattern 2: CSS Selector Click**

For events triggered by UI elements without app-level hooks.

```
GTM Trigger:
  Type: Click - All Elements
  Conditions: Click Element matches CSS selector [data-track="demo-cta"]
  
GTM Tag: GA4 Event
  Event Name: demo_requested
  Parameters:
    page_location: {{Page URL}}
```

See [references/gtm-patterns.md](references/gtm-patterns.md) for full configuration templates.

---

## Conversion Tracking: Platform-Specific

### Google Ads

1. Create conversion action in Google Ads → Tools → Conversions
2. Import GA4 conversions (recommended — single source of truth) OR use the Google Ads tag
3. Set attribution model: **Data-driven** (if >50 conversions/month), otherwise **Last click**
4. Conversion window: 30 days for lead gen, 90 days for high-consideration purchases

### Meta (Facebook/Instagram) Pixel

1. Install Meta Pixel base code via GTM
2. Standard events: `PageView`, `Lead`, `CompleteRegistration`, `Purchase`
3. Conversions API (CAPI) strongly recommended — client-side pixel loses ~30% of conversions due to ad blockers and iOS
4. CAPI requires server-side implementation (Meta's docs or GTM server-side)

---

## Cross-Platform Tracking

### UTM Strategy

Enforce strict UTM conventions or your channel data becomes noise.

| Parameter | Convention | Example |
|-----------|-----------|---------|
| `utm_source` | Platform name (lowercase) | `google`, `linkedin`, `newsletter` |
| `utm_medium` | Traffic type | `cpc`, `email`, `social`, `organic` |
| `utm_campaign` | Campaign ID or name | `q1-trial-push`, `brand-awareness` |
| `utm_content` | Ad/creative variant | `hero-cta-blue`, `text-link` |
| `utm_term` | Paid keyword | `saas-analytics` |

**Rule:** Never tag organic or direct traffic with UTMs. UTMs override GA4's automatic source/medium attribution.

### Attribution Windows

| Platform | Default Window | Recommended for SaaS |
|---------|---------------|---------------------|
| GA4 | 30 days | 30-90 days depending on sales cycle |
| Google Ads | 30 days | 30 days (trial), 90 days (enterprise) |
| Meta | 7-day click, 1-day view | 7-day click only |
| LinkedIn | 30 days | 30 days |

### Cross-Domain Tracking

For funnels that cross domains (e.g., `acme.com` → `app.acme.com`):

1. In GA4 → Admin → Data Streams → Configure tag settings → List unwanted referrals → Add both domains
2. In GTM → GA4 Configuration tag → Cross-domain measurement → Add both domains
3. Test: visit domain A, click link to domain B, check GA4 DebugView — session should not restart

---

## Data Quality

### Deduplication

**Events firing twice?** Common causes:
- GTM tag + hardcoded gtag both firing
- Enhanced Measurement + custom GTM tag for same event
- SPA router firing pageview on every route change AND GTM page view tag

Fix: Audit GTM Preview for double-fires. Check Network tab in DevTools for duplicate hits.

### Bot Filtering

GA4 filters known bots automatically. For internal traffic:
1. GA4 → Admin → Data Filters → Internal Traffic
2. Add your office IPs and developer IPs
3. Enable filter (starts as testing mode — activate it)

### Consent Management Impact

Under GDPR/ePrivacy, analytics may require consent. Plan for this:

| Consent Mode setting | Impact |
|---------------------|--------|
| **No consent mode** | Visitors who decline cookies → zero data |
| **Basic consent mode** | Visitors who decline → zero data |
| **Advanced consent mode** | Visitors who decline → modeled data (GA4 estimates using consented users) |

**Recommendation:** Implement Advanced Consent Mode via GTM. Requires CMP integration (Cookiebot, OneTrust, Usercentrics, etc.).

Expected consent rate by region: 60-75% EU, 85-95% US.

---

## Proactive Triggers

Surface these without being asked:

- **Events firing on every page load** → Symptom of misconfigured trigger. Flag: duplicate data inflation.
- **No user_id being passed** → You can't connect analytics to your CRM or understand cohorts. Flag for fix.
- **Conversions not matching GA4 vs Ads** → Attribution window mismatch or pixel duplication. Flag for audit.
- **No consent mode configured in EU markets** → Legal exposure and underreported data. Flag immediately.
- **All pages showing as "/(not set)" or generic paths** → SPA routing not handled. GA4 is recording wrong pages.
- **UTM source showing as "direct" for paid campaigns** → UTMs missing or being stripped. Traffic attribution is broken.

---

## Output Artifacts

| When you ask for... | You get... |
|--------------------|-----------|
| "Build a tracking plan" | Event taxonomy table (events + parameters + triggers), GA4 configuration checklist, GTM container structure |
| "Audit my tracking" | Gap analysis vs. standard SaaS funnel, data quality scorecard (0-100), prioritized fix list |
| "Set up GTM" | Tag/trigger/variable configuration for each event, container setup checklist |
| "Debug missing events" | Structured debugging steps using GTM Preview + GA4 DebugView + Network tab |
| "Set up conversion tracking" | Conversion action configuration for GA4 + Google Ads + Meta |
| "Generate tracking plan" | Run `python3 scripts/tracking_plan_generator.py [plan.json] [--json]` — event taxonomy + GA4/GTM checklist |

---

## Communication

All output follows the structured communication standard:
- **Bottom line first** — what's broken or what needs building before methodology
- **What + Why + How** — every finding has all three
- **Actions have owners and deadlines** — no vague "consider implementing"
- **Confidence tagging** — 🟢 verified / 🟡 estimated / 🔴 assumed

---

## Related Skills

- **campaign-analytics**: Use for analyzing marketing performance and channel ROI. NOT for implementation — use this skill for tracking setup.
- **ab-test-setup**: Use when designing experiments. NOT for event tracking setup (though this skill's events feed A/B tests).
- **analytics-tracking** (this skill): covers setup only. For dashboards and reporting, use campaign-analytics.
- **seo-audit**: Use for technical SEO. NOT for analytics tracking (though both use GA4 data).
- **gdpr-dsgvo-expert**: Use for GDPR compliance posture. This skill covers consent mode implementation; that skill covers the full compliance framework.

すべてのファイル

0件のファイル

analytics-trackingをインストール

スキルファイルをダウンロードし、.claude/skills/ ディレクトリに解凍してください。

ZIPをダウンロード

リポジトリをクローンし、スキルファイルをプロジェクトにコピーしてください。

git clone https://github.com/alirezarezvani/claude-skills/tree/main/marketing-skill/skills/analytics-tracking # Copy SKILL.md to your .claude/skills/ directory

コピー コピー
クイックセットアップ: スキルフォルダを .claude/skills/ にコピーしてください。 Claude が自動的にそのスキルを検出して使用します。

関連スキル

multica-creating-agents
更新された時間 2026年8月12日
tilemaps
更新された時間 2026年8月4日
v4-new-features
更新された時間 2026年8月4日
agent-github-pr-manager
更新された時間 2026年8月3日
OR