P-MAX キャンペーンのチャネル別実績を日別トレンドで分析する方法

管理画面で「見える」ようになった、でも「追えない」問題

2025年6月より、Google広告の管理画面に「チャンネルのパフォーマンス」機能が追加されました。これにより、P-MAX キャンペーンのチャネル別実績(検索 / ディスプレイ / YouTube / Gmail / Discover / Google マップ)を管理画面上で確認できるようになっています。

「ようやく中身が見えるようになった」と感じた運用者の方も多いのではないでしょうか。

ただ、実際に使ってみると、こんな課題が残ります。

  • 過去データを遡れない:確認できるのは2025年6月1日以降のデータのみで、それ以前の履歴は参照できません
  • 時系列で追えない:「先月と比べて YouTube の費用配分はどう変わったか」といったトレンド分析には向いていません
  • 毎回手動確認が必要:データが自動的に蓄積されないため、定点観測のたびに管理画面を開く必要があります
  • 複数アカウントをまとめて見られない:MCC アカウントで複数アカウントを管理している場合、アカウントを切り替えながら個別に確認する手間が残ります

つまり「今日の状態は見える」が「昨日との比較・先月との比較」を継続的に行うには、管理画面だけでは不十分なのが現状です。

このスクリプトではその課題を解決。チャネル別×日別のデータをスプレッドシートに自動蓄積し、時系列のトレンド分析を可能にします。

API v23で何が変わったか

Google Ads API のバージョン23(v23)から、P-MAX キャンペーンに対しても segments.ad_network_type でチャネル別のデータをプログラムから取得できるようになりました。

それ以前のバージョンでは、P-MAX キャンペーンのネットワーク種別は MIXED(クロスネットワーク)として返されるだけで、API を利用してもチャネルを分解して取得することができませんでした。

v23以降で取得できる主なチャネル分類は以下の通りです。

チャネル
SEARCHGoogle 検索
SEARCH_PARTNERS検索パートナー
CONTENTディスプレイネットワーク
YOUTUBEYouTube
DISCOVERDiscover フィード
GMAILGmail
MAPSGoogle マップ
MIXEDクロスネットワーク(旧来の値)

スクリプトはこの API v23を使い、日付×キャンペーン×チャネル×デバイスの組み合わせで毎日データをスプレッドシートに追記していきます。管理画面では「今日の断面」しか見えませんが、スクリプトを動かし続けることで初めて時系列の変化が追えるようになります。

スクリプトで取得できるデータのイメージ

スクリプトを実行すると、スプレッドシートに以下のような形でデータが蓄積されます。

DateCampaignCampaign IDImpressionsClicksCostConversionsConv. ValueDeviceNetwork Type
2025-07-01P-MAX123456789012,45032048,200896,000MOBILESEARCH
2025-07-01P-MAX12345678908,73018024,100336,000MOBILEYOUTUBE
2025-07-01P-MAX12345678905,2109211,500112,000DESKTOPCONTENT

同じ日・同じキャンペーンのデータがチャネルごとに別行で記録されます。

注意点として、クリック単価やコンバージョン率などの割合で表される指標は、ご自身で用意いただくスタイルになっています。これらの指標を入れることもできるのですが、スプレッドシートに1,000万セルが上限という制約があるため、出力されるデータ容量を減らしておきたいという理由で実装していません。

これが日々蓄積されることで、「YouTube への費用配分が先月から増えているのにコンバージョン率は下がっている」「検索チャネルのコンバージョン単価は安定しているが、ディスプレイは季節変動が大きい」といった時系列の洞察が得られるようになります

セットアップ手順

必要なもの

  • Google 広告のアカウント(MCC アカウントでも子アカウントでも可)
  • 書き込み先の Google スプレッドシート
  • Google 広告スクリプトの実行権限(標準以上のアクセス権限)
  • やる気

ステップ1:スプレッドシートを準備する

新しい Google スプレッドシートを作成し、URL をコピーしておきます。シートの作成はスクリプトが自動で行うため、空のスプレッドシートで問題ありません。

