広告代理店の運用担当が、広告コピーと運用レポートをAIで半分の時間で出す方法
コピー案出しと月次レポートに追われる広告代理店の運用担当へ。Claude Codeで下書きを量産し、人が最終判断する分担と、そのまま使えるプロンプト雛形・検証スクリプトを公開します。
金曜の夕方、僕が広告代理店で運用を手伝っていた頃の話です。
担当クライアントは8社。月初は全社の月次レポートが一斉に締め切りを迎えます。CTRが落ちた理由を書き、来月の打ち手を提案し、ついでに新しいバナーのコピーも10案出す。1社あたり2時間として、8社で16時間。これを「数字を眺めながら言葉をひねり出す」手作業でやっていました。
ある月、寝不足のまま出したレポートで、僕は前月の数字をそのままコピペしていたことに気づきませんでした。クライアントの定例会議で「これ、先月と同じグラフでは?」と指摘されて、血の気が引いた。コピーのネタも枯れていて、似たような「今だけ!」「お得!」を毎月使い回していました。
問題は能力ではなく、時間の配分でした。数字の転記やコピーの初稿みたいな「考えなくてもいい作業」に時間を取られて、肝心の「で、来月どうするか」を考える余白がなかった。Claude Codeを運用フローに組み込んでから、ここが大きく変わりました。今日はその分担のしかたを、広告代理店の現場に寄せて書きます。
この記事の要点
- 広告代理店の運用担当の消耗は「コピー初稿」と「月次レポートの定型部分」に集中する。ここはAIに任せ、人は方針判断に時間を回す。
- コピー案出し・レポート下書き・配信前チェックの3つで、そのまま貼って使えるプロンプト雛形を用意した。
- 「AIが書く範囲」と「人が必ず決める範囲」を線引きしないと、薬機法違反や数字の捏造で事故る。線引き表を載せた。
- CSVの数字をMarkdownレポート骨子に変換する検証スクリプトを置いた。コピペで動く。
- 個人情報とクライアントの非公開数字を外に出さないための、最低限の運用ルールも書いた。
広告代理店の運用担当は、何に時間を溶かしているか
まず読者像をはっきりさせます。この記事が想定するのは、運用型広告(リスティング、ディスプレイ、SNS広告)を複数クライアント分まわしている代理店の担当者です。1人で5〜10社、媒体はGoogle、Yahoo、Meta、最近はTikTokも、という人。
その人の1か月は、ざっくりこう流れます。
- 月初: 前月の数字を各媒体の管理画面からエクスポートし、月次レポートを作る
- 中旬: レポートの提案に沿って入札やクリエイティブを調整、新規バナーやテキスト広告のコピー案を出す
- 随時: クライアントからの「この訴求でいけますか」「来週のセール用に5案ください」に対応
- 月末: 着地見込みを計算し、来月の予算配分を提案
このうち、頭を使うべきは「数字をどう解釈し、何を打ち手にするか」です。ところが実際に時間を食うのは、その手前の作業でした。
- 媒体ごとにバラバラなCSVを、同じ表の形に整える
- 「CTRが0.8%から1.1%に改善」みたいな事実の文章化
- コピーの初稿(最終的にはほぼ書き直すのに、ゼロから1案目を出すのがしんどい)
この「考えなくてもいいのに時間がかかる」層が、運用担当の体力を削っています。Claude Codeに任せるのは、まさにこの層です。
Use case 1: 広告コピーの初稿を量産し、人が訴求を選ぶ
コピーは、ゼロから書くのがいちばん重い。だから僕は「初稿を10案出す」をAIに任せ、自分は「どの方向で攻めるか」の選別に回ります。
下のプロンプトは、媒体の文字数制限を守りながら案を出させる雛形です。クライアント名や商材は伏字にしておき、あとで差し替えます。
あなたは広告代理店のコピーライターです。以下の条件でリスティング広告の見出し案を10個出してください。
# 商材
40代女性向けの基礎化粧品(保湿クリーム)。乾燥による小じわが気になる層がターゲット。
# 制約
- 見出し1つあたり全角15文字以内(半角は0.5文字で計算)
- 「No.1」「絶対」「必ず」など根拠が必要な表現は使わない
- 効果を断定する医学的・薬機法に触れる表現(「シミが消える」等)は禁止
- 10案を「悩み訴求/ベネフィット訴求/限定訴求」の3タイプに分けて提示
# 出力形式
タイプ | 見出し案 | 文字数(全角換算)
ポイントは制約を細かく書くことです。「薬機法に触れない」「文字数を数えて表で出す」まで指示すると、後工程の修正が減ります。10案のうち実際に使えるのは2〜3案ですが、ゼロから絞り出す苦しさに比べれば段違いに楽です。
クライアントや商材ごとに条件だけ差し替えれば使い回せます。よく使う訴求の型(悩み・ベネフィット・限定・社会的証明・季節)をプロンプトに固定しておくと、案の偏りも減ります。
Use case 2: 月次レポートの定型部分を下書きさせる
月次レポートは、構成の8割が毎月同じです。サマリー、媒体別の実績、前月比、来月の提案。ここを毎回手で書くのは時間の無駄でした。
僕は数字をCSVで渡し、「事実の記述」だけAIに書かせます。解釈と提案は自分で上書きします。プロンプトはこうです。
あなたは広告運用のアナリストです。添付のCSV(媒体別の月次実績)をもとに、月次レポートのドラフトを作ってください。
# ルール
- CSVにある数字だけを使う。CSVにない数字を推測で書かない。
- 「前月比」は CSV の前月列と当月列から計算し、計算根拠を括弧で添える。
- 良かった点・悪かった点を媒体ごとに1行ずつ。
- 「来月の提案」は3つまで。ただし提案は仮置きとし、文末に「(要・運用者確認)」と付ける。
# 出力構成
## 今月のサマリー
## 媒体別実績(表)
## 前月比でのトピック
## 来月の提案(要確認)
「CSVにない数字を書くな」という一文が効きます。これがないと、AIはそれっぽい数字を創作します。冒頭で僕がやらかした「前月の数字を流用」の逆で、今度はAIが架空の数字を埋める。だから根拠の明示を強制します。
提案部分に「(要・運用者確認)」を付けさせるのも意図的です。AIの提案はあくまで叩き台で、最終判断は人がする、という線をレポート上でも見える化しておく。
Use case 3: 配信前のセルフチェックを機械にやらせる
入稿直前のチェックは、目視だと必ず漏れます。文字数オーバー、URLの末尾パラメータ忘れ、薬機法に触れる表現。これをチェックリスト化してAIに走らせます。
| チェック項目 | 確認内容 | 誰が最終判断するか |
|---|---|---|
| 文字数 | 各媒体の上限を超えていないか | AIが検出、人が確認 |
| 禁止表現 | 「必ず」「No.1」など根拠が要る語 | AIが検出、人が判断 |
| 薬機法・景表法 | 効果の断定、優良誤認 | AIが一次検出、人が最終判断 |
| リンク先 | URLとパラメータが正しいか | 人が必ず確認 |
| 数字の整合 | レポートの数字と管理画面が一致 | 人が必ず確認 |
このチェックリストをそのままプロンプトに貼り、「以下の広告文を各項目で点検し、引っかかった箇所を理由つきで指摘して」と頼みます。AIは見落としを拾うのが得意です。ただし薬機法やリンク先のような責任が重い項目は、AIの指摘を参考にしつつ最終判断は人がやる。ここは絶対に丸投げしません。
AIに任せる範囲と、人が必ず判断する範囲
線引きをはっきりさせます。これが曖昧だと、便利さと引き換えに事故ります。
| 工程 | AIに任せる | 人が必ず判断する |
|---|---|---|
| コピー作成 | 初稿の案出し、文字数調整、表現の言い換え | どの訴求で攻めるか、ブランドの世界観に合うか |
| レポート | 事実の文章化、前月比の計算、構成の下書き | 数字の解釈、来月の打ち手、予算配分 |
| 配信前チェック | 文字数・禁止語の一次検出 | 薬機法・景表法の最終判断、リンク先 |
| クライアント対応 | 返信文の下書き | 約束・見積もり・謝罪の最終文面 |
判断の重さで分けています。やり直しがきく作業はAIに、責任が発生する判断は人に。広告は法規制(薬機法、景品表示法)と直結するので、最終的に名前を出して責任を負う人間がチェックする工程を必ず残します。
数字をレポート骨子に変換する検証スクリプト
「CSVを渡してプロンプトで」と書きましたが、媒体別CSVを手で整えるのも手間です。最低限の前処理として、CSVを読んで前月比つきのMarkdown表に変換する小さなスクリプトを置いておきます。Node.jsだけで動きます。AIに渡す前に、数字の土台を機械で固めておく発想です。
import { readFileSync } from "node:fs";
// 使い方: node report.mjs data.csv
// CSVの想定列: media,impressions,clicks,cost,prev_cost
const file = process.argv[2] || "data.csv";
const rows = readFileSync(file, "utf8")
.trim()
.split("\n")
.slice(1) // ヘッダー行を捨てる
.map((line) => line.split(","));
function ctr(clicks, imp) {
if (Number(imp) === 0) return "0.00";
return ((Number(clicks) / Number(imp)) * 100).toFixed(2);
}
function diff(now, prev) {
const n = Number(now);
const p = Number(prev);
if (p === 0) return "—";
const rate = (((n - p) / p) * 100).toFixed(1);
return (rate >= 0 ? "+" : "") + rate + "%";
}
console.log("| 媒体 | 表示回数 | クリック | CTR | 費用 | 前月比(費用) |");
console.log("| --- | --- | --- | --- | --- | --- |");
for (const [media, imp, clicks, cost, prevCost] of rows) {
console.log(
`| ${media} | ${imp} | ${clicks} | ${ctr(clicks, imp)}% | ${cost}円 | ${diff(cost, prevCost)} |`
);
}
実行はこれだけです。
node report.mjs data.csv
出てくるのは、媒体ごとのCTRと前月比を計算済みのMarkdown表です。これをそのままUse case 2のプロンプトに貼れば、AIは「計算」ではなく「文章化」に専念できます。計算は機械、解釈は人、文章化はAI。役割を分けると、それぞれが得意なところだけを担当できます。
CSVの列名は自分の媒体に合わせて変えてください。Metaなら「reach」、TikTokなら独自の指標が増えますが、ctr や diff のような小さい関数を足すだけで対応できます。
導入前と導入後で、何がどう変わったか
数字で書きます。僕が実際に手を動かしていた範囲の、ざっくりした目安です。
- 月次レポート1社分: 約2時間 → 約45分。事実の記述と表をAIに任せ、僕は解釈と提案に集中。
- コピー初稿10案: 約40分 → 約10分。案出しをAIに、選別と仕上げを僕が。
- 8社まわすと、レポートだけで月10時間前後の短縮。
ざっくりROIの目安です。運用担当の時給を仮に3,000円とすると、月10時間で3万円分の工数。クライアントが8社なら、その分を提案の質や新規対応に回せます。Claude CodeのAPIや利用料は、この工数削減に対しては十分に元が取れる水準でした。もちろん最初はプロンプトの調整に時間を使うので、効果が出るのは2〜3か月目からです。
変わったのは時間だけではありません。「考える余白」が戻ったことで、月次会議で出す提案の質が上がりました。冒頭の「先月と同じグラフ」みたいな事故も、機械チェックを挟むようになって消えました。
セキュリティと個人情報の注意点
広告代理店は、クライアントの売上や非公開のCV数、ときには顧客リストを扱います。ここをAIにどう渡すかは、慎重に決める必要があります。
- クライアントの実名・非公開数字は、可能なかぎり伏字で渡す。 商材は「40代女性向けの基礎化粧品」のように抽象化し、社名は「A社」に置き換える。
- 顧客の個人情報(メール、電話、住所)は絶対にプロンプトに貼らない。 コピーやレポートの作成に個人情報は不要です。
- 契約で外部AIの利用が制限されていないか確認する。 クライアントによっては、データの外部送信を禁じている場合があります。事前にNDAと利用規約を確認します。
- 生成物は必ず人がレビューしてから世に出す。 AIの出力をそのまま入稿しない。これはセキュリティというより事故防止の鉄則です。
社内ルールとして「AIに渡してよい情報」「渡してはいけない情報」のリストを1枚作っておくと、担当者ごとのブレが消えます。Claude Codeのプロジェクト設定にこのルールを書き込んでおく方法は、CLAUDE.mdのベストプラクティスにまとめてあります。チームで使うなら先に読んでおくと事故が減ります。
なお、Claude Codeをそもそも触ったことがない運用担当者は、まずClaude Code入門ガイドで環境を整えてから戻ってくると、上のプロンプトがすぐ試せます。
よくある質問
Q. AIが書いたコピー、そのまま使って大丈夫ですか? A. 初稿としてはよいですが、そのまま入稿はしないでください。特に薬機法・景品表示法に触れる業種(化粧品、健康食品、医療)は、人の最終チェックが必須です。AIは禁止表現の一次検出は得意ですが、最終判断の責任は負えません。
Q. 数字を間違えて報告したら誰の責任ですか? A. AIに数字を計算させた場合でも、責任は提出した人にあります。だからこの記事では計算を機械(スクリプト)に固定し、AIには「CSVにない数字を書くな」と縛っています。レポートの数字は管理画面と突き合わせてから出してください。
Q. プロンプトを書くのが苦手です。最初の一歩は? A. まずUse case 2のレポート下書きから始めるのがおすすめです。構成が毎月同じなので、効果を実感しやすい。プロンプトの組み立て方そのものはプロンプトエンジニアリング応用で具体例つきで解説しています。
Q. クライアントにAIを使っていると言うべきですか? A. 契約次第ですが、隠す必要はないと考えます。「下書きにAIを使い、最終判断は人がする」体制はむしろ品質管理として説明しやすい。ただし非公開データの扱いは事前に合意を取っておくと安心です。
Q. 小さい代理店でも費用対効果はありますか? A. 1人で複数社をまわす小規模ほど効果が出ます。人手が少ない分、定型作業の削減がそのまま余力になるからです。月数社でも、レポートとコピーの初稿だけで数時間は浮きます。
実際に試した結果
この記事を書くにあたって、自分のサイト運用で使っている架空のクライアント8社分のダミーCSVを作り、上のスクリプトとプロンプトを通しで動かしました。
report.mjs は、表示回数が0の媒体でゼロ除算を起こさないかだけ不安でしたが、ctr 関数のガードで「0.00」が返り、表は崩れませんでした。前月比も、前月データがない新規媒体では「—」を返すようにしてあり、ここも想定どおりでした。
レポートのプロンプトは、最初「CSVにない数字を書くな」の一文を抜いて試したら、AIは平気で「コンバージョン率が改善傾向」と、CSVにない指標を創作しました。一文を足したらピタリと止まり、CSVの列だけで書くようになりました。コピーのプロンプトは、文字数を表で出させると数え間違いが減るのを確認しました。全角15文字の指定に対し、たまに16文字の案が混じりますが、表で文字数が見えるので人が即座に弾けます。
結論として、僕がいちばん効果を感じたのは時間短縮よりも「考える余白が戻ったこと」でした。定型作業を手放すと、肝心の「来月どうするか」に頭を使えます。広告代理店の仕事の価値はそこにあると、改めて思いました。チーム単位で運用フローに組み込みたい場合は、研修・相談で導入手順から一緒に設計できます。まず個人で試したい人は教材・無料PDFから始めてください。
媒体ごとの正式な文字数上限や禁止表現は変わることがあるので、最終的にはGoogle広告の公式ポリシーなど一次情報を確認してください。
無料PDF: Claude Code はじめてのチートシート
まずは無料PDFで基本コマンドと最初の使い方をまとめて確認してください。登録後はそのままテンプレート集や導入相談にも進めます。
スパムは送りません。登録情報は厳重に管理します。
Claude Codeを仕事で使える形にしませんか?
まず無料PDFで基本を固め、繰り返し使う作業はGumroad教材へ、チーム導入や権限設計は導入相談へ進めます。
この記事を書いた人
Masa
Claude Codeの実務活用、導入設計、収益導線改善を検証しているエンジニア。10言語の技術メディアを運営中。
関連書籍・参考図書
この記事のテーマに関連する書籍を楽天ブックスで探せます。
※ 当サイトは楽天市場のアフィリエイトプログラムに参加しています。上記リンクから商品をご購入いただくと、運営者に紹介料が支払われる場合があります。
関連記事
制作会社がClaude Codeに触らせる前に決める権限チェックリスト
クライアントサイトを壊さずにAI編集を使うための、制作会社向け権限と確認の型です。
SaaSサポートのバグ報告をClaude Codeで再現手順に変える実務フロー
問い合わせ文をそのまま開発へ投げず、再現手順、証拠、次の一手に整えるサポート向け手順です。
Obsidianの古いメモをClaude Codeの指示書に変える10分ルーチン
Obsidianに溜めたメモが毎回ゴミになる人へ。事実・決定・未確認に仕分けして、Claude Codeがそのまま動ける指示書に変える朝の10分の型を紹介します。