マキモノ
データ収集無料✅ 公式検証済みv1.0.0 / 更新

外部サイトの「異常」を報告する前に計測器を対照群で検定する

自社の掲載が検索に出ない・売切表示になる等を疑ったとき、対照群をツールに実装して測定不能をexit 2で止める手順。UA未設定で空ページを掴む罠、分母が列挙可能かの見方、履歴のない画面で「いつ落ちたか」を測らない原則つき。

出品者: seisaku-team@orgiast.jp1 DL📖 読込 約1,915トークン (約3円)💰 コスパ 28
トークン節約メーター87%節約
ゼロからAIに作らせた場合6.2万トークン
このMDを読ませた場合8,000トークン

5.4万トークンの節約 (API料金換算で約81円分)。 要件定義・技術調査・試行錯誤ぶんのトークンがまるごと不要になります。※ 出品者申告とレビューに基づく推定値。モデル・タスク内容により変動します。

この巻物について

外部サイトの「異常」を報告する前に計測器を対照群で検定する」は、データ収集カテゴリのAI指示書(MDファイル)です。自社の掲載が検索に出ない・売切表示になる等を疑ったとき、対照群をツールに実装して測定不能をexit 2で止める手順。UA未設定で空ページを掴む罠、分母が列挙可能かの見方、履歴のない画面で「いつ落ちたか」を測らない原則つき。この巻物をAIに読み込ませると、ゼロから設計・調査する場合に比べて 約5.4万トークン(API料金換算で約81円)・87%のトークンを節約できます。

カテゴリ
データ収集
対応AI
claude-code、cursor、codex-cli
ライセンス
商用利用可 (再販不可)
価格
無料
ゼロから開発時
約6.2万トークン
この巻物使用時
約8,000トークン
節約量
約5.4万トークン (約81円)
更新日
2026-09-02

使い方 (AIに渡す3つの方法)

いちばん簡単なのはワンライナー。Claude Code のターミナルに貼るだけです。

⬇ .md をダウンロード
claude "https://makimono-md.vercel.app/api/v1/files/md-60647e55/raw を読み込んで、この指示書どおりに実装して"
claude-codecursorcodex-cliライセンス: 商用利用可 (再販不可)

中身

外部サイトの「異常」を報告する前に、計測器そのものを対照群で検定する

外部の公開サイト(予約サイト・EC・求人・比較サイト等)をブラウザで読んで 「自社の掲載が異常だ」と判断する前に必ず通す手順。 対照群を実装として組み込み、計測器が壊れていたら結論を出させない形にする。

いつ使うか

  • 自社の掲載・商品・求人が「検索に出ない」「売り切れ表示になる」「価格が違う」を疑ったとき
  • 外部サイトの表示を根拠に、施策・予算・体制を動かそうとしているとき

踏む順番

1. まず取得できているかを、成功/失敗ではなく中身で判定する

多くのサイトは、ヘッドレスブラウザに対してエラーを返さず空のシェルを返す。 exit 0 でも、検索フォームが初期値のままの「何も検索していないページ」が返っていることがある。

  • 必ず実在ブラウザの User-Agent を設定する。未設定は空シェルの最大の原因。
  • 取得できたかは 本文の文字数「自社以外の対象が正常に出ている件数」 で判定する。
  • スクリーンショットを保存し、必ず自分で開いて目視する。テキスト抽出では 描画崩れ・二重表示・空フォームを見逃す。

判定の型:

取得失敗 = 本文が閾値未満 || 他対象で正常な値を持つ件数が 0

2. 症状が出たら、正常だと分かっている対象を同じ方法で測る(対照群)

ここが本題。自社だけを測って症状を語らない。

対照の選び方:

  • 自社と無関係で、同じ日・同じ条件で正常に動いていることが別経路で確認できる対象。
  • 「別経路」の例: 同じ検索結果ページの推薦枠に、その対象が価格付きで出ている。 つまり1枚のページの中に「正常な証拠」と「異常な表示」が同居しているものを選ぶと最も強い。
  • 対照は1件ではなく複数取れるとよい(片方がたまたま本当に異常な可能性を消せる)。

対照でも同じ症状が出たら、それは対象の症状ではなく計測器の癖。結論に使ってはいけない。

3. 対照群をツールに実装し、exit code で止める

人間の記憶や引き継ぎ文に頼らない。次に触る人(や AI)が同じ罠を踏めないように、 コードが止める

exit 0 = 症状なし(自社と対照が一致)
exit 1 = 自社固有の症状(対照は正常)  ← これだけが報告に使える
exit 2 = 測定不能(取得失敗、または対照にも同じ症状が出た)

優先順位は 2 > 1 > 0。取得できていないのに 1 を返す実装にしない。

対照は「自社と同じ全項目を測る」必要はない。多くの場合、症状が出た側の1経路だけ測れば足りる。 対照用エントリに searchOnly: true のようなフラグを持たせ、不要な取得はスキップする。

4. 「分母」は件数を出すだけでなく、列挙可能かを見る

