広告主ごとの出稿額と反響、やり取りの記録から出稿を減らしそうな広告主を毎月予測し、先に連絡する順と提案の案を出す
既存の広告主ごとに、出稿額と反響の推移、担当者とのやり取りの記録を毎月まとめて読み、翌月以降に出稿を減らしそうな広告主を予測します。営業が先に連絡すべき順と、会うときの提案の案を一覧にします。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Make/n8n
- 対象業界
- IT・SaaS/不動産/人材/広告
- 対象部門
- 営業
- 対象業務
- 比較検討/集計・分析
- 主な課題
- データ分析に時間がかかる/営業フォローが追いつかない/属人化している
- AIで行う処理
- 予測
- 主な効果
- 判断支援/工数削減/機会損失防止
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 月の初めに、各営業が発注・請求のデータから担当の広告主の出稿額を、前月・前年同月と並べて書き出す
- 運用担当のレポートを開き、反響の件数と1件あたりの獲得単価を書き写す
- 営業支援システムを開き、その広告主の直近3か月のメモを読み返す
- 気になる広告主に印を付け、営業会議の資料に書く
- 営業会議で、各営業が印を付けた広告主を読み上げる
- 部長がその場で、誰を先に訪ねるかを決める
- 訪ねる前に、担当者が提案の案を考えて資料を作る
- 自動毎月2営業日目の朝、発注・請求のデータと反響のレポートが締まった後にスクリプトが動く
- 自動広告主ごとに、出稿額・反響・獲得単価の推移を計算し、数字の兆しに印を付ける
- 自動営業支援システムから、広告主ごとに直近90日のメモを取り出す
- 自動Gemini API がメモを読み、減額につながる言葉の兆しを根拠の文とともに拾う
- 自動数字の兆しと言葉の兆しから、翌月以降の出稿の見込みと理由を出す
- 自動見込みが「減りそう」の広告主について、提案の案を2〜3個出す
- 自動スクリプトが重みの表で点数を付け、先に連絡する順に並べた一覧を作る
- 人各営業が担当分の一覧を読み、根拠の文を確かめ、見込みを直す
- 人営業会議で、部長が上位の広告主と訪ねる順を決める
- 自動翌月、実際の出稿額と前月の予測を突き合わせ、当たり外れを記録する
各工程の詳しい説明を読む
- 月の初めに、各営業が発注・請求のデータから担当の広告主の出稿額を、前月・前年同月と並べて書き出す
- 運用担当のレポートを開き、反響の件数と1件あたりの獲得単価を書き写す
- 営業支援システムを開き、その広告主の直近3か月のメモを読み返す
- 気になる広告主に印を付け、営業会議の資料に書く
- 営業会議で、各営業が印を付けた広告主を読み上げる
- 部長がその場で、誰を先に訪ねるかを決める
- 訪ねる前に、担当者が提案の案を考えて資料を作る
(a)減額の連絡を受けてから動いている。 20社のうち、実際に1〜3番を丁寧にできるのは大口の数社だけです。中堅の広告主は、「来月から予算を半分にします」というメールが届いて初めて、何が起きていたのかを調べることになります。 その時点で次の期の予算はもう決まっています。
(b)数字とメモが並んでいない。 出稿額が変わっていない広告主は、メモを読まれないまま「問題なし」になります。打ち合わせで「来期は内製を考えている」と言われていても、数字が落ちるまでは誰も気付きません。 逆に、出稿額が一時的に下がっただけの広告主に、何度も同じ確認をすることもあります。
(c)誰を先に訪ねるかが担当者の勘。 印の付け方に決まりがありません。ある営業は反響の減り方を見て、別の営業は担当者との関係の良し悪しで印を付けます。部長が決める優先順位も、会議で声の大きかった順になりがちです。
(d)引き継ぎで兆しが消える。 担当の営業が異動すると、メモに書かれた「担当者が代わるかもしれない」という一言は、次の担当者に読まれないまま残ります。 数字しか引き継がれないからです。
- 【自動】 毎月2営業日目の朝、発注・請求のデータと反響のレポートが締まった後にスクリプトが動く
- 【自動】 広告主ごとに、出稿額・反響・獲得単価の推移を計算し、数字の兆しに印を付ける
- 【自動】 営業支援システムから、広告主ごとに直近90日のメモを取り出す
- 【自動】 Gemini API がメモを読み、減額につながる言葉の兆しを根拠の文とともに拾う
- 【自動】 数字の兆しと言葉の兆しから、翌月以降の出稿の見込みと理由を出す
- 【自動】 見込みが「減りそう」の広告主について、提案の案を2〜3個出す
- 【自動】 スクリプトが重みの表で点数を付け、先に連絡する順に並べた一覧を作る
- 【人】 各営業が担当分の一覧を読み、根拠の文を確かめ、見込みを直す
- 【人】 営業会議で、部長が上位の広告主と訪ねる順を決める
- 【自動】 翌月、実際の出稿額と前月の予測を突き合わせ、当たり外れを記録する
8番目が、この設計の分かれ目です。 AIが出すのは見込みと根拠まで、その広告主に何が起きているかを最後に判断するのは担当の営業です。 営業は、メモに書かれていない電話の話や、先方の社内事情を知っています。一覧はそれを思い出すきっかけです。
7番目の並べ方を規則にしているのも意図してのことです。 AIに順位まで付けさせると、なぜその順なのかを説明できません。点数の付け方を表にしておけば、部長が「この兆しは重く見る」と決めたときに、表を直すだけで済みます。
02今回想定するシステム構成
発注・請求のデータ(媒体別・月別の出稿額) 反響のレポート(広告主ごとの問い合わせ件数・獲得単価) 営業支援システム(打ち合わせのメモ・担当者) │ ▼【トリガー】毎月2営業日目の朝(時間主導型トリガー) Google Apps Script ├──▶ 3つのデータを取り込み、広告主 × 月の表にそろえる ├──▶ 【計算】出稿額・反響・獲得単価の変化 → 数字の兆し ├──▶ 広告主ごとに直近90日のメモを取り出す ▼ Gemini API ── 構造化出力で返させる │ ① 言葉の兆し(予算/担当者/競合/内製/成果への不満/事業の変化) │ ② 翌月以降の出稿の見込みと理由 │ ③ 提案の案(減りそうな広告主だけ) ▼ Google Apps Script ── 重みの表で点数を付け、連絡する順に並べる ▼ Google スプレッドシート(今月の見直し一覧) ├──▶【営業】担当分の根拠を確かめ、見込みを直す ├──▶【部長】営業会議で訪ねる順を決める ▼ 翌月:実際の出稿額と突き合わせて当たり外れを記録
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Gemini API(言葉の兆しの抽出、出稿の見込み、提案の案) | Claude API、OpenAI API |
| 連携 | Google Apps Script | Make、n8n |
| 集計 | Google スプレッドシート | BigQuery |
| 営業支援 | 営業支援システム(打ち合わせのメモ) | - |
| 保管 | Google ドライブ | SharePoint、Box |
営業支援システムと発注・請求のデータは、新しく足すものではありません。 この構成はどちらからも読むだけで、見込みや点数を営業支援システムへ書き戻しません。 書き戻すと、AIの見込みが営業のメモと同じ場所に並び、どちらが人の書いたものか分からなくなります。
土台になるのは、Gemini API の構造化出力です。 応答を JSON Schema に沿った形で返させる機能で、データの抽出や分類、エージェント型の処理に向くとされています。文字列の値を決まった選択肢に限る enum を使えるため、兆しの種類や見込みの区分を決まった語で受け取れます。 ただし公式の案内は、出力が文法として正しいJSONになることと、値の中身が正しいことは別だとし、アプリケーションの側で値を検証するよう求めています。第7章の後段で、根拠の文がメモに本当にあるかをスクリプトが確かめるのはこのためです。
長い入力を受け取れることも効きます。 Gemini は100万トークンの入力を受け取れるモデルが提供されており、長い資料を渡すときは、質問を最後に置くと性能が上がると案内されています。広告主1社の90日分のメモは長くても数万字で、1回の呼び出しに収まります。メモを要約してから渡す前処理を挟まないので、要約の段階で兆しの一言が落ちることがありません。
つなぎには Google Apps Script を使います。 時間主導型のトリガーは、毎分から月1回までの間隔で動かせます。1回の実行は6分までなので、240社を一度に処理せず、30社ずつに分けて続きを次の実行に渡します(第7章のトリガー)。
03どうやって実装するのか
処理の起点を決める
毎月2営業日目の朝に動かします。 前月の発注・請求のデータが締まり、運用担当の月次レポートがそろった後です。月初1日目に動かすと、前月分の出稿額がまだ確定していない広告主が混ざります。 確定前の数字で「減りそう」と出すと、営業は最初の月に一覧を信用しなくなります。
Google Apps Script の時間主導型トリガーは、指定した時刻ちょうどではなく、その時刻から1時間のあいだのどこかで動きます(毎日9時と指定すれば9時から10時のあいだ)。営業会議の資料に間に合わせるなら、会議の前日の朝に動くように置きます。
1回の実行は6分までです。 240社のメモを1社ずつ Gemini API に渡すと、1回では終わりません。そこで次のように分けます。
- 最初の実行で、240社の一覧と数字の兆しを作り、処理待ちの列に並べる
- 処理待ちから30社ずつ取り出し、Gemini API に渡して結果を書く
- 5分を過ぎたら処理を止め、どこまで終わったかをスクリプトのプロパティに残す
- 数分後に動く時間主導型トリガーを作り直し、残りを続ける
- 処理待ちが空になったら点数を付けて一覧を完成させ、続きのトリガーを消す
インストール型のトリガーは、作った人のアカウントで動きます。 営業の誰か個人のアカウントで作ると、その人が異動したときに止まります。部署で管理する専用のアカウントで作ります。 Google Workspace のアカウントでは、トリガーの合計実行時間は1日6時間まで、外部へのURL呼び出しは1日10万回までです。月1回・240社なら余裕があります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 出稿額 | 広告主 × 媒体 × 月の出稿額(直近13か月) | 発注・請求のデータ(毎月出力するCSV) |
| 反響 | 広告主 × 月の問い合わせ件数と獲得単価 | 運用担当の月次レポート |
| やり取りの記録 | 直近90日の打ち合わせのメモ、日付、書いた人 | 営業支援システムの書き出し |
| 広告主の情報 | 広告主コード、業種、担当の営業、契約の区切りの月、決算月 | 広告主マスタ(スプレッドシート) |
| 前月の予測 | 前月に出した見込みと、営業が直した見込み | 前月の見直し一覧 |
質を決めるのは、上から3つ目と4つ目です。 メモが「定例。特になし」ばかりなら、言葉の兆しは何も拾えません。決算月と契約の区切りの月が無いと、予算を見直す時期が近いかどうかが分かりません。 広告主マスタにこの2列を足すのが最初の準備です。
出稿額を13か月分取るのは、前年同月と比べるためです。 求人や不動産の広告は季節で大きく動きます。前月比だけで見ると、毎年3月に減る広告主が、毎年3月に「減りそう」と出ます。
データの取得方法を決める
| 取るもの | どこから | どう取るか |
|---|---|---|
| 出稿額 | 発注・請求のデータ | 経理が毎月出力するCSVを、決まったドライブのフォルダに置いてもらう |
| 反響 | 月次レポート | 運用担当のレポートの集計シートを読み取る |
| メモ | 営業支援システム | システムのAPIか定期の書き出しで取る。取り方は製品によるため個別に確かめる |
| 広告主マスタ | スプレッドシート | 読み取るだけ |
営業支援システムからの取り出し方は、製品によって違います。 APIで取れる製品もあれば、画面から書き出すしかない製品もあります。この部分は利用しているシステムに合わせた個別の実装が必要です。 最初は月1回の書き出しをドライブに置く運用でも、この構成は動きます。
広告主の突き合わせは、広告主コードで行います。 発注のデータとメモでは、同じ広告主が「株式会社◯◯」「◯◯(人材事業部)」と別の名前で書かれていることがよくあります。名前で突き合わせると、事業部ごとに別の広告主として扱われ、出稿額が半分に見えます。
AIへ渡す前に整形する
- 広告主コードでそろえる … 3つのデータを広告主 × 月の表にし、コードの無い行は「未対応」に分ける
- 数字の兆しを計算する … 直近3か月の出稿額と、その前の3か月の比。前年同月との比。獲得単価の前年同月との比。最後にメモがあった日からの日数
- 数字の兆しに印を付ける … 下の表の条件に当たるものに印を付ける
- メモを整える … 日付の新しい順に並べ、署名や定型の見出しを除く。本文は要約しない
- メモが無い広告主を分ける … 90日間メモが無い広告主は、AIに渡さず「接点なし」の印を付ける
- 個人の名前を置き換える … メモに書かれた先方の担当者の氏名を「先方担当A」のように置き換える
| 数字の兆し | 印を付ける条件の例 |
|---|---|
| 出稿額の減り | 直近3か月がその前の3か月の80%未満 |
| 前年同月との差 | 前年同月の70%未満(季節の動きを除く) |
| 反響の悪化 | 獲得単価が前年同月の130%超 |
| 接点の減り | 最後のメモから45日以上 |
| 区切りが近い | 契約の区切りの月か決算月が2か月以内 |
条件の数字は、最初は仮の値です。 第7章の保存・ログで記録する当たり外れを見ながら、部長と一緒に直します。大事なのは、この計算をAIにさせないことです。 同じ数字を渡しても、AIに比を計算させると呼び出しのたびに端数が変わります。
AIに処理させる
させるのは3つです。 メモから言葉の兆しを根拠の文とともに拾うこと、数字の兆しと合わせて翌月以降の見込みを出すこと、減りそうな広告主に提案の案を出すことです。
| 言葉の兆し | 拾う例 | 拾わない例 |
|---|---|---|
| 予算 | 「来期は広告費を見直す」「上期の予算が厳しい」 | 「予算内で運用してほしい」 |
| 担当者 | 「担当が異動する」「決裁者が代わった」 | 先方の担当者の休暇 |
| 競合 | 「他社からも提案を受けている」「コンペをする」 | 業界の競合他社の話題 |
| 内製 | 「社内で運用できないか検討中」 | 「入稿データは社内で作る」 |
| 成果への不満 | 「応募の質が下がった」「単価が高い」 | 数字の報告だけ |
| 事業の変化 | 「採用を止める」「店舗を閉める」「新サービスを始める」 | 一般的な景気の話 |
右の列を指示に入れるのが要です。 「予算内で運用してほしい」は予算の話ですが、減額の兆しではありません。拾わない例を示さないと、予算という語が出るたびに兆しとして拾います。
見込みは次の4つから選ばせます。
| 見込み | 意味 |
|---|---|
decrease_likely | 翌月から3か月以内に出稿が減る兆しが、数字と言葉の両方にある |
watch | 数字か言葉のどちらか一方にだけ兆しがある |
stable | どちらにも兆しがない |
increase_possible | 事業の拡大や新サービスなど、増える兆しがある |
decrease_likely の条件に「両方」を入れているのが大事です。 数字だけ落ちている広告主は季節の動きかもしれず、言葉だけの広告主は雑談かもしれません。両方がそろったときだけ強く出すと、営業が最初に訪ねる数社が絞れます。
| させないこと | 理由 |
|---|---|
| 比や差の計算 | スクリプトが計算した値だけを使う |
| 減る金額の予測 | 金額を出すと、根拠のない数字が会議資料に載る |
| 連絡する順位の決定 | 重みの表で決める。理由を説明できるように |
| 値引きや条件の提案 | 取引条件は部長が決める |
| メモに無い事情の推測 | 「おそらく業績が悪い」と書かせない |
2行目の「金額を出さない」は、意図して外しています。 「来月は約30%減る見込み」と書かせると、その数字だけが独り歩きします。この構成が出すのは「減りそうかどうか」と「なぜそう見えるか」までです。
指示内容を固定する
あなたは広告代理店の営業部で、既存の広告主の出稿の見込みを整理する立場です。
渡された数字の兆しと、打ち合わせのメモだけを根拠にしてください。推測で補わないでください。
【1. 言葉の兆しを拾う】
メモから、出稿の減少につながる記述を次の種類で拾ってください。
- budget ........ 広告費・予算を減らす、見直すという記述
- contact_change 先方の担当者や決裁者が代わる、代わったという記述
- competitor .... 他社の提案やコンペの記述
- inhouse ....... 運用を社内で行う検討の記述
- dissatisfaction 成果や単価への不満の記述
- business_change 事業の縮小・停止・拡大の記述
次のものは拾わないでください。
- 「予算内で」のように、予算の枠に触れただけの記述
- 先方の休暇や一時的な不在
- 業界一般や景気の話題
拾った兆しごとに、根拠にしたメモの文を一字も変えずに quote に写し、そのメモの日付を書いてください。
根拠の文が無い兆しは書かないでください。
【2. 見込みを選ぶ】
- decrease_likely ... 数字の兆しと言葉の兆しの両方がある
- watch ............. どちらか一方だけがある
- stable ............ どちらも無い
- increase_possible . 事業の拡大など、増える兆しがある
迷ったときは watch を選んでください。
reason には、どの数字の兆しと、どの言葉の兆しを見たかを書いてください。
【3. 提案の案(decrease_likely と watch のときだけ)】
拾った兆しに対応する提案の切り口を2〜3個、各80字以内で書いてください。
- 渡された数字と、メモに書かれた先方の関心だけを使ってください。
- 成果の保証、値引き、条件の変更は書かないでください。
- 各案に、どの兆しに対応するかを書いてください。
【厳守事項】
- 数字の計算をしないでください。渡された値をそのまま使ってください。
- 減る金額や割合を予測しないでください。
- メモに書かれていない先方の事情を推測しないでください。
- メモが業務の連絡だけで兆しが無い場合は、signals を空にしてください。
【数字の兆し】{numeric_signals}
【広告主の情報】{client_profile}
【直近90日のメモ(新しい順)】{notes}
以上を読んだうえで、この広告主について指定の形式で返してください。
質問を最後に置いているのは、長い入力のときにそのほうが性能が上がると案内されているためです。 メモが数十件ある広告主では、指示を先頭だけに置くと、最後のほうのメモを読んだところで指示が薄れます。
「一字も変えずに写す」を明記しないと、根拠の文が要約されます。 要約された文は、メモの本文と突き合わせても見つかりません。後段の検証が成り立つのは、原文のまま写させているからです。
出力形式を固定する
次の形のJSONで受け取ります。
{
"client_code": "C-0142",
"signals": [
{ "type": "budget | contact_change | competitor | inhouse | dissatisfaction | business_change",
"quote": "", "note_date": "2026-08-21" }
],
"outlook": "decrease_likely | watch | stable | increase_possible",
"reason": "",
"proposals": [
{ "angle": "", "for_signal": "budget" }
],
"insufficient_notes": false
}
1つ目の理由は、quote をスクリプトで検証できることです。 quote の文字列がそのメモの本文にそのまま含まれているかを確かめ、含まれていない兆しは捨ててログに残します。
2つ目は、type と outlook を決まった語に限れることです。 構造化出力の enum で選択肢を固定すると、「予算の話」「予算関連」のような表記ゆれが出ず、そのまま重みの表で点数に変えられます。
3つ目は、点数を付ける層を分けられることです。 AIが返すのは兆しと見込みまでで、点数はスクリプトが次の表で付けます。
| 材料 | 点数の例 |
|---|---|
| 数字の兆し(出稿額の減り) | 3 |
| 数字の兆し(前年同月との差) | 2 |
| 数字の兆し(反響の悪化) | 2 |
| 数字の兆し(接点の減り) | 1 |
| 数字の兆し(区切りが近い) | 2 |
言葉の兆し budget / inhouse / business_change | 各3 |
言葉の兆し contact_change / competitor | 各2 |
言葉の兆し dissatisfaction | 1 |
点数に直近3か月の平均出稿額の区分(大口・中口・小口)を掛け、連絡する順を決めます。 同じ点数なら、減ったときの影響が大きい広告主が上に来ます。重みは部長が決めるもので、この表は最初の仮の値です。
見直し一覧のスプレッドシートには、次の列を並べます。
| 列 | 中身 |
|---|---|
| 順位 | 点数 × 規模の区分で並べた順 |
| 広告主 | 名称と担当の営業 |
| 見込み | outlook を日本語にしたもの |
| 数字の兆し | 印の付いたものと、その値 |
| 言葉の兆し | 種類、根拠の文、メモの日付 |
| 提案の案 | 2〜3個 |
| 営業の判断 | 営業が入れる欄(同意/修正/対象外)と理由 |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 発注・請求のデータ | ドライブに置かれたCSVの読み取り | 出稿額を広告主 × 媒体 × 月で取る |
| 月次レポート | スプレッドシートの読み取り | 反響の件数と獲得単価 |
| 営業支援システム | API または定期の書き出し | 直近90日のメモ |
| Gemini API | Apps Script からの呼び出し | 兆し・見込み・提案の案を構造化出力で返す |
| 見直し一覧 | スプレッドシートへの書き込み | 担当ごとの一覧と、営業が入れる欄 |
書き込むのは見直し一覧だけです。 営業支援システムにも、発注・請求のデータにも書き込みません。API キーはスクリプトのプロパティに置き、コードに直接書きません。
人が確認する
全件を営業が確かめます。ただし、見る深さを分けます。
decrease_likelyは根拠の文まで読む … メモの日付と文を読み、そのとき先方がどんな文脈で言ったのかを思い出して、見込みに同意するか直しますwatchは兆しの種類だけ見る … 自分の知っている事情で説明がつくなら「対象外」とし、理由を一言残しますstableとincrease_possibleは流し見る … 知っている事情と食い違うものだけを直します- 営業会議で部長が上位を決める … 点数の上位と、営業が「修正」とした広告主を並べ、訪ねる順を決めます
1番目の「文脈を思い出す」が、人にしかできない部分です。 「来期は予算を見直す」は、減らす話のこともあれば、増やすために見直す話のこともあります。 メモの一文だけでは分からず、その場にいた営業だけが知っています。
営業の判断の欄は必須にします。 空欄のまま会議に出すと、AIの見込みがそのまま会議の結論になります。同意でも修正でも、人が一度判断したという記録を残します。
目標は、240社をならして1社5分です。 decrease_likely の数社は10分以上かけて読み、stable の大半は1分かかりません。
例外に対処する
| 起きること | 対応 |
|---|---|
| 前月の出稿額がまだ確定していない | その広告主を「未確定」とし、確定後に再実行する |
| 広告主コードが突き合わない | 「未対応」に分け、広告主マスタの担当者に回す |
| 90日間メモが無い | AIに渡さず「接点なし」の印。それ自体を兆しとして一覧に載せる |
| メモが短く判断材料が足りない | insufficient_notes を true にさせ、見込みは watch にとどめる |
quote がメモの本文に無い | その兆しを捨て、ログに残す。同じことが続けば指示を直す |
| 応答が決まった形で返らない | 1回だけやり直し、だめなら「要手作業」に回す |
| 6分の実行時間を超える | 処理を止めて位置を残し、続きのトリガーで再開する |
| 新規の広告主(取引3か月未満) | 前年同月との比が出せないため、数字の兆しは直近の比だけで見る |
| 季節の大型キャンペーンの翌月 | 前年同月との比で判断し、前月比の兆しは付けない |
3行目を「兆し」として扱うのが大事です。 メモが無いことは材料が無いことですが、営業が90日話していない広告主は、それだけで減りやすい相手です。 AIに渡さずに、一覧からも消してしまわないようにします。
記録を残す
- 実行した日時と、使った出稿額・反響・メモの取り出し日時
- 広告主ごとの数字の兆しの値と、印の有無
- AIに渡した入力(置き換え後のメモ)と、返ってきたJSONの全文
- 捨てた兆し(
quoteがメモに無かったもの) - そのとき使った重みの表と、付いた点数・順位
- 営業の判断(同意/修正/対象外)と理由
- 翌月の実際の出稿額と、前月の見込みとの突き合わせ
最後の行が、この構成を続けるための記録です。 毎月、前月に decrease_likely と出た広告主のうち実際に減った割合と、stable と出たのに減った広告主の数を数えます。兆しの種類ごとにも数えると、当たらない兆しが分かります。 たとえば dissatisfaction が出た広告主がほとんど減っていないなら、重みを下げます。
営業の判断も同じ表に並べ、AIと営業のどちらが当たったかも数えます。
04実装レベルの3段階
最小構成では240社を回せません。 1社ずつ貼り付けるので、確かめるための段階です。 半自動化で、1社15分が8分程度になります。 数字を並べる作業とメモを読む作業は自動になりますが、順位を付ける作業と提案の案を考える作業が残ります。本格構成で5分になり、この段階が本記事の想定です。 差が出るのは、点数での並べ替えと提案の案があると、営業が一覧を見て判断するだけで済むからです。 本格構成に進む前に、半自動化で3か月回してください。 3か月分の答え合わせがあれば、どの兆しが当たりやすいかが分かり、重みの表を仮の値から自社の値に直せます。 重みを直さないまま順位を出すと、会議で「なぜこの広告主が上なのか」を説明できません。
05工数削減シミュレーション
導入後 240件 × 5分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 既存の広告主を営業1人あたり20社前後持ち、毎月の出稿額の変化を担当者の感覚で追っている広告代理店。出稿額は請求・発注のデータに、打ち合わせの内容は営業支援システムのメモに残っているが、両方を並べて見る時間がない場合。減額や停止の連絡を受けてから動くことが多く、先に手を打てた例が少ない場合。
- 広告主が数社に限られ、担当者が毎週すべての広告主と話している場合。やり取りの記録がほとんど残っておらず、出稿額の数字しか材料がない場合(数字だけなら集計表で足ります)。出稿の大半が年1回の大型キャンペーンで、月ごとの増減に意味がない場合。なお、どの広告主にどんな提案をするかの判断と、値引きなどの条件の決定は、この構成では代替できません。
07最小構成で試す方法
- 半年前の時点に戻り、その月に担当していた広告主から20社を選ぶ(うち数社は、その後実際に出稿を減らした広告主を入れる)
- 20社について、半年前までの13か月の出稿額と、その時点の直近90日のメモを書き出す
- 手元のAIサービスの画面に、1社ずつ数字の表とメモを貼り付ける
- 「このメモから、予算・担当者・競合・内製・成果への不満・事業の変化についての記述を、原文のまま写して拾ってください。数字の変化とあわせて、翌月から3か月以内に出稿が減りそうかを、減りそう/要注意/変化なし/増えそう から選び、理由を書いてください。金額は予測しないでください」と指示する
- 出てきた見込みを、その後の実際の出稿額と突き合わせる
過去の時点で試すのが大事です。 いまの広告主で試すと、当たったかどうかが分かるまで数か月待つことになります。半年前に戻れば、答えはもう出ています。
| 出てきた内容 | 判断 |
|---|---|
| 実際に減った広告主の多くが「減りそう」か「要注意」に入った | データの取り出しと自動化に進む |
| 原文ではなく要約で写してきた | 指示の書き方で直る。構成は有効 |
| メモに兆しの記述がほとんど無かった | メモの書き方が先。 AIの問題ではない |
3行目はよく起きます。 その場合は、メモの項目に「先方の予算・体制・他社の動き」の欄を足してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 「予算」という語が出るたびに兆しになる | 拾わない例を指示に入れる。 予算の枠に触れただけの記述は拾わせない |
| 根拠の文が要約されて返る | 原文のまま写すよう指示し、メモの本文に含まれるかをスクリプトで確かめる |
| 毎年同じ月に「減りそう」と出る | 前年同月との比で見る。前月比だけで印を付けない |
| 事業部ごとに別の広告主になる | 名前ではなく広告主コードで突き合わせる |
| AIに比を計算させて値が揺れる | 数字の兆しはスクリプトで計算して渡す |
| 減る金額が会議資料に載る | 金額を出させない。見込みは4つの区分まで |
| 確定前の出稿額で予測する | 月初2営業日目以降に動かす |
| 240社が6分で終わらない | 30社ずつに分け、位置を残して続きのトリガーで再開する |
| 担当の異動でトリガーが止まる | 部署の専用アカウントで作る |
| 営業が一覧を見なくなる | 営業の判断の欄を必須にし、当たり外れを毎月会議で共有する |
| 重みが仮の値のまま | 3か月分の答え合わせで直す |
| メモに兆しの材料が無い | メモの書き方を先に直す。先方の予算・体制・他社の動きの欄を足す |
上の2行が、この構成の失敗のほとんどです。 どちらも「AIが拾った兆しを、そのまま信じる」ところから起きます。拾わない例と、原文との突き合わせの2つがあれば、一覧に載る兆しは営業が根拠を確かめられるものだけになります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 広告主ごとの出稿額と反響の件数、打ち合わせのメモ(先方の予算や体制、他社の動きについての話)、担当の営業の名前です。
- 先方の担当者の氏名を渡さない … 兆しを拾うのに氏名は要りません。前処理で置き換えてから渡します
- 広告主の出稿額を、担当外の営業に見せない範囲を決める … 一覧は全員が見られる場所に置きがちです。大口の広告主の出稿額を誰が見てよいかを、先に部長と決めておきます
- 見込みを先方に見せない … 「減りそう」という見込みは社内の判断材料です。提案資料に見込みや兆しの文をそのまま貼らないようにします
- この構成は取引条件の判断を代替しません … 値引きや条件の変更を提案するかどうかは、部長が決めることです。 AIの提案の案には条件を書かせません
- 予測を人事評価に使わない … 担当の広告主に
decrease_likelyが多いことは、その営業の成績ではありません。兆しを早く見つけるための一覧を、評価の材料にすると、営業がメモを書かなくなります - 利用規約とデータの扱いを確かめる … 入力したデータがどう扱われるかは、利用する契約と規約で決まります。広告主の取引情報を渡す前に、自社が使う Gemini API の契約の規約を確かめてください
誤りが起きた場合のリスクは、減りそうな広告主を見落とすことと、減らない広告主に余計な提案をすることの2つです。 前者は watch を stable に寄せると起き、後者は言葉の兆しを拾いすぎると起きます。迷ったら watch に寄せ、判断を営業に渡す作りで、両方を人の確認の範囲に収めます。
10まず何から始めるか
1週目:広告主コードと2つの列をそろえる
広告主マスタに、決算月と契約の区切りの月の列を足します。発注・請求のデータ、月次レポート、営業支援システムの広告主が、同じ広告主コードで引けるかを確かめます。引けない広告主の一覧を作るだけで、1週目は終わります。
2週目:半年前の20社で試す
半年前の時点のデータで、20社を手元のAIサービスに貼り付けて試します。その後に実際に減った広告主が「減りそう」か「要注意」に入ったか、根拠の文が原文のまま写されているかを最優先で見ます。
3週目:数字の兆しの条件と重みの仮の値を決める
部長と、どの数字の変化を兆しとするか、どの兆しを重く見るかを決めます。 ここが決まらないうちに組むと、一覧は出るのに会議で使われません。
4週目:数字の計算とAIの呼び出しをつなぐ
Apps Script で3つのデータを取り込み、数字の兆しを計算し、Gemini API を呼んで一覧に書き出すところまで作ります。この時点では順位を付けず、兆しと見込みの一覧だけを営業に見てもらいます。
2か月目: 重みの表での順位付けと提案の案を足し、営業会議で使い始めます。営業の判断の欄を必須にします。3か月目以降: 翌月の答え合わせを回し、1社15分が何分になったかを実測します。3か月分の当たり外れで重みの表を自社の値に直した時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
構造化出力で JSON Schema に沿った応答を返させられ、抽出・分類・エージェント型の処理に向くこと。文字列の enum、required、配列の件数の指定などが使えること。すべての JSON Schema の機能には対応せず、大きく深いスキーマは拒否されうること。出力が文法として正しいJSONでも、値はアプリケーションで検証するよう求めていること | Google AI for Developers: Structured outputs | 2026-09-30 |
| Gemini が100万トークンの入力を受け取れること。長い入力では質問をプロンプトの最後に置くと性能が上がること。繰り返し使う入力をキャッシュする仕組みがあること | Google AI for Developers: Long context | 2026-09-30 |
| 時間主導型トリガーが毎分から月1回までの間隔で動かせ、実行時刻が指定から1時間のあいだでずれうること。インストール型のトリガーが作った人のアカウントで動くこと | Google for Developers: Installable triggers | 2026-09-30 |
| 1回の実行が6分まで。URL呼び出しが1日2万回(一般)/10万回(Google Workspace)。トリガーの合計実行時間が1日90分(一般)/6時間(Google Workspace) | Google for Developers: Quotas for Google Services | 2026-09-30 |
営業支援システムからメモを取り出す方法は、利用している製品によって異なります。 本記事では個別の製品の仕様を確かめていないため、API または定期の書き出しで取得する構成を想定しています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0398)についてのご相談はこちらから。
