conversion-tracking について
conversion-trackingは、Google Adsの計測を管理する広告主向けスキルです。Google tag、拡張コンバージョン、オフライン取り込み、アトリビューション設定の構成、検証、問題診断に対応します。
主な機能
- 01コンバージョンアクションの設定と検証
- 02Google tagの問題診断
- 03拡張コンバージョンの設定
- 04オフラインコンバージョン取り込みの管理
- 05アトリビューションモデルと計測期間の設定
活用シーン
- 01未記録・欠損コンバージョンの調査
- 02ファーストパーティデータによる拡張コンバージョン設定
- 03CRMのオフライン売上をGoogle Adsへ取り込み
- 04アトリビューションモデルの比較と設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ itallstartedwithaidea/ agent-skills --skill conversion-trackingインストール後、Claude Code で/conversion-trackingを入力して読み込まれたか確認します。
詳細
コンバージョントラッキング
Agent Skills™ の一部です。googleadsagent.ai™ が提供しています。
説明
コンバージョントラッキングスキルは、Google Ads のコンバージョン測定インフラをエンドツーエンドで管理します。正確なコンバージョントラッキングは、あらゆる最適化判断の基盤です。これがなければ、入札戦略、予算配分、キーワードの価値評価を適切に行えません。このスキルは、Google タグ、拡張コンバージョン、オフラインコンバージョンのインポート、コンバージョン値ルールまで、コンバージョン計測の全スタックにわたる設定、検証、デバッグ、アトリビューションモデルの管理を担います。
このスキルは、入札を促進するマクロコンバージョン(購入、リード、登録)と、オーディエンス構築やファネル分析に役立つマイクロコンバージョン(ページビュー、カートへの追加、動画再生)からなる、コンバージョンアクションの階層全体をカバーします。ビジネスモデルの要件に応じて、コンバージョン計測期間、ビュースルー設定、カウント方法(クリックごとに 1 回、またはすべて)を設定します。ファーストパーティデータ(メールアドレス、電話番号、住所)を使用する拡張コンバージョンを設定し、Cookie の廃止やプライバシー規制によって生じた測定の欠落を補います。
アトリビューションモデリングは重要な要素です。このスキルは、データドリブンアトリビューション(DDA)を評価して設定し、ラストクリックなどのモデルと比較することで、ファネル上部のキャンペーンがもたらす真の価値を広告主が理解できるよう支援します。オフラインでの販売サイクルがあるビジネス向けには、CRM 連携を通じたオフラインコンバージョンのインポートパイプラインを管理し、収益データが Google Ads に戻されて正確な ROAS を計算できるようにします。
使用する場面
- ユーザーが「コンバージョントラッキングの設定」または「コンバージョンの設定」について質問した場合
- ユーザーが「コンバージョンが記録されない」または「コンバージョンが不足している」と述べた場合
- ユーザーが「コンバージョントラッキングをデバッグ」または「トラッキングを確認」したい場合
- ユーザーが「拡張コンバージョン」または「ファーストパーティデータ」について質問した場合
- ユーザーが「オフラインコンバージョン」または「CRM インポート」に言及した場合
- ユーザーが「アトリビューションモデリング」または「データドリブンアトリビューション」について質問した場合
- ユーザーが「Google タグを設定」または「gtag を設定」したい場合
- ユーザーが「コンバージョン値ルール」または「コンバージョンアクション」に言及した場合
- ユーザーが「スマート自動入札が機能しないのはなぜか」と質問した場合(多くの場合、トラッキングに関連しています)
アーキテクチャ
flowchart TD
A[Conversion Strategy Definition] --> B[Conversion Action Setup]
B --> C[Primary Conversions\nPurchase, Lead, Sign-up]
B --> D[Secondary Conversions\nAdd-to-Cart, Page View]
C --> E[Google Tag Implementation]
D --> E
E --> F[Base Tag: gtag.js]
E --> G[Event Snippets]
E --> H[Google Tag Manager]
F --> I[Enhanced Conversions]
G --> I
I --> I1[Email Hashing]
I --> I2[Phone Hashing]
I --> I3[Address Matching]
J[CRM / Backend Data] --> K[Offline Conversion Import]
K --> K1[Click ID Matching: GCLID]
K --> K2[Enhanced Conversions for Leads]
K --> K3[Store Sales Import]
I1 --> L[Conversion Validation Engine]
I2 --> L
I3 --> L
K1 --> L
K2 --> L
K3 --> L
L --> M{Validation Status}
M -->|Healthy| N[Attribution Model Configuration]
M -->|Issues Detected| O[Debugging Pipeline]
O --> P[Tag Diagnostics]
O --> Q[Data Discrepancy Analysis]
O --> R[Cross-Platform Reconciliation]
N --> S[Data-Driven Attribution]
N --> T[Conversion Value Rules]
N --> U[Conversion Window Optimization]
実装
コンバージョントラッキングの検証およびデバッグのフレームワーク:
async function validateConversionTracking(customerId) {
const conversionActions = await getConversionActions(customerId);
const tagDiagnostics = await runTagDiagnostics(customerId);
const recentConversions = await getRecentConversions(customerId, 7);
const issues = [];
for (const action of conversionActions) {
if (action.status !== 'ENABLED') continue;
const validation = {
actionName: action.name,
category: action.category,
tagInstalled: tagDiagnostics[action.id]?.installed ?? false,
firingCorrectly: tagDiagnostics[action.id]?.recentFires > 0,
conversionCount7d: recentConversions[action.id]?.count ?? 0,
conversionLag: calculateConversionLag(recentConversions[action.id]),
duplicateRate: detectDuplicates(recentConversions[action.id]),
valueAccuracy: validateConversionValues(recentConversions[action.id])
};
if (!validation.tagInstalled) {
issues.push({ action: action.name, severity: 'critical', issue: 'Tag not detected on website' });
}
if (!validation.firingCorrectly) {
issues.push({ action: action.name, severity: 'critical', issue: 'Tag installed but not firing' });
}
if (validation.duplicateRate > 0.05) {
issues.push({ action: action.name, severity: 'high', issue: `${(validation.duplicateRate * 100).toFixed(1)}% duplicate conversion rate detected` });
}
}
return { conversionActions, issues, overallHealth: issues.length === 0 ? 'healthy' : 'needs_attention' };
}
拡張コンバージョンの設定:
function generateEnhancedConversionTag(config) {
const { conversionId, conversionLabel, dataSource } = config;
return `
<script async src="https://www.googletagmanager.com/gtag/js?id=${conversionId}"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '${conversionId}');
gtag('set', 'user_data', {
'email': hashUserEmail(),
'phone_number': hashUserPhone(),
'address': {
'first_name': document.getElementById('first_name')?.value,
'last_name': document.getElementById('last_name')?.value,
'street': document.getElementById('street')?.value,
'city': document.getElementById('city')?.value,
'region': document.getElementById('region')?.value,
'postal_code': document.getElementById('postal_code')?.value,
'country': document.getElementById('country')?.value
}
});
gtag('event', 'conversion', {
'send_to': '${conversionId}/${conversionLabel}',
'value': getTransactionValue(),
'currency': 'USD',
'transaction_id': getOrderId()
});
</script>`;
}
async function setupOfflineConversionImport(customerId, crmConfig) {
const { crmType, conversionActionName, uploadFrequency } = crmConfig;
const pipeline = {
source: crmType,
gclidCapture: {
method: 'hidden_form_field',
fieldName: 'gclid',
storageMethod: 'crm_custom_field',
expirationDays: 90
},
conversionMapping: {
crmStage: crmConfig.qualifiedStage,
googleAdsAction: conversionActionName,
valueField: crmConfig.dealValueField
},
uploadSchedule: {
frequency: uploadFrequency,
lookbackWindow: '30_days',
deduplication: 'gclid_plus_timestamp'
}
};
return pipeline;
}
アトリビューションモデルの設定:
function configureAttribution(customerId, config) {
const { preferredModel = 'DATA_DRIVEN' } = config;
return {
model: preferredModel,
requirements: {
dataDriven: {
minConversions30d: 300,
minClicks30d: 3000,
eligible: config.conversions30d >= 300 && config.clicks30d >= 3000
}
},
conversionValueRules: [
{ condition: 'audience_is_returning_customer', valueMultiplier: 1.5 },
{ condition: 'device_is_mobile', valueMultiplier: 0.8 },
{ condition: 'geo_is_tier1_market', valueMultiplier: 1.2 }
],
conversionWindows: {
clickThrough: config.salesCycleDays || 30,
viewThrough: Math.min(config.salesCycleDays || 30, 30),
engagedView: 3
}
};
}
Buddy™ Agent との連携
コンバージョントラッキングは、Buddy™ Agent プラットフォーム全体の測定基盤です。最適化スキルを有効にする前に、Buddy™ はコンバージョン検証パイプラインを実行し、データの整合性を確認します。トラッキングの問題が検出された場合、Buddy™ はユーザーに通知し、測定基盤が正常になるまで最適化に関する推奨を一時停止します。
Buddy™ はコンバージョンデータを継続的に監視し、コンバージョン数の急激な減少、コンバージョン率の予期しない変化、Google Ads とバックエンドシステム間の値の不一致、タグの発火失敗などの異常を検出します。こうした異常が発生すると、自動診断ワークフローが起動し、根本原因を特定して修正方法を提案します。
オフラインコンバージョンがあるアカウントでは、Buddy™ が自動インポートパイプラインを管理し、適切な GCLID マッチングを行いながら、CRM データが予定どおり Google Ads に戻されるようにします。プラットフォームはインポートの成功率を追跡し、マッチングの失敗を特定して、プラットフォーム間のコンバージョンデータを照合します。
ベストプラクティス
- Google Ads のデータとバックエンド/CRM の記録を比較し、コンバージョン トラッキングを毎月検証します
- 拡張コンバージョンを使用して、Cookie の制限によって失われたコンバージョンの 5~15%を回復します
- リード獲得ではコンバージョンのカウント方法を「1 回」に、e コマースでは「毎回」に設定します
- 実際の販売サイクルの長さに合わせてコンバージョン計測期間を設定します
- タグコードを変更せずに価値の高いセグメントを差別化するには、コンバージョン値ルールを使用します
- 可能な場合は、条件を満たすイベントから 24 時間以内にオフライン コンバージョンをインポートします
- クレジットを最も正確に割り当てるには、利用資格がある場合(コンバージョン数が月 300 件以上)、データドリブン アトリビューションを使用します
- 明確な階層を作成します。入札には主要なコンバージョンを使用し、観測のみには副次的なコンバージョンを使用します
- 一意のトランザクション ID を使ってコンバージョンを重複排除し、レポートの数値が膨らむのを防ぎます
- Google Ads のタグ診断ページを毎週確認し、タグの健全性ステータスを監視します
プラットフォームの互換性
| プラットフォーム | 対応 |
|---|---|
| Claude Code | ✅ |
| Cursor | ✅ |
| Codex | ✅ |
| Gemini | ✅ |
関連スキル
- Google Ads の監査 - コンバージョン トラッキングの検証は、監査の基礎となる項目です
- 予算の最適化 - 信頼できる予算配分には、正確なコンバージョンデータが不可欠です
- リマーケティング戦略 - コンバージョン イベントによって、コンバージョン後のオーディエンス セグメントが定義されます
- ナレッジベースの注入 - ドメインのパターンによって、コンバージョン トラッキング診断の自動化が可能になります
キーワード
コンバージョン トラッキング、google tag、gtag、拡張コンバージョン、オフライン コンバージョン、GCLID、コンバージョンのインポート、アトリビューション モデリング、データドリブン アトリビューション、コンバージョン値ルール、コンバージョン アクション、コンバージョンのデバッグ、コンバージョンの設定、google ads conversions、コンバージョンの検証
© 2026 googleadsagent.ai™ | Agent Skills™ | MIT License