ステップ2:スクリプトをセットアップする

Google 広告の管理画面から「ツールと設定」→「一括操作」→「スクリプト」を開き、新しいスクリプトを作成します。Config.gsCode.gs の2ファイルを作成してコードを貼り付けます。Config.gs が設定ファイル、Code.gs がデータ取得・書き込みのメイン処理です。コードは以下の GitHub Gist から取得してください。

👉 P-MAX チャネル別レポート Google Ads Scripts — GitHub Gist

Code.gs は基本的に変更不要です。設定はすべて Config.gs で完結します。

ステップ3:Config.gs を設定する

設定はすべて Config.gs に集約されています。コードの知識がなくても、以下の項目を編集するだけで動作します。

CONFIG = {
  // ① 書き込み先スプレッドシートのURL
  'spreadsheet_url': 'https://docs.google.com/spreadsheets/d/YOUR_SPREADSHEET_ID/',

  // ② 再取得日数:直近この日数分は毎回APIから取り直す
  'refresh_window_days': 30,  // コンバージョンのアトリビューション期間に合わせて30を推奨

  // ③ 対象アカウントのCIDを入力(MCCから複数アカウントを一括処理する場合)
  //    子アカウントから直接実行する場合は空配列 [] にする
  'target_accounts': [
    '123-456-7890',
    '234-567-8901'
  ],

  // ④ 取得するキャンペーンタイプ(空配列 [] の場合は全タイプ取得)
  //    'SEARCH' / 'DISPLAY' / 'SHOPPING' / 'VIDEO' /
  //    'PERFORMANCE_MAX' / 'DEMAND_GEN' など
  'campaign_types': [],

  // ⑤ ソート設定(Date昇順 → Campaign昇順 → Network Type昇順 → Device昇順)
  'sort_config': [
    { column: 1,  ascending: true },  // Date
    { column: 2,  ascending: true },  // Campaign
    { column: 10, ascending: true },  // Network Type
    { column: 9,  ascending: true }   // Device
  ],

  // ⑥ 一時的な期間指定(通常運用時は null のまま)
  'date_override': null,
};

設定のポイントをもう少し詳しく説明します。

refresh_window_days(再取得日数)

Google 広告のコンバージョンの計測期間はデフォルトで30日です。そのため、直近30日間は毎回 API から取り直すことで、遅延計上されたコンバージョンも漏れなく補正されます。30日より古いデータはそのまま蓄積されます。

target_accounts(対象アカウント)

MCC アカウントから複数の広告アカウントを管理している場合、アカウント ID をここに列挙するだけで一括処理できます。スプレッドシートにはアカウント ID をシート名とした個別シートが自動作成されます。新しいアカウントを追加したい場合も、アカウント ID を1行追加して実行するだけでシートが自動的に増えます。

campaign_types(キャンペーンタイプの絞り込み)

デフォルトの [](空配列)では全キャンペーンタイプのデータを取得します。P-MAX キャンペーンとデマンドジェネレーションキャンペーンは構造が似ているため ['PERFORMANCE_MAX', 'DEMAND_GEN'] としてセットで管理するのもおすすめです。全タイプを取得しておくと、後から「P-MAX キャンペーンが検索キャンペーンの成果を食っていないか」といった比較分析もできるため、迷ったら [] のままにしておくのが無難です。

ステップ4:スケジュール実行を設定する

スクリプト画面の「トリガー」から、毎日決まった時間に自動実行するよう設定します。Google 広告のデータ確定タイミングを考慮すると、毎朝5〜7時頃に前日分を取得する設定がおすすめです。

よくある使い方のパターン

パターン1:通常運用(毎日自動実行)

date_override: null のままスケジュール実行します。毎日直近30日分が更新され、それ以前のデータが蓄積されていきます。

パターン2:過去データをまとめて取得したい

スクリプトを導入した直後など、過去の期間をまとめて取得したい場合は date_override を使います。2025年6月1日以降のデータであれば API から一括取得できます。なお、2025年6月1日より前の日付は API からもチャネル別には取得できず MIXED として返されます。

