「P-MAXのアセット別実績を分析したいけど、管理画面だとなかなか難しい…」と感じたことはありませんか? Google 広告のP-MAXキャンペーンでは、テキスト(広告見出し・説明文)、画像、動画といった複数のアセットを設定し、Googleの機械学習によって最適な組み合わせで広告が生成され、自動で配信されます。
しかし、管理画面上でアセットごとの実績を確認する場合、アセットグループごとにアセットの実績を確認したり、アセットの実績を横断して確認したりはできますが、表示形式の問題で分析が煩雑になるケースがあります。
そこで今回は、Google 広告スクリプトを使ってP-MAXのアセット別実績をスプレッドシートに自動で取得し、テキスト・画像・動画それぞれのパフォーマンスを一覧で確認できるレポートを作成する方法を解説します。
Google 広告スクリプトの活用を通じてレポート作成を効率的に行っていきましょう!
広告スクリプトで超時短! アセット実績を自動で取得&レポート化
今回紹介するGoogle 広告スクリプトを用いることで、P-MAXキャンペーンのアセット実績を自動でスプレッドシートに出力し、レポートとして活用できるようになります。
今回作成するレポートは、以下の5つのシートで構成されます。
- raw:レポート作成の基となるrawデータ
- ALL:すべてのアセットタイプの実績一覧
- TEXT:広告見出し・説明文などテキストアセットの実績一覧
- IMAGE:画像アセットの実績一覧
- YOUTUBE_VIDEO:動画アセットの実績一覧
「ALL」シートではアセットタイプでフィルタをかけられます。
レポート作成のために用意するもの
まずは、Google スプレッドシートとGoogle 広告スクリプトのコードを準備します。
- Google スプレッドシート(お試し用)
スプレッドシートの準備ができたら、以下のサンプルコードをコピーします。このとき、()内の「スプレッドシートのID」を複製したスプレッドシートのIDに書き換えてください。
- Google 広告スクリプトのサンプルコード
function main () {
var spreadsheet = SpreadsheetApp.openById('スプレッドシートのID');
var sheet = spreadsheet.getSheetByName('raw');
var report = AdsApp.report(
"SELECT campaign.id, campaign.name, asset_group.id, asset_group.name, asset.id, asset.type, asset_group_asset.field_type, asset_group_asset.status, asset.text_asset.text, asset.image_asset.full_size.url, asset.youtube_video_asset.youtube_video_id, asset.youtube_video_asset.youtube_video_title, metrics.impressions, metrics.video_trueview_views, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.conversions_value FROM asset_group_asset WHERE segments.date DURING LAST_7_DAYS"
);
report.exportToSheet(sheet);
}
レポート作成手順とカスタマイズ方法
ここでは、今回のレポートのカスタマイズ方法をお伝えします。
スクリプトには何が書いてあったの? サンプルコードの解説
今回の記事で使ったサンプルコードには何が書いてあったのか、分解して解説します。このサンプルコードでは、以下の3つの処理を行っています。
- 出力先のスプレッドシートを指定
- 指定した条件を基にレポートを取得
- レポートをスプレッドシートに出力
「②指定した条件を基にレポートを取得」では、以下のような条件を使います。
- SELECT文:取得する項目や指標を指定
- FROM句:参照するテーブルを指定(今回はasset_group_asset)
- WHERE句:取得するデータをフィルタリングする
SELECT文やWHERE句を書き換えることで、取得条件を柔軟に変更することができます。
SELECT文
SELECT文では取得する項目や指標を選択します。今回のスクリプトで取得している項目は以下の通りです。
項目 | 意味 | 備考 |
| campaign.id | キャンペーンID | |
| campaign.name | キャンペーン名 | |
| asset_group.id | アセットグループID | |
| asset_group.name | アセットグループ名 | |
| asset.id | アセットID | |
asset.type | アセットタイプ | TEXT, IMAGE, YOUTUBE_VIDEO, など、アセットの種類を取得 |
| asset_group_asset.field_type | フィールドタイプ | HEADLINE, LONG_HEADLINE, DESCRIPTION, MARKETING_IMAGEなど、アセットタイプにおけるアセットの詳細を取得 |
| asset_group_asset.status | ステータス | |
| asset.text_asset.text | テキストアセットの内容 | テキストアセットの場合のみ値が入る |
| asset.image_asset.full_size.url | 画像アセットのURL | 画像アセットの場合のみ値が入る |
| asset.youtube_video_asset.youtube_video_id | YouTube動画ID | 動画アセットの場合のみ値が入る |
| asset.youtube_video_asset.youtube_video_title | YouTube動画タイトル | 動画アセットの場合のみ値が入る |
| metrics.impressions | 表示回数 | |
| metrics.video_trueview_views | 視聴回数 | TrueViewの視聴回数 |
| metrics.clicks | クリック数 | |
| metrics.cost_micros | 費用 | 管理画面と同じ表記にするためには1,000,000で除する必要有 |
| metrics.conversions | コンバージョン数 | |
| metrics.conversions_value | コンバージョン値 |
費用を取得するための指標である「metrics.cost_micros」には「micros」が含まれます。「micros」を含む場合、管理画面上で表示される値に0が6つ加わって出力されます。費用が12,345円の場合は12345000000と出力されますので、1,000,000で除する必要があります。今回のレポートでは、スプレッドシートの数式で自動的に変換しています。
管理画面では実現が難しい日別での取得もSELECT文を編集することで実現できます。日別実績を取得する場合は、以下のように「segments.date」を追加してください。
SELECT segments.date, campaign.id, campaign.name, asset_group.id, asset_group.name, asset.id, asset.type, asset_group_asset.field_type, asset_group_asset.status, asset.text_asset.text, asset.image_asset.full_size.url, asset.youtube_video_asset.youtube_video_id, asset.youtube_video_asset.youtube_video_title, metrics.impressions, metrics.video_trueview_views, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.conversions_valueFROM句
今回のスクリプトでは「asset_group_asset」を参照しています。これはP-MAXキャンペーンのアセットグループに紐づくアセットの情報を取得するためのリソースです。キャンペーンレポートで使用するcampaignとは異なり、P-MAXのアセット単位の実績を取得するためのテーブルです。
WHERE句
WHERE句では、取得するデータをフィルタリングすることができます。今回は「segments.date DURING LAST_7_DAYS」 と記述していますので、過去7日間の数値を取得しています。
「LAST_7_DAYS」の部分は、Google 広告APIが定義している以下の期間に変更することが可能です。
項目 | 意味 | 備考 |
| THIS_MONTH | 今月 | |
| TODAY | 今日 | |
| YESTERDAY | 昨日 | |
| LAST_7_DAYS | 過去7日 | サンプルコードで使用 |
| LAST_BUSINESS_WEEK | 先週の月曜日~金曜日 | |
| LAST_MONTH | 昨月 | |
| LAST_14_DAYS | 過去14日 | |
| LAST_30_DAYS | 過去30日 |
他にも、対象期間の開始日・終了日を指定することも可能です。2026年1月1日から昨日までの実績を取得する場合は、以下のように記述します。
function main () {
var today_g = new Date();
var yesterday_g = today_g;
yesterday_g.setDate(today_g.getDate()-1);
var yesterday = Utilities.formatDate(yesterday_g, 'Asia/Tokyo', 'yyyy-MM-dd');
var spreadsheet = SpreadsheetApp.openById('スプレッドシートのID');
var sheet = spreadsheet.getSheetByName('raw');
var report = AdsApp.report(
"SELECT segments.date, campaign.id, campaign.name, asset_group.id, asset_group.name, asset.id, asset.type, asset_group_asset.field_type, asset_group_asset.status, asset.text_asset.text, asset.image_asset.full_size.url, asset.youtube_video_asset.youtube_video_id, asset.youtube_video_asset.youtube_video_title, metrics.impressions, metrics.video_trueview_views, metrics.clicks, metrics.cost_micros, metrics.conversions, metrics.conversions_value FROM asset_group_asset WHERE segments.date BETWEEN '2026-01-01' AND '" + yesterday + "' ORDER BY segments.date ASC"
);
report.exportToSheet(sheet);
}また、日別実績を取得する際にデータ量の圧縮のため、以下のように特定のアセットタイプに絞ることも有効です。
WHERE segments.date DURING LAST_7_DAYS AND asset.type = 'TEXT'まとめ
P-MAXキャンペーンは、Googleの機械学習による自動最適化が大きな特長です。だからこそ改善における大きな変数となるアセットの内容やバリエーションがキャンペーン全体のパフォーマンスに直結します。今回紹介したGoogle 広告スクリプトとスプレッドシートを組み合わせたレポートを活用することで、アセットごとのパフォーマンスを分析しやすい形で出力し、データに基づいたアセットの改善を行うことができるようになります。
Google 広告スクリプトを活用して、P-MAXキャンペーンのアセット管理を効率化していきましょう。
