ChatGPT の広告ピクセルと __obi クッキー
- OpenAI の広告スタックにある3つのクッキーを切り分ける — 2つは広告主のドメイン、1つは .openai.com — そして3つ目だけがあなたを紐づける理由を理解する
- 同期の流れを追う:ChatGPT が発行する60秒有効の RS256 JWT が、結合キーをセットするコレクターへクロスサイトで POST される
- クッキーバナーの「マーケティングを拒否」がこれを動かしたままにしうる理由、そして広告主自身の同意呼び出しではオフにできない理由を学ぶ
- 自動アドバンストマッチングが、誰も読むよう設定していないページから何を掻き集めるのか — そして OpenAI 自身のドキュメントがハッシュ化されずに送られると述べているフィールドはどれかを見る
- この仕組みが働かない場所を正確に知る(そしてなぜ iPhone は Android と異なる脅威モデルなのか)
- 5分で自分のブラウザを確認し、2つの設定で自分のピクセルを堅牢にする
ChatGPT の広告に関するたいていの人のメンタルモデルは箱です:広告は ChatGPT の内側に 現れ、ChatGPT の内側で話したことでパーソナライズされ、その箱には壁がある。広告主は 掲載枠を買うだけで、あなたの会話を見ることは決してない。その部分は本当で、OpenAI も はっきりそう述べています。
面白いのは箱の外側の部分です。OpenAI は、広告主が Meta や Google のものと同じように 自社サイトへ設置する計測ピクセルも提供しています。計測ピクセルには結合キーが必要です: 広告を見たブラウザとチェックアウトに到達したブラウザが同一であると告げる何らかの識別子 です。2026年9月、ある独立研究者がその結合キーがどう作られるのかを追跡しました。すると それは ChatGPT 自身によって発行され、OpenAI の広告コレクターへ渡され、そしてあなたの ブラウザによってピクセルを動かしているすべての広告主サイトへ運ばれていたのです。
この流れは漏洩でもバグでもありません。設計された広告計測パイプライン — Meta と Google が10年間動かしてきたのと同じ形 — です。これを1ページ割く価値のあるものに しているのは、同意の分類に関する1つの具体的な設計判断と、2026年8月にオンへ切り替わり、 多くの広告主サイトを静かに ID スクレイパーへ変えたデフォルトです。
3つのクッキー、2つのドメイン
どの報道を読んでも、__obi、__obref、__oppref がほぼ同じもののように使われている
のを目にするでしょう。これらは3つの異なるプライバシープロファイルを持つ3つの別物であり、
混同することこそが、過剰反応するか、間違ったコントロールで安心してしまうかの原因です。
| クッキー | セットされる場所 | セットする主体 | 有効期間 | 何であるか |
|---|---|---|---|---|
__oppref | 広告主自身のドメイン | ピクセルSDK | 書き込みごとに30日 | ランディングページのURLから取得したアトリビューションID。通常のクリック計測。 |
__obref | 広告主自身のドメイン | ピクセルSDK | 365日 | ランダムなブラウザ参照値。その1広告主にスコープされる。 |
__obi | .openai.com | bzr.openai.com | 365日(Max-Age=31536000) | クロスサイトの結合キー。HttpOnly、Secure、SameSite=None。 |
最初の2つは OpenAI が公開の広告主向けドキュメントで文書化しています。広告主にとっての
ファーストパーティであり、それ単独ではサイトをまたいであなたを紐づけません — 研究者の
キャプチャもこれを裏付けています:観測された __obref の値 2,860 のうち 2,828 が
ちょうど1つの広告主の下にしか現れませんでした。これはサイトごとのクッキーがそうあるべき
姿です。
__obi はサイトごとではない唯一のものです。SameSite=None で .openai.com 上に存在し、
これはまさに、他人のページから行われるリクエストにブラウザがそれを付与できる構成です。
研究者が観測した 30 個の異なる __obi の値のうち、12 個が複数の広告主の下に現れ、
うち1つは10の広告主の下に現れました。それが計測されたクロスサイトのグラフです。
★ __obi は HttpOnly です。 どのページの JavaScript もこれを読めません。ピクセルの
ものも含めてです。保護的に聞こえますが、ほとんどそうではありません:ブラウザは
bzr.openai.com 宛のリクエストにこれを自動で付与するので、ピクセルはそもそも読む必要が
ありません。HttpOnly はページのスクリプトが識別子を盗むのを止めますが、識別子が
使われるのを止めることは何もしません。
結合はどう作られるのか
- ChatGPT のウェブクライアントが16バイトのランダム値を生成し、chatgpt.com 上の /backend-api/bazaar/obi/sync-token へ POST します — ログアウト中は /backend-anon/… です。レスポンスは有効期限60秒の RS256 JWT です。
- デコードしたクレームには、iss: "chatgpt-wadi"、aud: "bzr.openai.com"、purpose: "obi_sync"、22文字の obi 識別子、64桁16進のアカウント識別子を保持する sub、account_user か anonymous のいずれかである subject_type、そして — このページ全体が依拠するクレーム — consent_decision: "analytics_allowed" が含まれます。
- この JWT が bzr.openai.com/v1/obi/sync へクロスサイトで POST されます(「bzr」は内部名称 Bazaar だと考えられています)。レスポンスは Set-Cookie: __obi=…; Domain=.openai.com; HttpOnly; Max-Age=31536000; Path=/; SameSite=none; Secure を運びます。
- ピクセルを動かしているページは bzrcdn.openai.com/sdk/oaiq.min.js を読み込み、コンバージョンイベントを bzr.openai.com/v1/sdk/events へ POST します。これらのリクエストは openai.com を宛先とするため、ブラウザは __obi を付与します。広告主のページはクッキーに一切触れません。ただリクエストを引き起こすだけです。
研究者がデコードした 932 個の同期トークンのうち、736 個が
subject_type: account_user を持ち、196 個は匿名でした。つまり観測された同期のおよそ
5回に4回で、植えられている識別子はログイン済みの ChatGPT アカウントのコンテキストで
発行されていたことになります。
著者はそれが何を証明し何を証明しないかについて慎重であり、あなたもそうあるべきです:
__obi からアカウントへの結合は、トークンの設計から推論されたものであり、直接観測された
ものではありません。観測されているのは、ChatGPT がアカウントにスコープされたトークンを
発行し、コレクターがそれを長寿命のクロスサイトクッキーへ変換し、そのクッキーが複数の
無関係な広告主の下に現れる、ということです。
同意の分類こそが全体の核心
ここが「Meta にもピクセルはある」との違いを生む部分です。
OpenAI のクッキーポリシーは __obi をアナリティクスの下に記載しています。Google、
Meta、LinkedIn、TikTok、Reddit、Microsoft のキャンペーン計測クッキーは、同じインター
フェースの中でマーケティングの下にあります。同期を引き起こす JWT は
consent_decision: "analytics_allowed" を運びます — マーケティングの同意ではありません。
その帰結を、ごく普通のヨーロッパのクッキーバナーで追ってみましょう:
- あなたは**「マーケティングを拒否、アナリティクスを許可」**をクリックします — プライバシーに 敏感なユーザーの相当数が選ぶ選択肢であり、多くの同意プラットフォームが妥当な中間案として 提示するものです。
- アナリティクスの同意が付与されるので、同期トークンが発行されます。
__obiが.openai.comに1年間植えられます。- 以後あなたが接触するすべての広告主のピクセルがそれを受け取ります。
あなたはその挙動が属するカテゴリを拒否したのに、挙動は起きました。別のカテゴリに
分類されていたからです。研究者はまさにこの点について OpenAI に問い合わせました —
なぜ __obi がアナリティクスに分類されているのか、そしてマーケティング同意を拒否した
ユーザーもそれを受け取るのか — 2026-09-14 に press@openai.com と
privacy@openai.com へメールで。OpenAI サポートは問い合わせを受領しましたが、
どちらの質問にも答えませんでした。
★ 広告主側の同意スイッチは助けになりません。 OpenAI のドキュメントは広告主に
oaiq("consent", false) を提供しており、これは「両方のクッキーを削除する」— つまり
広告主自身のドメイン上の __obref と __oppref の2つです。.openai.com には手が
届きません。ピクセルを CMP の背後で完璧にゲートしているサイトは、そもそも紐づけの問題では
なかった2つのクッキーをゲートしていることになります。
ChatGPT 自体には別の、実在するコントロールがあります:設定 → データ制御 →
マーケティングプライバシーで、無料アカウントではデフォルトでオン、有料では
オフと報告されています。__obi との関係は未解決として扱ってください:この調査は
これを切り替えたら同期が止まるかを検証しておらず、OpenAI は尋ねられても答えず、そして
マーケティングと名付けられた設定がアナリティクスとして分類されたクッキーを統制する
というのは、まさに問題になっているミスマッチそのものです。オフにしてください — 手を
伸ばすべき正しいスイッチです — が、誰かがオフの状態で通信をキャプチャするまで、それが
通信上の挙動を止めるものだと決めつけないでください。
自動アドバンストマッチング:ピクセルがページを読む
コンバージョンピクセルの問題は、クリック識別子が失われることです — ブロックされ、 剥がされ、あるいはリダイレクトの間に消える。業界の答えがアドバンストマッチングです: ハッシュ化されたIDをイベントと一緒に送り、広告プラットフォームがそちらで結合できるように します。Meta は何年も前から提供しています。OpenAI 版には知っておく価値のあるひねりが 1つあります。
自動アドバンストマッチング(AAM)は、広告主が何かを渡してくれるのを待ちません。 OpenAI のドキュメントは、ピクセルが「あなたのウェブサイトからサポート対象の顧客情報を 自動的に検出する」と述べています。研究者のキャプチャは、ラベル付けされた4つの収集ソースを 示しています:
| ラベル | ソース | 値の取得方法 |
|---|---|---|
in | 広告主が提供 | サイトが意図的に渡す |
fm | フォームフィールド | ページ上の認識可能な入力欄から掻き集める |
ht | ページテキスト | レンダリングされたコンテンツから解析する |
js | タグマネージャー | window.dataLayer、Adobe のデータレイヤー、名前を変えた GTM レイヤーから読む |
観測されたイベントでは、掻き集められたIDが広告主提供のIDを 685 対 255 で上回りました。 ピクセルはほとんどの場合、誰も集めるよう頼んでいないものを集めていたのです。
ハッシュ化 vs 平文 — OpenAI 自身のドキュメントから直接。 メールアドレス、電話番号、 外部ID、名、姓は正規化されブラウザ内で SHA-256 されます。国(ISOコード)、地域、市区町村、 そして郵便番号は平文フィールドとして記載されています。OpenAI の「自動アドバンスト マッチングを通じて生の顧客情報が OpenAI に送信されることはない」という一文は ID の集合に スコープされたものであり、地理情報はその集合に入っていません。キャプチャも一致しています: 郵便番号は最も多く収集されたフォームフィールドで、28サイトにわたる100イベント、 ハッシュ化なしでした。
除外リストはあります — OpenAI はパスワード、ワンタイムコード、カード番号、社会保障番号、 生年月日、既往歴、診断、裁判関連のフィールドを除外しています。これは本物の緩和策であり、 評価に値します。同時にそれは除外リストであり、つまり誰かが思いついたカテゴリしか守り ません。
ペイロードはIDだけではありません。イベントは、それを発火させたページの URL パス も 運びます — 商品ページ、記事のURL、チェックアウトのステップ — クエリ文字列の検索語は 除去されると報告されています。小売業者であれば、あなたが見た具体的な商品を意味します。 出版社であれば、あなたが読んだ具体的な記事を意味します。
★ デフォルトが 2026-08-17 にオンへ切り替わりました。 AAM は新規作成された Web
ピクセルではすでにデフォルトでしたが、この日 OpenAI は既存のピクセルでもオンにしました。
オプトインではなくオプトアウトです。研究者は、設定が見えた 881 個のピクセルのうち
638 個で AAM が有効になっているのを発見しました。2026年初頭に OpenAI のピクセルを設置し、
それ以来触っていないなら、あなたのサイトは8月から、あなた側のデプロイなしにフォーム
フィールドを掻き集め始めたということです。
この仕組みが働かない場所
これは万能のトラッカーではなく、例外が通常以上に重要です:
- Chrome for Android — 研究者が再現したプラットフォーム。影響あり。
- Safari、および iOS の Chrome — 影響なし。Safari の Intelligent Tracking Prevention が サードパーティクッキーをブロックし、iOS のすべてのブラウザは WebKit 上で動くので、 「iPhone の Chrome」も同じブロックを継承します。ここでは iPhone ユーザーと Android ユーザーは本当に異なる脅威モデルにいます。
- デスクトップ Chrome — 公開された調査では未検証。安全なのではなく、不明です。
- そもそもカバー率は部分的。 観測された ChatGPT セッションのうち 同期トークンを発生させたのは約20%だけで、モバイルのウェブクライアントは同期せずに 広告を配信します。存在するグラフがどんなものであれ、それは全体ではなく疎なものです。
最後の数字は両刃です。識別子が万能からはほど遠いことを意味すると同時に、 「一度確認して何も見えなかった」ことは不在の証拠にならないことも意味します。
自分のブラウザを確認する
5分、DevTools 以外のツールは不要。仕組みを少しでも見たいなら Android の Chrome で やってください。
まず同期を、次にクッキーを探す
# 1. Open ChatGPT with DevTools → Network, filter: obi # Look for a POST to: # /backend-api/bazaar/obi/sync-token (logged in) # /backend-anon/bazaar/obi/sync-token (logged out) # then a cross-site POST to: # https://bzr.openai.com/v1/obi/sync # 2. Paste the JWT from the sync-token response into a local decoder. # You are looking for these claims: # iss: "chatgpt-wadi" aud: "bzr.openai.com" # purpose: "obi_sync" consent_decision: "analytics_allowed" # subject_type: "account_user" | "anonymous" # 3. Application → Cookies → https://chatgpt.com # Look for __obi on domain .openai.com, Max-Age 31536000, # HttpOnly, Secure, SameSite=None. # 4. Now visit a retailer that runs the pixel and filter for: # bzrcdn.openai.com/sdk/oaiq.min.js # bzr.openai.com/v1/sdk/events # Check the Cookies tab of that events request: __obi riding along # is the cross-site join, observed on your own machine.
JWT はローカルでデコードしてください。アカウントにスコープされた sub を含むトークンを
ウェブベースのデコーダーに貼り付けることは、その識別子を第三者に手渡すことです —
プライバシー調査の締めくくりとしてはいささか馬鹿げたやり方です。
ピクセルを運用しているなら
ここであなたは、ピクセルの設置スニペットが明らかにしていなかった意味でのデータ管理者です。 設定2つと習慣1つ:
- Ads Manager → Tools → Conversions → Data Source → Edit pixel、そこで自動アドバンストマッチングをオフにします(あるいはオンにしたいことを確認します)。設定はピクセル単位です — 複数運用しているなら、複数変更することになります。2026-08-17 以降デフォルトはオンなので、何もしないことは1つの決定です。
- 同意プラットフォームが、あとから oaiq("consent", false) を呼ぶのではなく、同意前にスクリプトの読み込みそのものを実際にブロックしていることを確認してください。そして限界を知ってください:その呼び出しが削除するのは __obref と __oppref で、どちらもあなたのドメイン上のものです。.openai.com 上の __obi を削除することはできません。
- DevTools を開いた状態でチェックアウトやサインアップのページを読み込み、テストデータを送信し、bzr.openai.com へ向かうイベントのペイロードを読んでください。あなたのどのフィールドを fm と ht のコレクターが拾ったかを確認します。広告シグナルとして意図していなかったフィールド — 郵便番号、サポートフォームの自由記述欄 — こそが探すべきものです。
- AAM がオンなら、あなたのサイトはハッシュ化された顧客IDと平文の地理情報を OpenAI に送信しています。CMP が正しく設定されているかどうかに関わらず、それはプライバシーポリシーと処理記録に記載すべき事項です。
★ ハッシュ化は匿名化ではありません。 メールアドレスの SHA-256 は決定論的な識別子です:
同じメールアドレスを持つ者は誰でも同じダイジェストを計算できます。それこそが要点です —
結合はそうやって成立します。コンプライアンス分析では、ハッシュ化されたIDを非識別化された
ものとしてではなく、仮名化された個人データとして扱ってください。
ChatGPT をただ使っているだけなら
- 設定 → データ制御 → マーケティングプライバシー をオフにする。 手を伸ばすべき
正しいスイッチですが、上述のとおり
__obiへの効果は未確認です。 - アカウント設定だけでなく、クッキーマネージャーも使う — ログアウト状態での閲覧に ついては、フッターの「Cookie を管理」/「あなたのプライバシー選択」リンクが唯一の 操作面です。
- Global Privacy Control を送る。 OpenAI は GPC を法的に有効なオプトアウトシグナルとして 尊重すると表明しています。Firefox と Brave はネイティブで送信し、Chrome には拡張機能が あります。カリフォルニアをはじめ複数の法域で規制上の重みを持つ、機械可読なシグナルです。
- ここではブラウザの選択が実在するコントロールです。 Safari は今日この仕組みを ブロックします。クッキー1つのためにブラウザを乗り換えろという議論ではなく — 設定画面で見つかるどんなトグルよりも、サードパーティクッキーのポリシーのほうが あなたのプライバシー態勢に大きく効いている、というリマインダーです。
実際に確立されていること、そうでないこと
報道がここをぼかすので、整理しておく価値があります:
**キャプチャによって確立:**エンドポイント、クッキーの属性、consent_decision を含む JWT の
クレーム、4つの収集ソース、フィールド単位のハッシュ化/平文の切り分け(OpenAI 自身の
ドキュメントが確認しているもの)、そして数値 — 1,029ホスト名にわたる936のピクセル、
30個の __obi のうち12個が複数広告主の下に、881ピクセル中638で AAM がオン。
推論であり、著者もそう明記しているもの:__obi がサーバー側で ChatGPT アカウントへ
結合されていること。トークンの設計はその方向を指していますが、結合は観測されていません。
**OpenAI が答えていないこと:**なぜ __obi がアナリティクスに分類されているのか、そして
マーケティング同意を拒否してもなお同期が起きるのか。
**未検証:**デスクトップ Chrome、そしてマーケティングプライバシーのトグルが通信上の挙動を 止めるかどうか。
確認テスト
0/5出典と参考文献
- Buchodi — "ChatGPT now knows what you do on other websites via ad collector" — 一次調査:エンドポイント、JWT のクレーム、クッキーの属性、収集ソースのラベル、そしてこのページ全体で引用した数値。著者自身が述べた限界も含みます。
- daily.dev — "ChatGPT now knows what you do on other websites via ad collector" — 2026-09-21 に Hacker News のトップページに届いたこの記事のアグリゲーターエントリ。
- OpenAI Developers — Ads: Measurement Pixel —
__obref/__oppref、SHA-256 ハッシュ化フィールドのリスト、平文の地理フィールド、oaiq("consent", false)に関する公式ドキュメント。 - OpenAI Developers — Ads — このピクセルが属する広告主向けのプロダクト面。
- OpenAI ヘルプセンター — Conversion Measurement — 自動アドバンストマッチングとピクセル単位の設定パスに関する OpenAI の説明。
- OpenAI ヘルプセンター — Ads in ChatGPT — 設定 → データ制御 → マーケティングプライバシー を含む、ユーザー向けのコントロール。
- Cybersecurity News — "ChatGPT Ad Tracking Cookie Follows Users Across Third-Party Advertiser Websites" — クッキー属性の詳細を含む独立した記事。
- Global Privacy Control — OpenAI が有効なオプトアウトとして尊重すると表明しているブラウザシグナル。
次へ
- コーディングエージェントが実際にアップロードしているもの — 1階層下の同じ問い:プライバシートグルを信じるのではなく送信量を測ること。
- Sign in with ChatGPT — あなたの OpenAI アカウントのIDが openai.com を離れるもう1つの場所。
- エージェント型ブラウザは同一オリジンポリシーを破る — あなたのクッキーを運ぶものが、あなたではなくエージェントになったとき何が起きるか。