mcpField
G
google-ads-keyword-cannibalization

google-ads-keyword-cannibalization

github.com/eliasmalmsandbergマーケティング・グロース14109 回インストール13 週間前に更新
リポジトリ

google-ads-keyword-cannibalization について

Google Ads のキーワード競合を監査し、キャンペーン横断の除外キーワードを計画するスキルです。検索語句の重複とコストを把握し、意図したキャンペーンへ振り分ける担当者を支援します。

主な機能

  1. 01重複キーワードとマッチタイプの重なりを検出
  2. 02キャンペーン間の検索語句の重複を確認
  3. 03月間の競合コストを推定
  4. 04除外キーワードで振り分けルールを作成
  5. 05優先順位付きの監査結果を作成

活用シーン

  1. 01キャンペーン間で競合する検索語句の監査
  2. 02内部競合による支出の推定
  3. 03検索語句を優先キャンペーンに割り当て

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/eliasmalmsandberg/google-ads-skills --skill google-ads-keyword-cannibalization

インストール後、Claude Code で/google-ads-keyword-cannibalizationを入力して読み込まれたか確認します。

詳細

Google Ads — キーワードのカニバリゼーション

Google Ads のカニバリゼーション専門家として、キャンペーン同士が競合しているすべてのケースを特定し、その内部競争による金銭的コストを算出して、関連するオークションごとに適切なキャンペーンが勝てるようルーティングシステムを導入します。

開始前

まず、製品マーケティングのコンテキストを確認してください。 .agents/product-marketing-context.md が存在する場合は、質問する前に読んでください。

以下のコンテキストを集めます。

1. アカウントの状況
  • 有効なキャンペーンはいくつありますか?そのうち検索キャンペーンはいくつですか?
  • アカウントは、構成計画なしにキャンペーンが追加されながら、自然に拡大してきましたか?
  • 最近追加されたキャンペーンによって、重複が生じている可能性はありますか?
  • スマート自動入札は有効ですか?(スマート自動入札はカニバリゼーションを部分的に緩和しますが、完全には解消しません)
2. 利用可能なデータ
  • すべてのキャンペーンのキーワードリストをエクスポートできますか?
  • 過去60~90日間の検索語句レポートは利用できますか?
  • キャンペーン単位の CPA または ROAS データはありますか?

キーワードのカニバリゼーションによる実際のコスト

同じ検索語句のオークションに自社のキャンペーンが2つ参加すると、自社同士で入札することになります。その結果、次のような影響が生じます。

影響仕組み
CPC の上昇2つ目のキャンペーンが、1つ目のキャンペーンのオークションの最低価格を引き上げます
コンバージョンデータの分散同じキーワードのパフォーマンスが2つ以上のキャンペーンに分散し、どのキャンペーンにも最適化に使える正確なデータが集まりません
スマート自動入札の混乱同じ検索語句から、アルゴリズムに矛盾するコンバージョンシグナルが送られます
予算の非効率な使用優先度の低い、CPA の高いキャンペーンが、優先したいキャンペーンではなく勝つ可能性があります

推定される影響: カニバリゼーションが顕著なアカウントでは、影響を受けるキーワードの CPC プレミアムの10~25%が内部競争に起因する可能性があります。


カニバリゼーションの4つのタイプ

タイプ1 — キャンペーン間での完全重複キーワード

同じキーワード、同じマッチタイプが、2つ以上のキャンペーンに存在します。

Campaign A: [project management software]
Campaign B: [project management software]
→ Google chooses which campaign serves — usually based on Ad Rank, not your preference
タイプ2 — マッチタイプの重複

あるキャンペーンのより広いマッチタイプが、別のキャンペーンの完全一致で対象にするはずだった検索語句を拾います。

Campaign A: [project management software] (exact)
Campaign B: project management (broad)
→ Campaign B's broad match can trigger for "project management software" queries
→ It may win the auction at a higher CPC with a lower CVR
タイプ3 — キャンペーンタイプ間での検索意図の重複

異なるキャンペーンが、実質的に同じユーザーの検索意図を対象にしています。

Non-brand Search: "CRM software"
PMax: serves "CRM software" queries via Search Themes
→ Both enter the same auctions; PMax often wins due to Google preference
タイプ4 — ブランドキーワードの非ブランドキャンペーンへの流入

ブランドキーワードの除外キーワードが追加されていないため、非ブランドキャンペーンでブランドキーワードがトリガーされます。

Non-brand campaign: broad match "project management"
→ Triggers for "[YourBrand] project management"
→ Brand campaign also serves this query → internal competition

