広告運用の月次レポートに、数値が動いた理由のコメントを下書きする
広告運用の月次レポートで、いちばん時間のかかる「何が動いたか・なぜか・来月どうするか」のコメント欄を下書きします。増減の計算は表計算の側で済ませ、AIには計算済みの差分と、その月の運用ログだけを渡します。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- EC/広告
- 対象部門
- マーケティング/営業
- 対象業務
- 書類作成/要約/集計・分析
- 主な課題
- データ分析に時間がかかる/属人化している/書類作成に時間がかかる
- AIで行う処理
- 生成
- 主な効果
- 品質標準化/属人化解消/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 月が明けたら、担当するアカウントの管理画面から前月と前々月の数値を書き出す
- 集計用のスプレッドシートに貼り、前月比とキャンペーン別の増減を計算する
- 大きく動いたキャンペーンを目で探す
- 運用ログのスプレッドシートや自分のメモ、チャットのやり取りから、前月にやった変更を拾い出す
- 数値の動きと変更を頭の中で結び付け、コメント欄に「何が動いたか・なぜか・来月どうするか」を書く
- 上長または営業担当が読み、言い回しや表現を直す
- 顧客へ送る
- 人運用担当が、入札・予算・クリエイティブを変えたときに運用ログへ一行の意図を書く(月中、作業のたび)
- 自動毎日、広告アカウントの変更履歴を取得し、運用ログに追記する
- 自動月の初日に、前月と前々月の数値を取得して集計表に書き込む
- 自動集計表が前月比とキャンペーン別の寄与を計算し、大きく動いた行に印を付ける
- 自動計算済みの差分と、前月分の運用ログだけをAIに渡す
- 自動AIが、動いた数値ごとに記録にある変更を結び付けたコメントの下書きを返す
- 自動下書きに出てくる数値が集計表の値と一致するか、引用したログが実在するかを確かめる
- 人運用担当が下書きを読み、「記録からは特定できない」とされた箇所と来月の方針を書き足す
- 人上長または営業担当が確認し、顧客へ送る
各工程の詳しい説明を読む
- 月が明けたら、担当するアカウントの管理画面から前月と前々月の数値を書き出す
- 集計用のスプレッドシートに貼り、前月比とキャンペーン別の増減を計算する
- 大きく動いたキャンペーンを目で探す
- 運用ログのスプレッドシートや自分のメモ、チャットのやり取りから、前月にやった変更を拾い出す
- 数値の動きと変更を頭の中で結び付け、コメント欄に「何が動いたか・なぜか・来月どうするか」を書く
- 上長または営業担当が読み、言い回しや表現を直す
- 顧客へ送る
(a)コメント欄が白紙から始まる。 表はできていても、どのキャンペーンから書くか、どこまで細かく書くかを毎回決め直します。時間がかかるのは、書く速さではなく、決め直す回数のせいです。
(b)理由の書き方が担当者ごとに違う。 ある担当は変更の一つひとつを数値と結び付け、別の担当は「季節要因により」で済ませます。顧客から見ると、担当が替わった月にレポートの深さが変わります。 引き継ぎのときにいちばん失われるのも、この書き方です。
(c)記録に無い理由を書いてしまう。 4番で変更が見つからないと、それらしい理由で埋めたくなります。「競合の出稿が増えたため」と書けば、それ以上は聞かれにくいからです。 しかし、その裏付けはどこにもありません。
(d)変更と数値の結び付きを確かめていない。 入札を上げた月にクリック数が増えていれば、そう書きます。同じ時期に予算も広告文も変えていれば、どれが効いたかは分かりません。 目で結び付けると、覚えている変更だけが理由になります。
- 【人】 運用担当が、入札・予算・クリエイティブを変えたときに運用ログへ一行の意図を書く(月中、作業のたび)
- 【自動】 毎日、広告アカウントの変更履歴を取得し、運用ログに追記する
- 【自動】 月の初日に、前月と前々月の数値を取得して集計表に書き込む
- 【自動】 集計表が前月比とキャンペーン別の寄与を計算し、大きく動いた行に印を付ける
- 【自動】 計算済みの差分と、前月分の運用ログだけをAIに渡す
- 【自動】 AIが、動いた数値ごとに記録にある変更を結び付けたコメントの下書きを返す
- 【自動】 下書きに出てくる数値が集計表の値と一致するか、引用したログが実在するかを確かめる
- 【人】 運用担当が下書きを読み、「記録からは特定できない」とされた箇所と来月の方針を書き足す
- 【人】 上長または営業担当が確認し、顧客へ送る
8番目が、この設計の分かれ目です。 AIが書けるのは記録にある変更と数値の結び付きまでで、記録に無い理由と来月の方針は担当者が書きます。 ここを空欄のまま出せる形にしておくことで、それらしい理由で埋まる下書きを防ぎます。
1番目がこの構成の前提です。 2番の変更履歴で「何を変えたか」は機械で残せますが、「なぜ変えたか」は担当者にしか書けません。 一行の意図が無ければ、コメントは「入札を上げた」までしか書けず、顧客が知りたい理由には届きません。
02今回想定するシステム構成
Google広告の変更履歴 ─────────┐ ▼【毎日】Make │ 何を・いつ・誰が 運用ログ(スプレッドシート) ◀──┘ ▲ 担当者が一行の意図を書く(なぜ) │ ▼【月の初日】Make Google Ads API(GAQL・前月/前々月の数値) ▼ 集計表(Googleスプレッドシート) │ 前月比・キャンペーン別の寄与・率の変化を計算 │ 大きく動いた行に印(閾値は数式で) ▼ Make ── 計算済みの差分+前月分の運用ログを組み立てる ▼ Claude API ── コメントの下書き(JSON) │ ① 何が動いたか ② 記録にある変更との結び付き │ ③ 記録からは特定できない増減 ④ 来月の方針(担当欄) ▼ Make ── 数値の一致確認・ログIDの実在確認 ▼ 【運用担当が書き足し → 上長・営業が確認】 ▼ 月次レポート(顧客へ)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | Make | Zapier、n8n、Power Automate |
| 生成AI | Claude API(コメントの下書き) | OpenAI API、Gemini API |
| 集計表 | Googleスプレッドシート(前月比・寄与の計算) | Microsoft Excel |
| 広告データ | Google Ads API(GAQL によるレポート取得と変更履歴) | 各媒体の管理画面からの書き出し |
| レポート | 既存の月次レポートの雛形 | Looker Studio などのダッシュボード |
計算は集計表の数式が持ちます。 AIへ渡すのは、その結果の行だけです。集計表は担当者が開いて数式を読めるので、前月比がどう出たかを人が確かめられます。 同じ計算をAIに任せると、その確かめる先が消えます。
数値の取得には、Google Ads API のレポートを使います。 問い合わせは Google Ads Query Language(GAQL)で書き、期間は segments.date BETWEEN '2026-08-01' AND '2026-08-31' のような日付の指定か、LAST_MONTH などの定義済みの期間を DURING 演算子で指定できます。日付に関わるセグメントを選ぶときは、日付の絞り込みを必ず入れる必要があります。
変更履歴は、Google Ads API の変更イベントから取ります。 作成の操作では新しい値が、更新の操作では新しい値と古い値の両方が返り、変更に使われたクライアントの種類(APIかWebか)と変更したユーザーも分かるとされています。
ただし、取れるのは過去30日以内です。 月の初日にまとめて取ると、31日ある月の初日の分が範囲から外れることがあります。だから変更履歴は毎日取って運用ログへ積み、月次の処理では運用ログのほうを読みます。
Google広告以外の媒体は、この構成では管理画面から書き出したファイルを集計表の決まったシートへ貼るところから始めます。媒体ごとのAPIで取れるかは、利用する媒体の仕様を個別に確認してください。
03どうやって実装するのか
処理の起点を決める
トリガーは2つに分けます。 1つは変更履歴を運用ログへ積む毎日の処理、もう1つは月次のコメントを下書きする月1回の処理です。
Make のシナリオは、定期実行の選択肢として「一定間隔」「1回」「毎日」「平日」「毎週」「毎月」「指定日」「オンデマンド」を持っています。毎日の処理は「毎日」、月次の処理は「毎月」で組みます。
| 処理 | 実行のしかた | 理由 |
|---|---|---|
| 変更履歴の取得 | 毎日(早朝) | 変更履歴は過去30日以内しか取れない。月初にまとめると取りこぼす |
| 月次の数値取得と集計 | 毎月(初日の早朝) | 前月の数値が出そろってから動かす |
| コメントの下書き | 集計が終わった後に続けて | 集計表の計算が終わる前に読むと、空の行を渡す |
| 担当者による再実行 | オンデマンド | 媒体のデータが遅れて確定したアカウントだけやり直す |
3行目の順番を崩さないでください。 集計表への書き込みと数式の再計算が終わる前にAIを呼ぶと、前月比が空欄の行が「変化なし」として下書きに出ます。 集計のシナリオが最後に「完了」の印を書き、コメントのシナリオはその印を確かめてから動く形にします。
Make のシナリオには詳細設定で開始日と終了日を持たせることもできます。契約の開始や終了が決まっているアカウントは、ここで動く期間を区切ります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 計算済みの差分 | アカウント・キャンペーンごとの前月と前々月の値、差、前月比、全体の増減に対する寄与 | 集計表 |
| 印の付いた行 | 閾値を超えて動いた行と、その閾値 | 集計表 |
| 運用ログ | ログID、日時、キャンペーン、変更の種類、変更前後の値、担当者が書いた意図 | 運用ログ(変更履歴の自動追記+担当者の記入) |
| アカウントの前提 | 顧客が重視する指標(獲得単価、売上、問い合わせ数など)、月の予算、レポートの書き方の決まり | アカウント設定のシート |
| 来月の予定 | 担当者が書いた来月の予定メモ(あれば) | アカウント設定のシート |
質を決めるのは、3行目の「担当者が書いた意図」です。 変更履歴から自動で入るのは「入札の上限を変えた」という事実までで、なぜ変えたのかは入りません。 意図の欄が空の変更は、コメントでは「〜を変更した」とだけ書かれ、理由には使われません。
4行目の「顧客が重視する指標」を渡さないと、コメントの順番がずれます。 問い合わせ数を見ている顧客に、表示回数の増減から書いたレポートを出すことになります。どの指標から書くかは、アカウントごとに先に決めておきます。
データの取得方法を決める
数値はGAQLで、キャンペーン単位・日付単位に取ります。 月の合計だけを取らないのは、月の途中の変更の前後で数値を分けて見られるようにするためです。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| キャンペーン別・日別の指標 | Google Ads API(GAQL。segments.date で期間を指定) | 前月・前々月の集計と、変更の前後の比較 |
| 変更イベント | Google Ads API の変更イベント(過去30日以内) | 運用ログへの自動追記 |
| 他媒体の数値 | 管理画面から書き出したファイル | 集計表の媒体別シートへ貼る |
| 意図・来月の予定 | 担当者の記入 | コメントの理由と来月の欄 |
期間の指定は、定義済みの LAST_MONTH より日付の明示を勧めます。 再実行したときに「前月」の意味が実行日で変わらないようにするためです。GAQLは YYYY-MM-DD の形式で日付を受け付けます。
変更イベントの問い合わせには、2つの決まりがあります。 日付で絞り込むこと、その範囲が過去30日以内であることに加え、結果を最大10,000行に制限する LIMIT 句を入れる必要があります。 変更の多いアカウントでも1日分なら収まる想定ですが、上限に届いた日は運用ログに印を付けます。
変更は反映まで最大3分かかることがあるとされています。毎日の取得を深夜0時ちょうどに動かすと、直前の変更が翌日に回ることがあるので、早朝に少し余裕を持たせて動かします。
AIへ渡す前に整形する
- 期間の確定 … 前月と前々月の開始日・終了日を日付で決め、集計表と問い合わせの両方に同じ値を書きます
- 取得の完了確認 … 媒体ごとに、取得した日数が月の日数と一致するかを数えます。欠けた日があれば、そのアカウントを止めます
- 前月比と寄与の計算 … 集計表の数式で出します。AIへ渡す前に、すべての数値がここで決まっている状態にします
- 率の分母の確認 … 前々月が0の指標は前月比を出さず、「前々月実績なし」と印を付けます
- 閾値による印付け … 増減の絶対値と寄与の大きさの両方で、動いた行に印を付けます
- 運用ログの切り出し … 前月の期間に入るログだけを取り出し、ログIDを振ります
- 意図の欄の確認 … 意図が空の変更を数え、担当者に通知します
4番目を省くと、下書きに「前月比は計算できない増加」のような文が出ます。 0で割る計算を表計算に任せるとエラー値が入り、そのエラー値をAIが文章にしようとします。分母が0のときの表示は、前処理で文字に置き換えておきます。
7番目は月末ではなく、毎日の処理でも回します。 変更した翌日に「意図が空です」と届けば、担当者は覚えているうちに書けます。月初にまとめて聞くと、第3章の(c)と同じことが起きます。
AIに処理させる
させるのは、印の付いた行ごとに「何が動いたか」を文にし、同じキャンペーン・同じ期間の運用ログを結び付けることだけです。 数値は渡されたものをそのまま使い、理由はログにあるものだけを使います。
| させること | 書き方の決まり | 記録が無いときの扱い |
|---|---|---|
| 動いた指標を文にする | 渡された値と前月比をそのまま引く。数値ごとに集計表の行IDを付ける | 行IDの無い数値は書かない |
| 記録にある変更と結び付ける | 同じキャンペーンで、その期間にあった変更を挙げ、ログIDを付ける | 該当するログが無ければ unexplained |
| 変更の意図を書き添える | 担当者が書いた意図の文をもとにする | 意図が空なら「〜を変更した」までにとどめる |
| 記録からは特定できない増減を並べる | 「理由は記録からは特定できない」と書く | 担当者が書き足す欄として残す |
| 来月の方針を書く | 来月の予定メモがあれば文にする | 無ければ空欄にして担当者へ回す |
2行目の「結び付ける」は、因果を言い切ることではありません。 入札を上げた月にクリック数が増えていても、同じ時期に予算や広告文も変えていれば、どれが効いたかは記録からは分かりません。書くのは「〜の変更を行った時期と重なる」までにさせます。 変更が1つしか無く、変更の前後で日別の数値がはっきり分かれているときも、断定は担当者が決めます。
| させないこと | 理由 |
|---|---|
| 増減・前月比・寄与の計算 | 計算の確かめ先は集計表に置く。AIが計算した値は突き合わせる先が無い |
| 記録に無い理由の推測 | 季節・競合・媒体の仕様変更などは、それらしく書けてしまう |
| 変更の効果の断定 | 複数の変更が重なると、どれが効いたかは記録からは分からない |
| 来月の予算額や入札額の提案 | 顧客との合意で決まるもの。担当者が書く |
| 印の無い行への言及 | コメントが長くなり、顧客が読む場所がぼやける |
2行目がいちばん起きやすい失敗です。 生成AIは、秋になれば「季節要因」、競合の多い業種なら「競合の出稿増」と、もっともらしい理由を必ず思いつきます。 禁止を書かないと、ログに無い理由がログにある理由と同じ調子で並びます。
指示内容を固定する
あなたは広告代理店の運用担当として、顧客へ出す月次レポートの
コメント欄の下書きを作ります。
渡された【計算済みの差分】と【運用ログ】だけを材料にしてください。
【書くこと】
1. 印の付いた行(flagged が true の行)について、何がどれだけ動いたか
2. その動きと、同じキャンペーン・同じ期間にある運用ログとの結び付き
3. 運用ログに結び付く変更が無い動き
4. 来月の方針(【来月の予定】に書かれたものだけ)
【数値の扱い】
- 数値は【計算済みの差分】にある値だけを使ってください。
- 足し算、引き算、割り算、率の計算を一切しないでください。
渡されていない数値(合計、平均、差の差など)を作らないでください。
- 文中に数値を書いたら、その数値の row_id を figures に必ず入れてください。
- previous_zero が true の行は、前月比を書かず「前々月の実績なし」と書いてください。
【理由の扱い】
- 理由として書いてよいのは、【運用ログ】にある変更だけです。
書くときは、その log_id を evidence に入れてください。
- 季節、競合、市場の動き、媒体の仕様変更、顧客側の事情などは、
【運用ログ】に書かれていない限り理由として書かないでください。
- 結び付く変更が無い動きは、reason_type を "unexplained" にし、
本文には「理由は記録からは特定できない」とだけ書いてください。
- 同じキャンペーン・同じ期間に変更が2つ以上ある場合は、
どれが効いたかを決めず、「〜を行った時期と重なる」と書いてください。
- 変更が1つだけでも、「〜により増加した」と言い切らないでください。
- intent が空のログは「〜を変更した」までにとどめ、意図を補わないでください。
【来月の方針】
- 【来月の予定】に書かれたことだけを文にしてください。
- 予定が空なら next_month を空文字にしてください。提案を書かないでください。
- 予算額・入札額を新たに書かないでください。
【書き方】
- 【アカウントの前提】の重視する指標から順に書いてください。
- 顧客に向けた丁寧語で、1つの動きにつき2文以内にしてください。
【アカウントの前提】{account_profile}
【計算済みの差分】{diff_rows}
【運用ログ】{change_log}
【来月の予定】{next_plan}
「季節、競合…は書かない」を列挙しているのは、抽象的な禁止では止まらないからです。 「推測しないでください」とだけ書くと、AIは季節要因を推測だと思わずに書きます。よく出る理由を名指しで禁じます。
「〜により増加した」と言い切らせない一文も外さないでください。 ログに入札の変更があり、同じ月にクリック数が増えていれば、何も言わなければ因果として書きます。顧客はその文を読んで、翌月も同じ変更を求めます。
出力形式を固定する
次の形のJSONで受け取ります。
{
"account_id": "",
"period": { "current": "2026-08", "previous": "2026-07" },
"movements": [
{
"row_id": "",
"summary": "",
"figures": [""],
"reason_type": "logged | overlapping | unexplained",
"evidence": [""],
"reason_text": ""
}
],
"unexplained_count": 0,
"next_month": "",
"needs_owner_input": ["unexplained", "next_month", "empty_intent"]
}
形の保証には、Claude API の構造化出力を使います。 output_config.format にJSONスキーマを渡すと、応答が常に有効なJSONになり、型と必須項目が保証されるとされています。reason_type のような決まった値は enum で固定できます。
ただし、スキーマで守れるのは形までです。 数値の範囲(minimum や maximum)や文字列の長さ・パターンの制約はサポートされていません。また、オブジェクトには additionalProperties を false で指定する必要があります。figures に入った row_id が本当に集計表にあるか、文中の数値がその行の値と一致するかは、スキーマでは確かめられません。 だからワークフロー側で検査します。
| 検査 | 方法 | 外れたとき |
|---|---|---|
| 文中の数値 | summary と reason_text から数値を抜き出し、figures の行の値と照合 | 下書きを差し戻し、再生成を1回だけ行う |
figures の row_id | 集計表に存在するか | 再生成。2回目も外れたら担当者へ |
evidence の log_id | 前月分の運用ログに存在するか | 該当の段落を unexplained に置き換える |
reason_type と evidence | logged なのに evidence が空でないか | unexplained に置き換える |
| 印の付いた行の網羅 | すべての印付きの行が movements にあるか | 抜けた行を unexplained として足す |
3行目と4行目は、再生成せずに機械で置き換えます。 実在しないログを引いた理由は、書き直させても別のそれらしい理由になりがちです。置き換える先は「記録からは特定できない」一択にします。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Google Ads API | Make から呼び出し | GAQLによる数値の取得、変更イベントの取得 |
| 運用ログ | スプレッドシートへの追記 | 変更イベントを毎日積む。担当者が意図を書く |
| 集計表 | スプレッドシートの読み書き | 取得した数値を書き込み、計算済みの行を読む |
| Claude API | API呼び出し(構造化出力) | コメントの下書きをJSONで返す |
| 月次レポートの雛形 | 下書きの差し込み | コメント欄に下書きを入れ、担当者の欄を空けておく |
| チャット | 通知 | 下書きの完成と、needs_owner_input の件数を担当者へ |
広告アカウントへは書き込みません。 この構成が触るのは数値と変更履歴の読み取りまでで、入札や予算を変える経路は作りません。 来月の方針が下書きに出ても、実際の変更は担当者が管理画面で行います。
Google Ads API の利用には、開発者トークンや認証の準備が別に要ります。Make からの接続方式(専用のモジュールか、HTTPでの呼び出しか)は、利用する契約と権限に応じて個別に確認してください。
人が確認する
人が見るのは、全60本の下書きです。 ただし、読む場所は決まっています。
needs_owner_inputを先に埋める …unexplainedの動き、空の来月の方針、意図が空のログ。担当者が知っている理由があれば書き、無ければ「調査中」と書きますloggedとoverlappingの結び付きを確かめる … 引いたログが本当にその動きに関係するか、evidenceのログを開いて読みます- 言い切りが無いかを見る … 「〜により」「〜の効果で」が入っていれば直します
- 上長または営業担当が読む … 顧客との関係で書き方を変える箇所だけを直します
- 直した箇所を記録する …
unexplainedを担当者が埋めた内容は、運用ログの意図の欄にも書き戻します
1番目に「調査中」を許すのは、空欄を嫌って推測で埋めるのを防ぐためです。 担当者も理由が分からない増減はあります。分からないと書けるレポートの形にしておくと、翌月の調査の対象として残ります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 取得した日数が月の日数に足りない | そのアカウントの下書きを止め、担当者へ通知。欠けたまま前月比を出さない |
| 前々月の実績が0 | 前月比を出さず「前々月の実績なし」と表示 |
| 変更イベントが10,000行の上限に届いた | 運用ログに印を付け、その日の取りこぼしを担当者が確かめる |
| 30日を超えて変更履歴の取得が止まっていた | 過去分は取り直せない。 担当者の記録で補い、補えない期間を下書きに明記 |
| 印の付いた行が1つも無い | 「大きな動きなし」の短い下書きを作り、担当者が確認 |
| 印の付いた行が多すぎる | 寄与の大きい順に上限を決めて渡し、残りは一覧だけ載せる |
| 文中の数値が集計表と一致しない | 再生成を1回。2回目も外れたら、その段落を空けて担当者へ |
| 実在しないログIDを引いた | その段落を unexplained に置き換える |
| コンバージョンが後から確定し直した | 担当者がオンデマンドで再実行。前の下書きは版を残して上書きしない |
| 担当者が替わった月 | 引き継いだ担当者の名前で下書きを出し、前任者の意図のログをそのまま使う |
4行目は、仕組みを止めたときに必ず起きます。 変更履歴は過去30日以内しか取れないため、毎日の処理が1か月止まると、その期間は二度と取れません。 毎日の処理が動いたかどうかを、別の通知で見張ります。
記録を残す
- 取得に使った期間と問い合わせの内容、取得した日数
- 集計表の計算済みの行(AIへ渡した時点の値)
- AIへ渡した運用ログの範囲と、そのときの意図の欄の内容
- AIの応答のJSON全文と、ワークフローの検査結果
- 担当者と上長が直した箇所 … どの段落を、どう変えたか
- 顧客へ送った最終版と、送った日時
- アカウントごとの
unexplainedの件数の推移
2行目で「渡した時点の値」を残すのは、数値が後から確定し直すためです。 送ったレポートの数値と、翌月に見た前月の数値が違うことがあります。当時の値が残っていないと、どちらが正しかったのかを顧客に説明できません。
最後の行は、運用ログが書かれているかの物差しになります。 unexplained が多いアカウントは、意図の記入が抜けているか、記録に残らない種類の変更をしています。
04実装レベルの3段階
最小構成では60本はさばけません。 貼り付けと照合に時間がかかるので、確かめるための段階です。 半自動化で、コメントを書く時間が大きく減ります。 ただし数値の書き出しと集計表への貼り付けは手作業のまま残ります。本格構成で数値の取得と検査が自動になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化の1か月で、unexplained の多いアカウントと、意図の欄を書いていない担当者が見えます。そこを直してから本格構成に進むほうが、使える下書きが増えます。
05工数削減シミュレーション
導入後 60件 × 30分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 数十の広告アカウントを数名で運用し、顧客または社内向けに毎月の運用レポートを出している広告代理店や事業会社の運用チーム。前月比の表は作れているが、コメント欄を書くのに時間がかかり、担当者によって書き方も深さも違う場合。入札・予算・クリエイティブの変更を運用ログとして残す習慣があるか、これから残せる場合。
- 担当アカウントが数件で、コメントを書く時間がそもそも負担になっていない場合。運用の変更を記録に残しておらず、残す運用も始められない場合(理由を書く材料が無く、下書きのほとんどが「記録からは特定できない」になります)。顧客との契約で、広告アカウントのデータを外部のAIサービスへ渡すことが認められていない場合。
07最小構成で試す方法
- 先月出したレポートから5本を選ぶ(うち1本は、担当者がログをほとんど書いていないアカウントにする)
- その5本について、集計表の前月比の表と、前月分の運用ログを用意する
- 手元のAIサービスの画面に、表とログと第7章の指示文を貼り付ける
- 出てきた下書きを、実際に送ったコメントと並べて読む
- 下書きの数値を1つずつ集計表と照合し、理由がログのどれに当たるかを確かめる
5番目を必ず手でやってください。 数値の一致と、理由の出どころを確かめる作業が、そのまま第7章のワークフローの検査になります。
| 出てきた内容 | 判断 |
|---|---|
| 数値が表と一致し、理由がログに当たる | ワークフローの組み立てに進む |
| 記録に無い理由が混ざった | 指示の書き方で直る。よく出る理由を名指しで禁じる |
| ほとんどが「記録からは特定できない」 | 運用ログの書き方が先。 AIの問題ではない |
3行目は、1番で選んだログの少ないアカウントで出るはずです。 それは失敗ではなく、これまでのコメントが何を根拠に書かれていたかが見えたということです。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| AIが率や合計を計算して書く | 計算を禁じ、文中の数値を集計表の値と機械で照合する |
| 記録に無い理由が出る | 季節・競合・仕様変更などを名指しで禁じる |
| 変更と数値の動きを因果として言い切る | 「時期と重なる」までにさせる。言い切りを確認の観点に入れる |
| 集計が終わる前に下書きが動く | 集計の完了の印を確かめてから動かす |
| 変更履歴を月初にまとめて取り、取りこぼす | 過去30日以内しか取れない。 毎日取って運用ログへ積む |
| 前々月が0でエラー値が文章になる | 前処理で「前々月の実績なし」に置き換える |
| 意図の欄が空のまま月末になる | 変更した翌日に通知する |
| 印の付く行が多すぎてコメントが長い | 寄与の大きい順に上限を決める |
| 重視する指標の順に書かれない | アカウントごとの前提を必ず渡す |
| スキーマで数値の範囲を縛ろうとする | 数値の制約はサポートされない。検査はワークフローで行う |
| 下書きがそのまま顧客に送られる | 自動送信の経路を作らない。 送信は人が行う |
上の2行が、この構成の失敗のほとんどです。 どちらも、AIが「それらしい」ものを作れることから出ています。 数値は集計表と、理由は運用ログと、それぞれ突き合わせる先を持たせてあるかどうかで、顧客に出せる下書きになるかが決まります。
5行目は、仕組みを作った後に効いてきます。 毎日の処理が止まっていたことに1か月気づかないと、その期間の変更履歴は取り戻せません。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 顧客の広告アカウントの数値(費用、クリック数、コンバージョン、売上など)、キャンペーン名、運用ログ、担当者が書いた意図と来月の予定です。
- 顧客のデータを外部のAIサービスへ渡してよいかを、契約で確かめる … 運用の受託契約や秘密保持契約で、広告アカウントのデータを第三者のサービスに渡すことがどう扱われているかを、導入の前に顧客ごとに確認してください。認められていない顧客のアカウントは、この構成から外します
- 渡す範囲を、計算済みの差分とログに限る … 下書きに要るのは印の付いた行と前月分のログだけです。検索語句の一覧や顧客の顧客に関する情報は渡しません。 検索語句には個人を推測できる語が入ることがあります
- 顧客ごとに呼び出しを分ける … 1回の呼び出しに複数の顧客のデータを混ぜないでください。別の顧客の数値や施策が、下書きに紛れ込む経路をなくします
- 利用するAIサービスのデータの取り扱い条件を確認する … 入力したデータの保存や学習への利用について、契約しているプランの条件を確かめ、顧客への説明と矛盾しないようにしてください。具体の条件は各サービスの規約に従います
- コメントは担当者が確認してから出す … 下書きを顧客へ自動で送る経路は作りません。記録に無い理由や言い切りが1文混ざるだけで、顧客の翌月の予算判断を誤らせます
- 広告アカウントの権限を読み取りに絞る … 数値と変更履歴の取得に使う権限で、入札や予算を変えられないようにします。書き込みの権限を持たせない設計が、誤操作を防ぐいちばん確かな方法です
誤りが起きた場合のリスクは、数値を誤って伝えることと、裏付けの無い理由を伝えることの2つです。 前者は計算をAIにさせると起き、後者は記録に無い理由を書かせると起きます。どちらも「AIに作らせない」と決めた範囲から出ているので、そこだけは設計で守ります。
10まず何から始めるか
1週目:運用ログに「意図」の列を足す
運用ログのスプレッドシートに、変更の意図を一行で書く列を足します。全員に一斉に求めるのではなく、担当アカウントの多い2名から始めます。 書く粒度は「予算上限に届いていたため日予算を上げた」程度で十分です。
2週目:5本で試す
先月のレポートから5本を選び、手元のAIサービスに集計表とログを貼って下書きを作らせます。数値が表と一致しているか、理由がログに当たるかを最優先で見ます。
3週目:アカウントの前提と閾値を決める
アカウントごとに、顧客が重視する指標、印を付ける閾値、コメントの書き方の決まりを1枚のシートにまとめます。営業担当と一緒に決めてください。顧客に何を約束しているかは、営業が知っています。
4週目:集計表から下書きまでをつなぐ
Make で月初に集計表と運用ログを読み、Claude API で下書きを作り、雛形に差し込むところまで作ります。この時点では数値の取得は手作業のまま、下書きの検査を先に作ります。
2か月目: Google Ads API で変更履歴を毎日取り、運用ログへ積む処理を足します。3か月目以降: 数値の取得も自動にし、1本90分が何分になったかを実測します。unexplained の件数が月を追って減り、担当者が替わってもコメントの型が変わらなくなった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| シナリオの定期実行の選択肢が「一定間隔」「1回」「毎日」「平日」「毎週」「毎月」「指定日」「オンデマンド」であること。詳細設定で開始日と終了日を指定できること。「すぐに」の選択肢は一部のトリガーでのみ使えること | Make Help: Schedule a scenario | 2026-09-29 |
GAQLで期間を YYYY-MM-DD などの日付と segments.date BETWEEN で指定できること。LAST_MONTH、THIS_MONTH、LAST_30_DAYS などの定義済みの期間を DURING 演算子で使えること。日付に関わるセグメントを選ぶときは日付の絞り込みが必要なこと | Google Ads API: Date ranges | 2026-09-29 |
変更イベントが、作成では新しい値、更新では新しい値と古い値を返し、変更に使われたクライアントの種類と変更したユーザーを示すこと。日付で絞り込み、その範囲が過去30日以内である必要があること。結果を最大10,000行に制限する LIMIT 句が必要なこと。変更の反映に最大3分かかることがあること | Google Ads API: Change event | 2026-09-29 |
構造化出力で output_config.format にJSONスキーマを渡すと、応答が常に有効なJSONになり、型と必須項目が保証されること。enum が使えること。オブジェクトの additionalProperties を false にする必要があること。数値の制約(minimum、maximum など)と文字列の制約(minLength、pattern など)はサポートされないこと | Claude Docs: Structured outputs | 2026-09-29 |
顧客の広告アカウントのデータを外部のサービスへ渡す範囲は、顧客との契約と自社の規程に従ってください。 Google広告以外の媒体からの取得方法と、Make から Google Ads API への接続方式は、本記事では確認していません。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0284)についてのご相談はこちらから。