'date_override': { start: '2025-06-01', end: null }
// end を null にすると昨日までを自動設定

取得が完了したら 必ず null に戻してください。戻し忘れると毎回同じ期間を上書き取得し続けます。

パターン3:新しいアカウントを追加する

target_accounts 配列にアカウント IDを1行追加して実行するだけです。該当するアカウント IDのシートが存在しない場合は自動的に新規作成されます。

データの活用例

スプレッドシートにデータが蓄積されたら、以下のような分析・活用が可能になります。

Looker Studioとの連携

スプレッドシートをデータソースとして接続し、チャネル別・デバイス別のパフォーマンスを時系列グラフで可視化できます。管理画面の「チャンネルのパフォーマンス」では難しい「月次推移」「週次比較」がひと目でわかるダッシュボードを作れます。

スプレッドシートでのピボット分析

Network Type 列でフィルタ・ピボットをかけることで、チャネルごとのクリック率・コンバージョン率・ROASを期間比較で確認できます。「先月と今月で YouTube の費用対効果はどう変わったか」を数値で追えるようになります。

週次・月次レポートへの組み込み

蓄積データを参照する数式を別シートに組んでおけば、週次・月次のサマリーレポートが自動更新される仕組みも作れます。

注意事項

技術的な注意点

  • Google Ads Scriptsの実行時間制限は30分です。管理アカウント数やデータ量が多い場合は refresh_window_days を小さくする(例:7)か、アカウントを分割して実行してください
  • segments.ad_network_type でチャネル別データが取得できるのは API v23以降かつ2025年6月1日以降のデータです。それ以前の日付は MIXED として返されます
  • campaign_typesVIDEO(動画キャンペーン)や MULTI_CHANNEL(アプリキャンペーン)を含める場合、チャネル分解の粒度が他のタイプと異なることがあります
  • P-MAX以外のキャンペーンも含めて全取得している場合、検索キャンペーンの Network TypeSEARCHSEARCH_PARTNERS として記録されます

免責事項

  • 本記事で紹介するスクリプトおよび情報は、執筆時点(2026年2月)の Google Ads API v23 の仕様に基づいています。Google の仕様変更・API バージョンのアップデートにより、動作が変わる場合があります。最新の情報は Google Ads API 公式ドキュメントをご確認ください
  • 本スクリプトの実行によって生じた広告費の損失・データの破損・その他いかなる損害についても、当社は一切の責任を負いません。本番環境での使用前に必ずテスト環境で動作確認を行ってください
  • 本ツールは非公式のサードパーティ製スクリプトです。Google LLC およびその関連会社とは一切関係がありません
  • 本スクリプトの導入により、特定の広告効果や成果を保証するものではありません

まとめ

管理画面(チャンネルのパフォーマンス)本スクリプト(API v23)
チャネル別データの確認◯ 確認可能(2025年6月以降分)◯ 取得可能(2025年6月以降分)
2025年6月以前のデータ× 遡れない× API でも MIXED のみ(チャネル別不可)
日別の時系列蓄積× 自動蓄積されない◯ 毎日自動追記が可能
複数アカウントの一括取得△ 手動切り替え◯ MCC アカウント対応
トレンド・期間比較分析△ 手動で都度確認◯ 蓄積データで分析可能
キャンペーンタイプの絞り込み× 不可(P-MAX キャンペーンのみ)◯ P-MAX キャンペーン以外も campaign_types で指定可能

管理画面のチャンネルのパフォーマンスは「特定の日」や「特定の期間」の断面を見るには十分な機能です。

しかし、P-MAX キャンペーンの分析に必要なのは変化の傾向です。チャネルごとのコストが増えているのか減っているのか、コンバージョン率が改善しているのか悪化しているのか。それを継続的に追うためには、データを蓄積し続ける仕組みが欠かせません。

コードの知識がなくても Config.gs の設定項目を調整するだけで動かせるように設計しています。まず導入してデータを貯め始めることが、P-MAX キャンペーン分析の第一歩になってくれるはずです。