Google広告スクリプトで予算超過を自動検知する方法

広告運用で最も避けたいのは、月の半ばで日予算の消化ペースが崩れる事態だ。気づいた時には月予算を大きく超えている、という失敗はよくある。とはいえ毎朝すべてのキャンペーンの残予算を手で見るのは続かない。Google広告スクリプトを使えば、消化異常を検知して自動でメール通知できる。しかも管理画面の中だけで完結し、開発者トークンもサーバーもいらない。この記事では、コピペで動く監視の骨格と、実運用でつまずいた罠までまとめる。

なぜAPIでなくGoogle広告スクリプトなのか

Google広告の自動化には二つの道がある。一つはGoogle広告APIをPythonなどの外部プログラムから叩く方法だ。もう一つが、管理画面の中でJavaScriptを動かすGoogle広告スクリプトである。前者は開発者トークンの申請やOAuth認証が要る。後者は申請なしで、アカウントにログインできれば今日から書ける。

監視や通知のような軽い自動化なら、後者の手軽さが効く。逆に、3媒体の横断集計や重い処理はAPI側が向く。用途で使い分けるのが正解だ。より本格的にPythonから制御したい場合はGoogle広告APIをPythonで動かす手順を参照してほしい。日予算そのものの計算ロジックは日予算を自動計算するPython実装で扱った。

予算超過が起きる仕組みと監視の軸

Google広告の日予算は、1日の消化が設定額の最大2倍まで振れることがある。これは公式仕様で、月間ではならされる。だが月途中の日予算変更や急な配信増があると、体感としての超過は普通に起きる。だから「月予算に対して今どのくらいのペースか」を日次で見る必要がある。

監視の軸はシンプルだ。残予算を残日数で割った理想ペースと、実際の消化を比べる。実消化はGAQLという問い合わせ言語でcost_microsという項目を取る。この値は円ではなくマイクロ単位なので、100万で割って円に直す。例えばcost_microsが96810000なら、実消化は96.81ドル相当になる。桁を意識するだけで、通知の精度は大きく変わる。この監視の考え方の完全版はnoteの実践ガイドにまとめている。

コピペで使える監視スクリプトの骨格

ブックマークして、自分のアカウントに合わせて閾値やメールアドレスを書き換えて使ってほしい。全体は次の4ステップで組む。

  • (1)当月の実消化を取る。GAQLで SELECT campaign.name, metrics.cost_micros FROM campaign WHERE segments.date DURING THIS_MONTH AND campaign.status = 'ENABLED' を投げる。
  • (2)取得は AdsApp.search(クエリ) を使う。返ってきた行をループし、cost_microsを合計して100万で割り、当月の実消化額を出す。
  • (3)理想ペースを出す。月予算を月の日数で割った1日あたり額に、今日の日付を掛ける。これが本来あるべき累計消化だ。
  • (4)実消化が理想ペースの110%を超えたら、MailApp.sendEmail(宛先, 件名, 本文) で1通だけ通知する。閾値110%は運用に合わせて調整する。

この骨格に、キャンペーン単位のループや前日比を足していけば、監視は好きなだけ細かくできる。まずは口座全体の月次ペースだけを見る最小構成から始めるのが挫折しにくい。

実装でつまずいた3つの罠

実際に組んで引っかかった点を共有する。どれもドキュメントを読めば防げるが、最初は必ずやる。

  • cost_microsの桁:100万で割り忘れると、消化額が実際の100万倍になり、閾値が常に発火する。円換算は最初に必ず入れる。
  • タイムゾーン:スクリプトの日付はアカウントのタイムゾーン基準で動く。THIS_MONTHの区切りもそれに従う。日本の口座で海外タイムゾーン設定だと、月初の判定が1日ずれる。
  • メール送信の上限:MailAppには1日の送信数に上限がある。キャンペーンごとに1通送る作りにすると、口座が大きいほど上限に当たる。通知は必ず1回のループで文面を組み立て、最後に1通へ集約する。

加えて、スクリプトは書いただけでは動かない。管理画面のスケジュール設定で実行頻度を指定して初めて自動化になる。1時間ごとか1日1回が現実的だ。効果は地味だが確実で、毎朝の目視確認をやめて閾値超過時だけ1通届く形にしたところ、月途中の超過の見落としがゼロになった。手を動かす時間ではなく、異常が起きた時だけ意識を割く運用に変わる。

取得した消化データを社内共有用の資料に落とし込むなら、以下のツールを組み合わせると早い。

AIスライド作成ツール「イルシル」を試してみる

まとめ

Google広告スクリプトは、開発者トークンもサーバーもなしに、予算監視という一番効く自動化を今日から始められる。まずは当月の実消化と理想ペースを比べ、110%超過で1通だけメールを飛ばす最小構成を置く。cost_microsの桁とタイムゾーンとメール上限、この3つさえ外さなければ数十分で動く。手動確認をやめ、異常時だけ気づける状態を作ることが、超過を防ぐ最短の一歩だ。

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

本記事の監視スクリプトの完全版(キャンペーン単位の判定・前日比・実際のコードとつまずき対処つき)は、運営者のnote(note.com/ryo_ai_hack)で公開している。実データに基づく広告自動化の実践ガイドをまとめて読める。

DMM 生成AI CAMP

コメント

このブログの人気の投稿

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

Difyの使い方|初心者でも10分で作れるAIアプリ入門

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