コピペでOK! スクリプトで広告レポートを自動作成

P-MAXのアセット実績、把握できてる? Google 広告 スクリプトでアセット別実績レポートを自動作成

Google 広告スクリプトを使用して、P-MAXキャンペーンのアセット別実績をGoogleスプレッドシート上に自動で取得する方法を紹介します。取得したデータをもとに、テキスト・画像・動画ごとのパフォーマンスを分析できるレポートの作り方もあわせて解説します。

星野理人(アタラ株式会社)

7:05

「P-MAXのアセット別実績を分析したいけど、管理画面だとなかなか難しい…」と感じたことはありませんか? Google 広告のP-MAXキャンペーンでは、テキスト(広告見出し・説明文)、画像、動画といった複数のアセットを設定し、Googleの機械学習によって最適な組み合わせで広告が生成され、自動で配信されます。

しかし、管理画面上でアセットごとの実績を確認する場合、アセットグループごとにアセットの実績を確認したり、アセットの実績を横断して確認したりはできますが、表示形式の問題で分析が煩雑になるケースがあります。

そこで今回は、Google 広告スクリプトを使ってP-MAXのアセット別実績をスプレッドシートに自動で取得し、テキスト・画像・動画それぞれのパフォーマンスを一覧で確認できるレポートを作成する方法を解説します。
Google 広告スクリプトの活用を通じてレポート作成を効率的に行っていきましょう!

広告スクリプトで超時短! アセット実績を自動で取得&レポート化

今回紹介するGoogle 広告スクリプトを用いることで、P-MAXキャンペーンのアセット実績を自動でスプレッドシートに出力し、レポートとして活用できるようになります。

テキスト・画像・動画それぞれのパフォーマンスを一覧で確認できるレポートを作成

今回作成するレポートは、以下の5つのシートで構成されます。

  • raw:レポート作成の基となるrawデータ
  • ALL:すべてのアセットタイプの実績一覧
  • TEXT:広告見出し・説明文などテキストアセットの実績一覧
  • IMAGE:画像アセットの実績一覧
  • YOUTUBE_VIDEO:動画アセットの実績一覧

「ALL」シートではアセットタイプでフィルタをかけられます。

レポート作成のために用意するもの

まずは、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);  
}
上記サンプルコードの「('スプレッドシートのID')」に該当するGoogle スプレッドシートのIDに書き換える

レポート作成手順とカスタマイズ方法

レポート作成手順については本連載の第一回「Google広告レポートを自動化しよう! スクリプトを使って業務効率UP」の手順に沿ってください。

ここでは、今回のレポートのカスタマイズ方法をお伝えします。

スクリプトには何が書いてあったの? サンプルコードの解説

今回の記事で使ったサンプルコードには何が書いてあったのか、分解して解説します。このサンプルコードでは、以下の3つの処理を行っています。

  1. 出力先のスプレッドシートを指定
  2. 指定した条件を基にレポートを取得
  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_idYouTube動画ID動画アセットの場合のみ値が入る
asset.youtube_video_asset.youtube_video_titleYouTube動画タイトル動画アセットの場合のみ値が入る
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_value

FROM句

今回のスクリプトでは「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キャンペーンのアセット管理を効率化していきましょう。

この記事をシェアしてほしいパン!

人気記事トップ10

人気記事ランキングをもっと見る