カニバリゼーションの確認手順

ステップ1 — すべてのキャンペーンのキーワードをエクスポートする

Google Ads Editor または UI で:

  • キーワードリストをエクスポートします:キャンペーン、広告グループ、キーワード、マッチタイプ、ステータス
  • フィルタリングします:有効なキーワードのみ(一時停止中のキーワードは、実際のカニバリゼーションを引き起こしません)
ステップ2 — 完全一致の重複を見つける

スプレッドシートで:

  1. 列を作成します:=LOWER(TRIM(keyword)) で正規化します
  2. 結合キーを作成します:=keyword & "|" & match_type
  3. COUNTIF を使用して、同じキーワードとマッチタイプの組み合わせが複数のキャンペーンに重複している場合にフラグを付けます
Flag: Same keyword + same match type in 2+ campaigns

すぐに実行すること: 完全一致の重複があるすべての組み合わせについて、どのキャンペーンでそのキーワードを管理するか決めます。他のすべてのキャンペーンに、そのキーワードを完全一致の除外キーワードとして追加します。

ステップ3 — マッチタイプの重複を見つける

マッチタイプの重複は、手作業では見つけにくいものです。最も信頼できる方法は次のとおりです。

  1. 検索語句レポートを取得します(過去90日間)
  2. 「キャンペーン」をセグメントまたは列として追加します
  3. 複数のキャンペーンに表示されている検索語句でフィルタリングします
  4. 重複している語句ごとに、配信されたキャンペーンと CPC を記録します

確認する内容:「キャンペーン A の完全一致キーワードが対象にするはずだった検索語句を、キャンペーン B が配信していませんか?」

検索語句キャンペーン A(意図した配信先)キャンペーン B(実際の勝者)CPC の差
project management softwareブランド:CPA 8ドル非ブランドの部分一致:CPA 34ドル4倍
Step 4 — 意図レベルの重複を特定する

キャンペーンの目的を相互に確認します。

  • PMax キャンペーンの検索テーマは、非ブランド検索キャンペーンと重複していますか?
  • DSA キャンペーンは、既存のキーワードキャンペーンが対象としているページをターゲットにしていますか?
  • 類似したクエリをターゲットにするカテゴリキャンペーンと競合他社キャンペーンの両方がありますか?

各キャンペーンが想定するクエリの領域をマッピングします。2つのキャンペーンが同じ領域を対象としている場合、どちらかに除外キーワードを設定する必要があります。

Step 5 — カニバリゼーションのコストを計算する

特定した重複ペアごとに:

Monthly cannibalization cost = 
  (CPC in lower-priority campaign - CPC in higher-priority campaign) 
  × clicks intercepted by lower-priority campaign per month

キャンペーン B(広範囲、クリック単価 $4.20)が、キャンペーン A(完全一致、クリック単価 $2.80)から月間 300 クリックを奪っている場合:

Monthly waste = ($4.20 - $2.80) × 300 = $420/month
Annual: $5,040

これにより、修正の優先度を数値化できます。


カニバリゼーションの修正:クエリルーティングシステム

解決策は、キャンペーン間の除外キーワードによって適用する、明確なルーティング階層です。

ルーティング階層(具体的なものから抽象的なものへ)
1. Brand campaigns        → own all brand + brand modifier queries
2. Specific product/SKU   → own exact product queries  
3. Category + feature     → own specific intent queries
4. General non-brand      → own everything else
5. Broad/DSA              → catch-all for discovery only

各階層で、それより下位の階層を対象とする除外キーワードを追加する必要があります。

実装:キャンペーン間の除外キーワード

ブランドキャンペーン:

  • ブランド以外の一般語をすべてフレーズ一致の除外キーワードとして追加します
  • ブランドのクエリだけにブランドキャンペーンが配信されるようにします

非ブランドキャンペーン(具体的):

  • より広範囲のキャンペーンのキーワードを完全一致の除外キーワードとして追加します
  • 具体的なキャンペーンが対象のクエリを適切に獲得できるようにします

部分一致/DSA/PMax の一括対応キャンペーン:

  • 具体的なキャンペーンのキーワードをすべて完全一致の除外キーワードとして追加します
  • 具体的なキャンペーンが、対象のクエリで常に優先されるようにします
実践例
Account structure:
Campaign A (Non-brand core): [project management software], [team task manager]
Campaign B (Non-brand long-tail): broad match "project management"

Fix:
→ Add [project management software] and [team task manager] as exact negatives in Campaign B
→ Campaign A now owns those exact queries
→ Campaign B catches other project management variations it wasn't overlapping on
PMax と検索キャンペーンのカニバリゼーション

