広告の訴求軸をレビュー統計で決める
haldata.net/mcp-dir/ の組み合わせレシピ「広告の訴求軸をレビュー統計で決める」の実行版。 流れは3段。事実で絞る(Google Ads)→ 理由を読む(TrendViewer)→ 行動に落とす(見出し案)。
なぜこの順か。広告文の訴求は「美味しい」「高品質」のような常套句になりがちで、それが本当に買う理由かは誰も確かめていない。レビュー統計には「買った人が何を理由に選び、何に満足し、何に不満を持ったか」が件数と率で出ている。CTR の低い広告グループにだけ、その根拠のある言葉を当てるのがこのスキル。
前提
| 必要なもの | 用途 | 無いとき |
|---|---|---|
Google Ads MCP(Google公式 google-ads-mcp=GAQL、または同等の読み取りMCP) |
広告グループ・検索語の成果、既存の見出し | 進められない |
| TrendViewer MCP | 観点別の言及数・肯定率・否定率・購買動機率 | 進められない |
| Google Ads の書き込み(任意) | 見出し案を広告として登録 | 省略可。案の提示で終える |
所要時間の目安:TrendViewer に対象カテゴリの分析があれば データ取得5分+見出し作成とレポート5分(HALDATA の検証は8.5分)。無ければ新規作成に約2時間の待ち。
このスキルは EC の商品広告を前提にしている。自社サービスなど商品でない広告に使うときは、観点をどう読み替えたかの表をレポートの注意欄に入れる。
ツールの正確な引数は references/tools.md。Google Ads MCP は公式(GAQL)と HALDATA 自作版で取れる粒度が違うので必ず参照する。
Step 0. 入力を確定する
- Google Ads の
customer_id(ハイフン無し10桁)と、対象キャンペーン(名前または ID) - 広告が売っている商品のカテゴリ名と、分かれば JAN/ASIN
- 見出し案を Google Ads に登録するか(既定:しない。案の提示まで)
期間は既定で 直近30日、終了日は前日(Google Ads は当日分が未確定)。
書き込み先の確認:customer_id は必ずユーザーに明示させ、list_accessible_customers(公式)または list_campaigns(自作版)で返るキャンペーン名がユーザーの想定と一致するか突き合わせてから進む。MCP の既定アカウントに任せない(別アカウントに書いてしまう事故が実際に起きている)。
Step 1. 事実で絞る(Google Ads)
1-a. 成果の取得
公式 MCP なら GAQL を1本(references/tools.md に全文)。ad_group 単位で impressions, clicks, ctr, conversions, cost_micros を直近30日で取る。検索語まで見るなら search_term_view を同じ期間で取る。
自作版なら list_ad_groups → get_campaign_performance(キャンペーン単位)で代用し、レポートに「広告グループ単位の CTR は取れないためキャンペーン単位」と書く。
1-b. 低CTR の絞り込み
| 条件 | 既定 | 理由 |
|---|---|---|
| 表示回数の下限 | 500 | 500未満は CTR が1クリックで動く |
| 低CTR の閾値 | 1.0% 未満 | 検索広告の平均は 3〜5%。1% 未満は「検索意図と訴求が合っていない」 |
| 採用件数 | 上位3広告グループ(表示回数の多い順) | 一度に直せる量 |
1% 未満が無ければ、CTR の低い順に3件とし「閾値未達のため下位3件」と書く。コンバージョンが取れていれば「CTR は普通だがCVが0」も第2軸で拾う。
広告グループ単位の CTR が取れない MCP(自作版)のとき:キャンペーンの CTR で判定し、そのキャンペーンの広告グループを最大3つ(登録キーワード数の多い順)まとめて対象にする。レポートには「キャンペーン単位で判定」と書く。
1-c. 既存の訴求を控える
公式 MCP なら ad_group_ad の responsive_search_ad.headlines で見出しを取る。取れない MCP のときは、ユーザーに管理画面の見出しを貼ってもらう。貼れなければ「既存訴求との照合は省略」と書いて Step 3 で新規案だけ作る。
検索語が取れない MCP のときは、list_keywords の登録キーワード(quality_score > 0 のもの)を「主な検索語」の代わりに使い、そう書く。
Step 2. 理由を読む(TrendViewer)
list_analyses(state="complete") で対象カテゴリの分析を探す。無ければ submit_analysis(category={name, detail}、products か search_queries、mode="manual")で作り、約2時間待つ(ユーザーに伝えていったん止める。枠が無いエラーが出たら何を消すかはユーザーの判断)。
get_analysis_data(wldh_slug, include_per_sku=false, include_sub_viewpoints=false)→ 観点表(id, name, mention_count, positive_rate, negative_rate)。言及数は以後このmention_countで統一。任意の 3-e(文を読む)をやるならinclude_per_sku=trueにしてper_sku[].product_idも控えるget_review_insights(dataset_slug, dimension="motivation", group_by="viewpoint", min_count=30)→pm_rateとmeta.baseline_pm_rateget_review_insights(dataset_slug, dimension="context_3w", limit=8)→ 誰が・どこで・いつ。軸(who / where / when)ごとに、上位1語のcountが3未満ならその軸は使わない
観点を3種に分ける(既定値。ユーザーが変えられる):
| 種類 | 条件 | 広告での扱い |
|---|---|---|
| 訴求軸(使う) | pm_rate >= baseline × 1.2 かつ mention_count >= 30、または positive_rate >= 0.80 かつ mention_count >= 100 |
見出しの主語にする。動機率が高い順に上位3つ |
| 平凡(使わない) | 肯定率 60〜80% | 常套句になりやすい。既存見出しがここに寄っていたら指摘 |
| 地雷(触れない) | negative_rate >= 0.30 かつ mention_count >= 30 |
広告で触れると逆効果。商品改善に回す |
判定の優先順位:地雷 → 訴求軸 → 平凡 の順に当てはめ、最初に当たった種類にする(否定率が高ければ肯定率が高くても地雷。動機率か肯定率で訴求軸に入れば、肯定率が 60〜80% でも平凡にはしない)。
訴求軸の並び順:動機率が基準以上のものを動機率の高い順、その後に肯定率だけで入ったものを肯定率の高い順。上位3つを使い、4つ目以降は「訴求軸だが今回は使わない」と表に残す。3つ未満なら動機率の高い順に3つまで埋め、「基準未達」と印を付ける。
任意:get_review_sentences(dataset_slug, mall_product_id=<per_sku[].product_id>, viewpoint_id=<viewpoints[].id>, purchase_motivation="only", per_page=20) で動機の文を読み、言い回しの方向を掴む(mall_product_id が必須なので、やるなら 1. で per_sku を取っておく)。原文は写さない。 見出しはレビューの語彙をなぞらず、集計値を根拠に自分の言葉で書く。
Step 3. 行動に落とす(見出し案)
3-a. ギャップの指摘
既存見出しがあれば、各見出しがどの観点に当たるかを分類し、「訴求軸に当たる見出しが何本/平凡が何本/地雷に触れているものが何本」を表にする。無ければ省略。
3-b. 見出し案
低CTR の広告グループごとに、訴求軸3観点 × 5本 = 15本。レスポンシブ検索広告の制限に合わせる:
- 見出しは 半角30文字以内(全角は1文字を2と数える。全角だけなら15文字)。1本ずつ数えて「(半角換算 28)」のように併記する。数えるときは全角・半角混在で間違えやすいので、スクリプトで機械的に数える
- 説明文も作るなら 半角90文字以内(全角45文字)、観点ごとに1本
- 各観点の案の末尾に根拠1行:
根拠:観点「後味の良さ」肯定率78.0%・言及11,631件(動機率 x%/基準 y%) - 検索語が分かっていれば、検索語の語をどれか1本には含める(検索意図との一致が CTR を作る)
- 数字・比率をそのまま見出しに入れない(「肯定率78%」のような表現は広告審査と誤解の両面で避ける)。数字は根拠欄に置く
3-c. Google Ads への登録
- ユーザーが Step 0 で「登録する」と言い、案を見せて明示的に OK をもらってから
- 新しい広告として追加し、既存の広告は止めない・消さない。ステータスは 一時停止で作成し、有効化はユーザーが管理画面で行う(地域設定・入札を人が確認してから配信する)
- 公式 MCP は読み取り専用なので登録はできない。その旨を書く
出力フォーマット
# 広告訴求レポート({開始日}〜{終了日})
対象:アカウント {customer_id} / キャンペーン {name} / レビュー統計:{dataset}(言及 {total_mentions} 件)
## 1. 低CTR の広告グループ(Google Ads)
表:広告グループ / 表示回数 / クリック / CTR / CV / 費用 / 主な検索語
## 2. 訴求軸・平凡・地雷(TrendViewer)
表:観点 / 言及数 / 肯定率 / 否定率 / 動機率(基準 x%) / 種類
既存見出しの分類(あれば)
## 3. 見出し案
広告グループごとに:観点A 5本(文字数)/観点B 5本/観点C 5本 → 各根拠
## 4. 反映状況
登録済み(一時停止)/案のみ
## 5. 注意
期間・閾値変更・粒度(キャンペーン単位で代用等)・未接続・地雷観点の扱い
やらないこと
- レビュー原文を見出しやレポートに載せない
- 広告の有効化・既存広告の停止や削除・入札や予算の変更をしない(登録は一時停止まで)
- 集計値を見出しに数字として入れない
customer_idを確認せずに書き込まない
参照
references/tools.md— Google Ads(公式 GAQL/自作版)、TrendViewer の正確な呼び方examples/— HALDATA 自社データでの実行例