商略AI

AIで競合サイトを自動比較する機能を、外した理由

一次調査5分

「競合のサイトをAIに読ませて、うちとの違いを表にしてほしい」は、マーケティング支援のAIを作っていると必ず出てくる要望です。自分も作りました。2026年9月11日に戦略へ接続し、9月17日に施策生成の通常経路から外しました。

理由は費用ではありません。本番で確認できた範囲で、比較が1件も成立しなかったからです。

個人開発でマーケティング支援SaaS「商略AI」( https://shoryaku.net ) を作っています。この記事は、何を作って、どこで詰まり、なぜ修理ではなく撤去を選んだかの記録です。後半に、ChatGPTやGeminiで競合分析をする人が同じ壁を避けるための材料の選び方を書きます。

作っていたもの

施策生成(連携した広告やGA4の数字から売上アップの施策を出す機能)の中に、外部調査の段階がありました。

  1. 事業設定で登録した競合と、検索で見つけた競合候補を集める
  2. 競合の公式サイトを、robots.txt に従って自前で取得する
  3. AIが本文の抜粋から、対象顧客・訴求・価格・導線を同じ軸で構造化する
  4. 戦略の段階で、自社との違いと勝ち筋に反映する

画面では、戦略の章に競合ポジショニングの図、検索市場の欄に「競合の訴求語」が出る設計でした。

壁1: 競合を探す検索が、本番で使えなかった

競合候補の検索には Google Custom Search JSON API を使う設計でした。本番で確認すると、キーが属する Google Cloud プロジェクトに利用資格が無く、HTTP 403 で拒否されていました。Google公式も新規顧客への提供終了を案内していたので、キーを登録し直せば直る話ではありませんでした。

ここで一度、方針を「検索で探す」から「利用者が登録した競合だけを読む」へ切り替えています。競合を登録する画面が無かったので、事業設定に入力欄を足しました。検索APIが無くても、URLさえあれば取得と比較は動くはずでした。

壁2: 比較の出力が、1社目の途中で切れた

登録画面を足した翌日の本番実行を、実画面とログと保存済みのモデル利用量で確認しました。

  • 登録競合2社を受け取り、公式サイト2社の本文取得までは成功
  • 比較の抽出は0社で失敗
  • 抽出を担当する軽量モデルの呼び出しは、入力9,311トークン、出力2,048トークン、5.8秒

出力2,048トークンは、この用途に設定していた上限そのものです。比較結果のJSONが1社目の途中で切れ、壊れたJSONから救出できる完成した競合が1つも無かった、と判断できました。

この障害だけなら直せます。出力上限を4,096へ上げて、1社あたりの項目数を絞れば済みます。

壁3: 直しても、効いたかどうかを測れない

問題は、直した先に何があるかでした。

出力上限を上げても、取得先サイトの robots.txt、JavaScript で描画されて本文が取れないページ、HTMLの大きさ、サイト構成の変更、AI抽出の途中切れという故障点はそのまま残ります。故障点が多い機能を主経路に残すなら、それに見合う効果が要ります。

その効果を確認できませんでした。9月13日以降で競合の段階のログを確認できた8回の実行のうち、比較が1社でも成立した実行は0回です。登録競合があった2回のうち、1回はサイト取得が0件、1回は取得2件・比較0件でした。比較結果が施策の精度を上げたかどうかを測る以前に、比較結果そのものが一度も出ていません。

費用は理由になりませんでした。失敗した抽出の呼び出しは約0.002ドル、その実行全体が約0.06ドルです。もう少し前の計測でも、外部調査(検索と抽出)は1回の実行のトークン全体の約12%で、想定より小さい割合でした。

金額ではなく、待ち時間と複雑さを増やしながら、根拠を1件も供給していないことが撤去の理由です。

「修理できる」と「残す価値がある」は別の判断

決めたのは次の5つです。

  1. 自動の「競合サイト取得 → 比較」を、施策生成の通常経路から外す
  2. 競合比較が無くても、検索市場の確認を「一部失敗」扱いにしない。キーワードプランナーの取得に成功すれば完了とする
  3. 進捗表示から「競合の公式サイト取得」「競合比較」を外す
  4. 3Cの競合欄を推測で埋めない。利用者が入力した競合名やメモは「利用者入力」として扱い、サイト本文を読んだ事実にはしない
  5. 将来復活させるなら、毎回の施策生成に組み込まず、利用者が明示的に実行する独立機能として成功率と採用率を測ってから判断する

4番目が一番大事だと思っています。比較機能を外しても、AIは競合の欄を「一般的な業界像」で埋めることができます。それをさせないために、材料が無い項目は空欄のまま「まだ確認できていないこと」として表示するようにしました。

外部調査として残ったのは、Google広告のキーワードプランナーによる検索需要・競合性・入札単価の確認だけです。こちらはAPIが安定していて、数字がそのまま根拠になります。

ChatGPTで競合分析をするなら、先に渡す材料を変える

自分が作って外した経験から、無料のAIで競合分析をする人に言えることが4つあります。

1. 公式サイトから取れるのは「公開している訴求」までです。 対象顧客、価格、導線、強調している言葉。それ以上の弱み、売上、顧客満足度は公開情報から分かりません。AIに聞くと埋めてくれますが、それは推測です。事実と仮説を分けて書かせる手順はAIで3C分析をする方法にまとめてあります。

2. 1社ずつ、ページを絞って貼ります。 トップページと料金ページくらいで十分です。複数社をまとめて貼ると、自分が踏んだのと同じ「途中で切れる」「後半が雑になる」が起きます。

3. 「どの文から判断したか」を書かせます。 「競合Aは初心者向け」なら、料金ページのどの表現からそう判断したかを併記させます。根拠が書けない項目は、推測として扱います。

4. 競合より先に、顧客の言葉と検索需要を渡します。 自分の実装で、施策の根拠として安定して供給できたのはキーワードプランナーの検索需要でした。もう1つ、問い合わせやレビューに出た顧客の言葉は、AIが推測で代用できない唯一の材料です。競合サイトの比較は、この2つがそろってから足しても遅くありません。検索需要の見方は競合が少ない検索キーワードの探し方に書いています。

まとめ

  • 競合サイトの自動比較を作り、本番で比較が1件も成立しないまま外した
  • 直接の原因は検索APIの利用不可と、出力上限での途中切れ。どちらも修理はできた
  • 外した理由は費用ではなく、故障点が多い機能に見合う効果を確認できなかったこと
  • 比較を外しても、AIが競合欄を推測で埋めないように、材料が無い項目は空欄のまま出す
  • 自分で競合分析をするなら、1社ずつ・根拠の文つきで、顧客の言葉と検索需要を先に渡す

「AIに競合を読ませる」は、作るのは簡単で、効いていると確かめるのが難しい機能でした。作る前に、比較結果が出なかったときに何で代用するかを決めておくと、自分のように1週間で外す判断が早くなります。