PMax は、アセットグループや検索テーマに関連するクエリを対象に、自動的に検索広告オークションに参加します。これが既存の検索キャンペーンと競合します。

Google の公式な優先ルール: 検索キャンペーンの完全一致キーワードが PMax と同じクエリに一致する場合、検索キャンペーンが優先されます。ただし、完全一致の場合に限ります。部分一致やフレーズ一致のキーワードは、引き続き PMax に負けることがあります。

修正方法:

  • 上位の非ブランドキーワードを完全一致で検索キャンペーンに追加します
  • これにより、該当するクエリでは検索キャンペーンが PMax より優先されます
  • PMax の「検索インサイト」を確認し、PMax が配信している検索カテゴリを把握します。検索キャンペーンと重複している場合は、検索テーマを追加して PMax のリーチを絞り込みます

カニバリゼーション監査の出力形式

調査結果を、優先順位を付けた修正テーブルとして提示します。

## Keyword Cannibalization Audit
Account: [Name] | Period: [Date range]

### Identified Overlap Pairs

| Priority | Keyword | Campaign A (preferred) | Campaign B (cannibalizing) | Est. monthly cost | Fix |
|----------|---------|----------------------|--------------------------|------------------|-----|
| 1 | [project mgmt software] | Non-brand: $28 CPA | Broad catch-all: $61 CPA | $840/mo | Add as exact negative in Campaign B |
| 2 | [crm for startups] | Category campaign | PMax | $320/mo | Add as exact keyword in Search |

### Total estimated cannibalization cost: $[X]/month

### Cross-campaign negative plan
[List of exact negatives to add per campaign]

継続的な予防策

カニバリゼーションは、成長中のアカウントで繰り返し発生する問題です。再発を防ぎます。

新しいキャンペーンを追加するとき
  • 配信開始前に、新しいキーワードを既存のすべてのキャンペーンのキーワードと照合します
  • すぐに除外キーワードを追加し、新しいキャンペーンが1日たりとも重複しないようにします
マッチタイプを拡張するとき
  • 既存のキャンペーンに部分一致を追加する場合、新しい部分一致キャンペーンに、他のキャンペーンの完全一致/フレーズ一致キーワードをすべて除外キーワードとして追加します
PMax を追加するとき
  • 既存の検索キャンペーンとの重複をすぐに監査します
  • 優先度を維持するため、コンバージョン数の多い検索キーワードをすべて検索キャンペーンに完全一致で追加します
毎月のメンテナンス確認
  • 検索語句レポートを取得し、キャンペーン別に分類します
  • 2つ以上のキャンペーンに表示されているクエリにフラグを付けます
  • 新たな完全一致の重複が追加されていないことを確認します

よくある間違い

スマート自動入札で解決できると考える スマート自動入札は入札単価を調整してカニバリゼーションを部分的に緩和しますが、2つのキャンペーンが同じオークションに参加するのを防ぐことはできません。自分の2つ目のキャンペーンが引き起こす、引き上げられたCPCの下限額を引き続き支払うことになります。

完全一致の重複だけを確認する 現在のアカウントで発生するカニバリゼーションの大半は、完全一致の重複ではなく、マッチタイプの重複です。完全一致キーワードの重複がゼロでも、部分一致の拡張によって深刻なカニバリゼーションが発生している場合があります。

PMaxを無視する PMaxは検索オークションへの参加に積極的です。検索キャンペーンで完全一致キーワードを意図的に網羅していないと、PMaxが、制御された検索キャンペーンで配信するつもりだった検索クエリを頻繁に獲得します。

広告グループレベルでのみ除外キーワードを追加する ある広告グループにキーワードを除外キーワードとして追加しても、キャンペーン全体で除外しなければ、同じキャンペーン内の他の広告グループでカニバリゼーションが発生する可能性があります。


関連スキル

  • google-ads-negative-keywords:除外キーワード戦略全般 — キャンペーン間の除外キーワードは、カニバリゼーションを解消する主な手段です
  • google-ads-search-term-mining:検索語句分析を通じて、各検索クエリで実際にどのキャンペーンが成果を上げているかを特定します
  • google-ads-bidding:カニバリゼーションが発生しているアカウントでのスマート自動入札の動作 — 競合するキャンペーンにアルゴリズムがどう対応するかを解説します
  • google-ads-segmentation:キャンペーンレベルのパフォーマンスの内訳から、競合するキャンペーン間のCPAの差を定量化できます

コメント