「N件中に自社が無い」と言うには、N が現実的に列挙できなければ意味がない。

  • サイト側が地域・住所・駅などの絞り込みを広域に丸めることがある (住所で検索しても市全体の数千件が返る等)。1ページ25件の不在は何の証拠にもならない。
  • 絞り込みを変えても分母が縮まらないなら、その公開画面は露出の計測器にならないと結論する。

5. 「いつ落ちたか」を、過去を持たない画面で測ろうとしない

公開検索には履歴がない。今日のスナップショットから「いつ変わったか」は原理的に出せない。 時系列が要る問いには、履歴を持つ計測器を使う:

  • 管理画面(パートナー向けコンソール)の露出・表示回数の推移
  • 自社DBの受注データ
  • 公開情報でも日付が入っているもの(クチコミの利用月、レビュー投稿日など)は 実売の代理指標として使える。ただし代理指標は自前データと突き合わせて倍率とズレ month を確かめてから使う。

実装の骨組み

// 対象。控えめに1件でよいので対照を必ず入れる
const targets = [
  { label: 'ours',    id: '<自社の識別子>',  name: '<自社の掲載名>' },
  // 対照: 自社と無関係。別経路で「正常に売られている」ことを確認済みのもの
  { label: 'control', id: null, name: '<無関係な対象名>', searchOnly: true },
];

// 取得
const ctx = await browser.newContext({
  userAgent: '<実在ブラウザのUA>',   // 未設定は空シェルの原因
  locale: '<ロケール>',
  viewport: { width: 1280, height: 2400 },
});
await page.goto(url, { waitUntil: 'domcontentloaded', timeout: 90000 });
await page.waitForTimeout(waitMs);   // networkidle は収束しないサイトが多い
const text = await page.innerText('body');

// 取得失敗の判定(成功 exit では判定できない)
if (cardCount === 0 || otherWithValue === 0 || text.length < 2000) failure = true;

// 終了コード。対照が症状を出したら測定不能で止める
const controlRows = results.filter(r => r.label === 'control' && !r.failure);
const controlSymptom = controlRows.filter(r => r.symptom).length;
if (controlSymptom > 0) {
  console.log('対照でも同じ症状が出た。この計測は在庫/露出の判定に使えない');
  process.exit(2);
}
if (anyFailure) process.exit(2);
if (anySymptom)  process.exit(1);
process.exit(0);

チェックリスト

  • User-Agent を設定した
  • 本文長と「他対象の正常件数」で取得成否を判定した(exit 0 を根拠にしていない)
  • スクリーンショットを自分で開いて目視した
  • 対照群を1件以上測り、対照が正常であることを確認した
  • 対照が症状を出したら exit 2 で止まる実装になっている
  • 分母を出力し、それが列挙可能かを検討した
  • 「いつ落ちたか」を、履歴のある計測器で測っている

実際に防いだ誤り(実例)

ある事業者の掲載が予約サイトの検索で「空室はありません」と出た。 掲載ページ側では同じ日程で7室が価格付きで選択可能だった。強い異常に見えた。

対照として無関係な宿を同じ方法で測ると、同じ検索結果ページの推薦枠でその宿が価格付きで 売られているにもかかわらず、名前で検索すると「空室はありません」と出て、 しかも代替日候補としてその同じ日程を価格付きで並べた。

= 名前検索という経路が、売られている対象にも売切を返していた。 対照を置かなければ「露出が止まっている実測」として報告し、次の打ち手を丸ごと間違えていた。

さらに同じ調査の前日には、User-Agent 未設定のため検索が実行されていない空ページを 「満室と出た」と読んでいた。エラーは一切出ていない。

よくある質問

「外部サイトの「異常」を報告する前に計測器を対照群で検定する」とは何ですか?

自社の掲載が検索に出ない・売切表示になる等を疑ったとき、対照群をツールに実装して測定不能をexit 2で止める手順。UA未設定で空ページを掴む罠、分母が列挙可能かの見方、履歴のない画面で「いつ落ちたか」を測らない原則つき。

どれくらいトークン(費用)を節約できますか?

ゼロから開発すると約6.2万トークンかかりますが、この巻物を使えば約8,000トークンで済みます。差し引き約5.4万トークン(API料金換算で約81円)・87%の節約です。

どうやって使いますか?

無料です。MDファイルを Claude Code などのAIに読み込ませるだけ。ワンライナーをターミナルに貼れば実装が始まります。要件定義や技術調査を省いて実装だけにトークンを使えます。

どのAIツールに対応していますか?

claude-code、cursor、codex-cli に対応しています。

商用利用できますか?

ライセンスは「商用利用可 (再販不可)」です。

🤝 自分でAIを動かすのは、まだ不安…という方へ

この巻物の内容を、AIを使うプロに丸ごと任せることもできます。姉妹サービスAI代行堂なら「LINEで頼むだけで、仕事が完成」。

AI代行堂を見る →

関連する巻物

この巻物、誰かのトークンも救えます

𝕏 で節約レシートをシェア