広告の日予算を自動計算するPython実装【保存版】

広告の月予算を月末に余らせたり、逆に月中で使い切って配信が止まったりする。運用者なら誰もが踏む失敗だ。原因の多くは「日予算を月初に決めて放置する」ことにある。解決策はシンプルで、毎日「残予算÷残日数」で日予算を引き直せばよい。この計算をPythonで自動化すれば、手作業のスプレッドシート更新から解放される。この記事では、3媒体の運用で実際に固めた計算ルールと、そのまま使えるPython実装をまとめる。

なぜ日予算は「残予算÷残日数」で毎日引き直すのか

Google広告の日予算は固定値ではない。公式ドキュメントによれば、1日の消化は日予算の最大2倍まで振れ、月間では日予算のおよそ30.4倍まで使われる。つまり日予算¥3,000でも、ある日は¥6,000消化することがある。詳細はGoogleの予算オーバービュー(developers.google.com/google-ads/api/docs/campaigns/budgets/overview)に書かれている。

この振れ幅がある以上、月初に決めた日予算のまま放置すると、月末には数千円〜数万円のズレになる。だから毎日、その日時点の「残り予算」を「残り日数」で割り直す。こうすれば日々の消化ブレを翌日以降で吸収でき、月末の着地が月予算にほぼ一致する。

さらにGoogleは2026年8月17日から、予算制限キャンペーンのペーシングをより安定させる変更を告知している。挙動が変わる時期こそ、手計算ではなく自動計算でズレを毎日リセットする価値が上がる。同じくPython×広告APIの実装はYahoo広告APIをPythonで自動化して詰まった罠の記事もあわせて読むと、認証まわりの落とし穴を先回りできる。

実運用で固めた日予算の計算ルール4つ

「残予算÷残日数」は骨格にすぎない。3媒体を横断で回すうちに、そのままでは事故る点が見えてきた。ブックマークして、自分の環境に合わせて書き換えて使ってほしい。運用で確定させたルールは次の4つだ。

  • ¥100単位で切り捨てる: ¥3,472のような端数はUIでも扱いにくい。int計算で¥100の位まで落とす。切り上げにしないのは超過側に倒さないため。
  • 月予算の100%を超える増額はしない: 残日数が少ない月末は「残予算÷残日数」が跳ね上がる。当月の想定消化が月予算を超える設定は入れない。上限で頭を打たせる。
  • 残日数は「今日を含めて」数える: 7月6日で月末が7月31日なら、残日数は26日ではなく26日(今日含む)。ここを1日ずらすと毎日じわじわ超過する。
  • 安全係数0.95を掛ける: 日予算の2倍消化の日を想定し、残予算に0.95を掛けてから割る。月末の突き抜けを防ぐ緩衝材だ。

この4つを外すと、自動化したのに月末で予算を超えるという本末転倒が起きる。実際、最初の実装では残日数を「今日含まず」で数えており、月末3日で¥1,800超過した。ルール3はその失敗から足した。

コピペで使えるPython実装の骨格

計算の核は1行で書ける。ブックマークして自分の月予算・消化額の取得部分だけ差し替えてほしい。式はこうだ。

day_budget = int((month_budget - spent) * 0.95 / remaining_days // 100 * 100)

変数の意味は、month_budget=当月の月予算、spent=月初から前日までの実消化、remaining_days=今日を含む残日数。`// 100 * 100`で¥100単位に切り捨てている。あとは各媒体のAPIからspentを取り、上限ガードを1行足すだけだ。

上限ガードは、(1)想定消化=day_budget×remaining_days+spentを計算し、(2)それがmonth_budgetを超えるならday_budgetを(month_budget−spent)÷remaining_daysに戻す、という2段で書く。これでルール2が効く。取得元がGoogle・Meta・Yahooのどれでも、この計算部分は共通で使い回せる。手順の完全版はnoteの実践ガイドにまとめている。

自動化でつまずいた点と対処

実装より運用でハマる。特に効いた3つの対処を残す。

  • tCPA併用時は増減幅を絞る: 自動入札のtCPAを使っている媒体では、日予算を1日で大きく動かすと学習が揺れる。前日比±20%のクランプを掛け、急変を避ける。
  • 変更後は必ずAPIで実値を再取得する: 「設定したはず」で終わらせない。更新レスポンスの200だけでなく、日予算フィールドを読み直して意図値と一致するか照合する。反映漏れはここでしか気づけない。
  • 実消化の取得タイミングをそろえる: spentを取る時刻が日によってバラつくと計算がブレる。毎朝同じ時刻に前日確定値を取るようcronで固定した。

この3つを踏むと、自動化が「勝手に事故る仕組み」から「毎日勝手に整う仕組み」に変わる。運用者の手離れが一気に進む。

算出した日予算やペーシングの実績を、クライアント向けに整った資料へ落とすなら、AIスライド作成ツールも使える:

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

まとめ

日予算の自動計算は「残予算÷残日数」を骨格に、¥100切り捨て・100%超過ガード・残日数は今日含む・安全係数0.95の4ルールで実務に耐える。式そのものは1行だ。まずは今の1媒体で、前日消化を取って計算する部分から組んでみてほしい。月末の予算ズレが消える効果は初月で体感できる。

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

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

DMM 生成AI CAMP

コメント

このブログの人気の投稿

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

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

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