RSAアセットの成果をPythonで取得する手順

レスポンシブ検索広告(RSA)を回していても、どの見出しが効いていて、どれが足を引っ張っているかは管理画面では見えにくい。アセットごとの評価は「良」「最良」といったラベルで出るが、複数広告グループを横断して弱いアセットだけ抜き出す作業は手作業だと重い。この記事では、Google広告APIとPythonでRSAの見出し・説明文の成果ラベルを一括取得し、低評価アセットを特定して差し替えるところまでを、そのまま使えるクエリ付きで解説する。対象はGoogle広告を運用する担当者と、レポート作業を自動化したいインハウスのマーケ担当だ。

RSAアセットの成果はどこに入っているか

RSAの見出しと説明文の成果は、Google広告APIの ad_group_ad_asset_view というリソースに入っている。これは広告(AdGroupAd)とアセット(Asset)のひも付きを表すビューで、レスポンシブ検索広告・アプリ広告・デマンドジェネレーションに対応する。ここから performance_label(成果ラベル)を取れば、アセット単位で「効いている・いない」が機械的に判定できる。

performance_label が返す値は6種類。BEST(最良)、GOOD(良)、LOW(低)、LEARNING(学習中)、PENDING(保留)、UNKNOWN(不明)である。運用で見るべきはこのうち LOW だ。LOW のアセットは差し替え候補になる。field_type には HEADLINE(見出し)と DESCRIPTION(説明文)が入り、どちらの枠のアセットかを区別できる。詳細は公式のアセットレポートのドキュメント(developers.google.com/google-ads/api/performance-max/asset-reporting)にまとまっている。

取得クエリ(GAQL)をそのまま使う

APIへの問い合わせは GAQL という専用のクエリ言語で書く。以下が低評価アセット抽出の骨格になるクエリだ。ブックマークして、自分のアカウントのIDと期間に書き換えて使ってほしい。

SELECT ad_group.name, ad_group_ad_asset_view.field_type, ad_group_ad_asset_view.performance_label, asset.text_asset.text, metrics.impressions, metrics.clicks, metrics.cost_micros, metrics.conversions FROM ad_group_ad_asset_view WHERE segments.date DURING LAST_30_DAYS AND ad_group_ad_asset_view.field_type IN ('HEADLINE','DESCRIPTION') ORDER BY metrics.cost_micros DESC

ポイントは3つ。(1)asset.text_asset.text で見出し・説明文の実テキストが取れるので、どの文言が LOW かが一目で分かる。(2)metrics.cost_micros はマイクロ単位なので、円に直すには100万で割る。(3)field_type を IN で絞ると、画像やロゴなど関係ないアセットが混ざらない。GoogleAdsService の search_stream にこのクエリを渡し、行を回して performance_label が 'LOW' の行だけ CSV に書き出せば、差し替えリストが完成する。APIの初期設定でつまずく点は、Google広告APIをPythonで動かす手順と初回の壁にまとめてある。

実運用でつまずいた3つの落とし穴

実際に複数アカウントで回して分かった注意点を挙げる。数字の裏取りより先に、この3点を踏まないことが精度に直結する。

  • 新規アセットは数日 PENDING/LEARNING のまま。表示回数が一定たまるまで成果ラベルが確定しない。追加した翌日に LOW と出なくても壊れてはいない。判断は最低でも2週間、表示回数が数千を超えてからにする。
  • text_asset.text が空で返る行がある。ピン留め位置の情報や画像アセットが混ざると空になる。空テキストの行は集計から外す前処理を必ず入れる。
  • LOW を消すだけでは枠が痩せる。RSAは見出し15本・説明文4本まで登録できる。LOW を削除する前に代替アセットを用意し、常に見出し10本以上を保つ。少なすぎると自動組み合わせの幅が狭まり、かえって成果が落ちる。

この手順の完全版(差し替え判定ロジックと入稿APIの連携込み)はnoteの実践ガイドにまとめている。

抽出から差し替えまでの運用フロー

取得を自動化したら、運用は次の流れで回す。(1)週1回このクエリを実行し LOW アセットを CSV 出力する。(2)LOW の見出しをテーマ別に分類し、勝っている GOOD/BEST の文言傾向を参考に新規案を作る。(3)差し替えは一気にやらず、1広告グループあたり2〜3本ずつにする。学習をリセットしないための配慮だ。(4)差し替え後2週間は performance_label を触らず、次回の抽出で結果を確認する。

この一連を launchd や cron で週次実行にすれば、弱いアセットの棚卸しが無人で回る。取得した成果データを提案資料や定例レポートに落とし込むなら、図解を自動生成できるAIツールを挟むと作業が速い。

[PR] 本記事で作った成果データをクライアント向けスライドにまとめるなら、以下のツールが使える: AIスライド作成ツール「イルシル」を試してみる

まとめ

RSAのアセット改善は、感覚ではなく performance_label という機械的な指標で回せる。ad_group_ad_asset_view から LOW アセットを抽出し、代替を用意してから2〜3本ずつ差し替える。この地味な棚卸しを週次で自動化するだけで、広告文の当たり本数は着実に増える。まずは上のGAQLを自分のアカウントで一度流し、LOW が何本あるか数えるところから始めてほしい。

実務でそのまま使いたい人へ

本記事の手法の完全版(実際のコード・テンプレート・つまずき対処つき)は、運営者のnote(note.com/ryo_ai_hack)で公開している。実データに基づく実践ガイドをまとめて読める。

DMM 生成AI CAMP

コメント

このブログの人気の投稿

Claude Skills販売で月5万稼ぐ3ステップ実践

Claude CodeでExcel自動化副業を月5万にする手順

Yahoo広告APIをPythonで自動化して詰まった5つの罠