• Google広告
  • システム・ツール
  • フリーランス
  • 企業担当者

Google広告スクリプトのスプレッドシート書き込みタイムアウト対策

Google広告スクリプトとスプレッドシートを見直すデスク風景

Google広告スクリプトとは、Google広告の管理画面の中で、集計や操作を自動で実行するプログラムです。私は、このスクリプトで広告のデータをスプレッドシートに書き出し、毎朝自動で取り込む運用をしています。

あるとき、書き出すタブ(シートの中の1枚ごとの表)を12から19に増やしたところ、後ろのタブだけが空のままになりました。この記事で紹介するのは、そのときのタイムアウト(時間切れ)の原因の見立てと、実際に入れた2つの対策です。

症状:後ろのタブが空になり、スクリプトの実行はシステムエラーになった

19タブ中、空のままだったのは後ろの4タブです。

・コンバージョンアクション(成果として数える行動の設定)

・最終URL(広告をクリックした先のページ)

・除外キーワード(広告を出さないように設定する検索語句)

・オーディエンス(広告を届ける相手の条件)

スクリプトの定期実行は、毎回"システムエラー"の扱いでした。ログは、スクリプトの動作の記録です。ログに残っていたのは、"Service Spreadsheets timed out" というエラーでした。スプレッドシートへの書き込みが、タイムアウトになっていたことを示しています。

原因:タイムアウトは実行時間の上限ではなく、書き込みの重さと判断した

Google広告スクリプトは、1つのアカウントで最大30分まで実行できます(参考:Google 広告スクリプトの制限)。ところが、このスクリプトの所要時間は2分半ほどでした。実行時間の上限に当たったわけではありません。

12タブの版では、問題なく動いていました。違いは、後ろに7つのタブが増えたことだけです。重いタブを書いたあと、最後にまとめて反映する処理が時間切れになっていると判断し、書き込みの進め方を見直しました。

前提:タブごとにエラーを受け止め、ログに残す作り

このスクリプトは、もともとタブごとにエラーを受け止める作りでした。1つのタブで失敗しても、ほかのタブの書き出しは止まりません。書き出しの処理を終えたタブは、ログに "OK: タブ名" と残ります。ただし、書き込みがまとめて反映される場合、OKのログだけでは反映まで終わったとは言い切れない点に注意が必要です。

スプレッドシートへの書き込みのタイムアウトに対して入れた2つの対策

■ 対策1:タブを書くたびに、その場で反映する
スプレッドシートへの書き込みは、すぐに反映されず、まとめて処理されることがあります。"SpreadsheetApp.flush()" は、ためておいた変更を、その場でスプレッドシートに反映する命令です。そこで、タブを1つ書き終えるたびに "SpreadsheetApp.flush()" を呼ぶようにしました。

最後にまとめて反映するのではなく、反映の処理を1タブずつに分ける考え方です。今回の版では、反映の命令を、OKのログより前に置いています。そのため、OKが出たタブは、スプレッドシートへの反映まで終わったタブです。

■ 対策2:使っていない行はスプレッドシートに書き出さない
2つ目の対策は、書き出す量そのものを減らすことでした。キーワードの品質を書き出すタブには、品質スコア(Google広告がキーワードごとに付ける1〜10の評価)の列があります。このタブでは、表示回数が0で、品質スコアも付いていない行が全体の94.7%を占めていました。表示回数0で品質スコアのない行は、取り込んだ先のダッシュボード、サイト監査、通知のどれにも使っていません。そこで、書き出しの対象から外しました。

一方で、検索語句のタブにあるクリック0の行は残しています。除外キーワードの候補を出す処理で、クリック率の低い語句を判定するときの、全体の平均クリック率の計算に使うためです。行を削る前に、その行を後の工程で使っているかを確かめるのが安全です。

結果:翌朝の自動収集で、空だった4つのタブにもデータが入った

対策を入れたスクリプトに差し替えた翌朝、自動収集を確認しました。空だった4つのタブにも、データが入っていました。

ただし、対策1と対策2は同時に入れています。どちらが効いたのか、どちらか一方でも足りたのかは切り分けていません。

まとめ

・Google広告スクリプトの書き込みがタイムアウトになったら、実行時間の上限かどうかを先に確かめる

・タブを書くたびに "SpreadsheetApp.flush()" で反映し、最後にまとめて反映しない

・反映の命令をOKのログより前に置き、ログで反映まで終わったタブを確かめられるようにする

・後の工程で使っていない行は書き出さない。削る前に使い道を確かめる

データを毎朝そろえる仕組みの全体は、広告データの毎朝自動収集をClaude Codeで作った話で紹介しています。この収集が広告運用のどこに位置づくかは、広告運用のAI自動化の全体像で5つの層に分けて整理しました。

この記事を書いた人

岸本 成(合同会社1nd)

広告運用を起点に、SNS、ホームページ、店舗や施設での集客まで、全体の設計と実践を手がけています。

・2020年:広告運用者として活動を開始。SNSやGoogleマップの運用にも知見があり、広告以外の集客の相談にも数多く応えてきました

・2025年:AI導入支援事業を開始

・2026年6月:FDM(Forward Deployed Marketer。顧客の現場に入り、AIとマーケティングで集客の仕組みを作る専門家)として、集客支援の請負を開始。現在11のクライアント様で実施中

目的に合わせて、次のページもご覧ください。

プロフィール

集客支援をお探しの方へ

AIを仕事にしたい方へ

【無料】そのまま使えるClaude Codeスキル集をプレゼント中

この記事で紹介したような、広告運用の実務で毎日使っているClaude Codeスキルを、公式LINEで無料プレゼントしています。

laimaLABOを運営する1ndでは、Claude Codeで広告運用の作業をほぼ自動化しています。その現場で実際に使っているWeb広告スキルを、そのまま使える形で配布しているものです。

プレゼントで得られるスキルの一例:

・Meta広告の審査チェック+言い回し変換(訴求をできるだけ残した版と、アカウント保護を優先した安全寄りの版の2案出し)

・Google広告の審査チェック(アカウントBANリスクの検出に特化)

・検索語句レポートから除外キーワード候補を自動抽出

・RSA(レスポンシブ検索広告)の広告文作成

・Google広告の品質スコア改善監査

・広告CSVの自動集計とレポート下地を作るスキルの作り方ガイド

・成果データから「次に試すべき訴求軸」を洗い出すコピー案出し

・画像生成AIでバナーを作るためのプロンプト設計

・動画広告の台本作成(複数の「型」テンプレート内蔵)

・LP改善の分析(広告データ×アクセス解析の突合)

受け取り方は簡単です。

公式LINEを友だち追加する

・トーク画面で「スキル」とメッセージを送る

これだけで、現在使用しているWeb広告スキル一式をお受け取りいただけます。

BLOG LIST