ChatGPTs Werbepixel und das __obi-Cookie
- Die drei Cookies in OpenAIs Werbe-Stack auseinanderhalten — zwei auf der Domain des Werbetreibenden, eines auf .openai.com — und verstehen, warum nur das dritte Sie verknüpft
- Dem Sync-Ablauf folgen: ein von ChatGPT ausgestelltes RS256-JWT mit 60 Sekunden Gültigkeit, cross-site an einen Collector gePOSTet, der den Join-Key setzt
- Verstehen, warum ein "Marketing ablehnen" im Cookie-Banner dies weiterlaufen lassen kann und warum der Consent-Aufruf des Werbetreibenden es nicht abschalten kann
- Sehen, was Automatic Advanced Matching von einer Seite abgreift, die niemand dafür konfiguriert hat — und welche Felder laut OpenAIs eigener Dokumentation ungehasht übertragen werden
- Genau wissen, wo der Mechanismus nicht funktioniert (und warum ein iPhone ein anderes Bedrohungsmodell ist als ein Android)
- Den eigenen Browser in fünf Minuten prüfen und das eigene Pixel mit zwei Einstellungen härten
Das mentale Modell, das die meisten Leute von ChatGPT-Werbung haben, ist eine Box: Anzeigen erscheinen innerhalb von ChatGPT, personalisiert durch das, was Sie innerhalb von ChatGPT gesagt haben, und um die Box herum steht eine Mauer. Werbetreibende kaufen Platzierungen; sie sehen Ihre Konversationen nie. Dieser Teil stimmt, und OpenAI sagt es klar.
Der Teil außerhalb der Box ist der interessante. OpenAI liefert außerdem ein Messpixel aus, das Werbetreibende auf ihren eigenen Websites installieren, so wie sie das von Meta oder Google installieren. Messpixel brauchen einen Join-Key: irgendeine Kennung, die sagt der Browser, der die Anzeige gesehen hat, ist der Browser, der bis zum Checkout gekommen ist. Im September 2026 hat ein unabhängiger Forscher nachvollzogen, wie dieser Join-Key entsteht — und es stellt sich heraus, dass ChatGPT selbst ihn ausstellt, an einen OpenAI-Werbe-Collector übergibt und Ihr Browser ihn anschließend zu jeder Werbetreibenden-Seite trägt, die das Pixel ausführt.
Der Ablauf ist kein Leak und kein Bug. Es ist eine bewusst gebaute Anzeigen-Messpipeline — dieselbe Form, die Meta und Google seit einem Jahrzehnt betreiben. Was daraus eine eigene Seite macht, ist eine spezifische Designentscheidung zur Consent-Klassifizierung, plus ein Default, der im August 2026 angeschaltet wurde und still eine Menge Werbetreibenden-Websites in Identitäts-Scraper verwandelt hat.
Drei Cookies, zwei Domains
Lesen Sie irgendeine der Berichte, und Sie sehen __obi, __obref und __oppref fast synonym verwendet. Es sind drei verschiedene Dinge mit drei verschiedenen Datenschutzprofilen, und sie durcheinanderzuwerfen ist der Weg, auf dem Leute entweder überreagieren oder sich mit dem falschen Schalter beruhigen.
| Cookie | Gesetzt auf | Gesetzt von | Lebensdauer | Was es ist |
|---|---|---|---|---|
__oppref | die eigene Domain des Werbetreibenden | das Pixel-SDK | 30 Tage ab jedem Schreibvorgang | Attributions-ID, aus der URL der Landingpage übernommen. Gewöhnliches Klick-Tracking. |
__obref | die eigene Domain des Werbetreibenden | das Pixel-SDK | 365 Tage | Eine zufällige Browser-Referenz, auf diesen einen Werbetreibenden begrenzt. |
__obi | .openai.com | bzr.openai.com | 365 Tage (Max-Age=31536000) | Der cross-site Join-Key. HttpOnly, Secure, SameSite=None. |
Die ersten beiden sind von OpenAI in der öffentlichen Werbetreibenden-Dokumentation beschrieben. Sie sind First-Party beim Werbetreibenden und verknüpfen Sie für sich genommen nicht über Websites hinweg — die Aufzeichnung des Forschers bestätigt das: 2.828 von 2.860 beobachteten __obref-Werten tauchten bei genau einem Werbetreibenden auf, und genau so sollte ein Per-Site-Cookie aussehen.
__obi ist das, das nicht per Site ist. Es liegt auf .openai.com mit SameSite=None — genau die Konfiguration, die einem Browser erlaubt, es an Requests anzuhängen, die von der Seite eines anderen ausgehen. Von 30 unterschiedlichen __obi-Werten, die der Forscher beobachtet hat, erschienen 12 bei mehr als einem Werbetreibenden — einer davon bei zehn. Das ist der Cross-Site-Graph, gemessen.
★ __obi ist HttpOnly. Kein JavaScript auf irgendeiner Seite kann es lesen, auch das des Pixels nicht. Das klingt schützend und ist es größtenteils nicht: Der Browser hängt es automatisch an Requests an, die auf bzr.openai.com zielen, das Pixel muss es also nie lesen. HttpOnly verhindert, dass Seitenskripte die Kennung stehlen; es verhindert nicht, dass die Kennung genutzt wird.
Wie der Join entsteht
- Der ChatGPT-Web-Client erzeugt 16 zufällige Bytes und POSTet an /backend-api/bazaar/obi/sync-token auf chatgpt.com — oder an /backend-anon/…, wenn Sie abgemeldet sind. Die Antwort ist ein RS256-JWT mit 60 Sekunden Gültigkeit.
- Zu den dekodierten Claims gehören iss: "chatgpt-wadi", aud: "bzr.openai.com", purpose: "obi_sync", eine 22 Zeichen lange obi-Kennung, ein sub mit einer 64 Hexzeichen langen Konto-Kennung, ein subject_type von entweder account_user oder anonymous und — der Claim, um den sich diese ganze Seite dreht — consent_decision: "analytics_allowed".
- Das JWT wird cross-site an bzr.openai.com/v1/obi/sync gePOSTet ("bzr" ist vermutlich ein interner Name, Bazaar). Die Antwort trägt Set-Cookie: __obi=…; Domain=.openai.com; HttpOnly; Max-Age=31536000; Path=/; SameSite=none; Secure.
- Jede Seite, die das Pixel ausführt, lädt bzrcdn.openai.com/sdk/oaiq.min.js und POSTet Conversion-Events an bzr.openai.com/v1/sdk/events. Weil diese Requests auf openai.com zielen, hängt der Browser __obi an sie an. Die Seite des Werbetreibenden berührt das Cookie nie; sie löst nur den Request aus.
Von 932 Sync-Tokens, die der Forscher dekodiert hat, trugen 736 subject_type: account_user und 196 waren anonym. In etwa vier von fünf beobachteten Syncs wurde die Kennung also im Kontext eines eingeloggten ChatGPT-Kontos ausgestellt.
Der Autor ist sorgfältig dabei, was das beweist und was nicht, und Sie sollten es auch sein: Der Join von __obi zurück zu einem Konto wurde aus dem Token-Design erschlossen, nicht direkt beobachtet. Beobachtet ist, dass ChatGPT ein kontobezogenes Token ausstellt, ein Collector es in ein langlebiges Cross-Site-Cookie verwandelt und dieses Cookie dann bei mehreren nicht verwandten Werbetreibenden auftaucht.
Die Consent-Klassifizierung ist die ganze Geschichte
Hier kommt der Teil, der das von "Meta hat auch ein Pixel" unterscheidet.
OpenAIs Cookie-Richtlinie führt __obi unter Analytics. Die Kampagnen-Mess-Cookies von Google, Meta, LinkedIn, TikTok, Reddit und Microsoft stehen in derselben Oberfläche unter Marketing. Das JWT, das den Sync auslöst, trägt consent_decision: "analytics_allowed" — keine Marketing-Einwilligung.
Denken Sie die Konsequenz durch ein normales europäisches Cookie-Banner:
- Sie klicken "Marketing ablehnen, Analytics erlauben" — eine Wahl, die ein großer Teil datenschutzbewusster Nutzer trifft und die viele Consent-Plattformen als den vernünftigen Mittelweg präsentieren.
- Analytics-Einwilligung ist erteilt, also wird das Sync-Token ausgestellt.
__obiwird für ein Jahr auf.openai.comgesetzt.- Jedes Werbepixel, auf das Sie danach treffen, erhält es.
Sie haben die Kategorie abgelehnt, zu der das Verhalten gehört, und das Verhalten fand trotzdem statt, weil es unter einer anderen Kategorie geführt wird. Der Forscher hat OpenAI genau dazu befragt — warum __obi als Analytics klassifiziert ist und ob Nutzer, die Marketing-Einwilligung verweigern, es dennoch erhalten — per Mail an press@openai.com und privacy@openai.com am 2026-09-14. Der OpenAI-Support bestätigte den Eingang der Anfrage und beantwortete keine der beiden Fragen.
★ Der Consent-Schalter des Werbetreibenden kann Ihnen nicht helfen. OpenAIs Dokumentation gibt Werbetreibenden oaiq("consent", false), was "beide Cookies entfernt" — gemeint sind __obref und __oppref, die zwei auf der eigenen Domain des Werbetreibenden. Es hat keinen Zugriff auf .openai.com. Eine Website, die das Pixel perfekt hinter ihrer CMP einsperrt, sperrt die zwei Cookies ein, die nie das Verknüpfbarkeitsproblem waren.
Es gibt eine separate, echte Einstellung in ChatGPT selbst: Settings → Data Controls → Marketing Privacy, laut Berichten bei kostenlosen Konten standardmäßig an und bei bezahlten aus. Behandeln Sie ihr Verhältnis zu __obi als ungeklärt: Die Untersuchung hat nicht getestet, ob das Umschalten den Sync stoppt, OpenAI hat auf Nachfrage nicht geantwortet, und eine Einstellung mit dem Label Marketing, die ein als Analytics geführtes Cookie steuert, ist genau die Unstimmigkeit, um die es geht. Schalten Sie sie aus — es ist der richtige Schalter, nach dem man greift — aber nehmen Sie nicht an, dass er das Verhalten auf der Leitung stoppt, solange niemand den Traffic mit ausgeschaltetem Schalter aufgezeichnet hat.
Automatic Advanced Matching: das Pixel liest die Seite
Das Problem eines Conversion-Pixels ist, dass Klick-Kennungen verloren gehen — blockiert, entfernt oder über eine Weiterleitung hinweg verschwunden. Die Antwort der Branche heißt Advanced Matching: gehashte Identität zusammen mit dem Event senden, damit die Werbeplattform darüber joinen kann. Meta liefert das seit Jahren aus. OpenAIs Variante hat eine Wendung, die man kennen sollte.
Automatic Advanced Matching (AAM) wartet nicht darauf, dass der Werbetreibende etwas übergibt. OpenAIs Dokumentation sagt, das Pixel "erkennt unterstützte Kundeninformationen von Ihrer Website automatisch". Die Aufzeichnung des Forschers zeigt vier beschriftete Erfassungsquellen:
| Label | Quelle | Wie es an den Wert kommt |
|---|---|---|
in | Vom Werbetreibenden geliefert | Die Website übergibt ihn bewusst |
fm | Formularfelder | Von erkennbaren Eingabefeldern der Seite abgegriffen |
ht | Seitentext | Aus dem gerenderten Inhalt herausgeparst |
js | Tag-Manager | Aus window.dataLayer, dem Adobe-Data-Layer oder umbenannten GTM-Layern gelesen |
In den beobachteten Events übertraf abgegriffene Identität die vom Werbetreibenden gelieferte mit 685 zu 255. Das Pixel sammelte also meistens Dinge, um deren Sammlung es niemand gebeten hatte.
Gehasht vs. im Klartext — direkt aus OpenAIs eigener Dokumentation. E-Mail, Telefonnummer, externe ID, Vorname und Nachname werden im Browser normalisiert und mit SHA-256 gehasht. Land (ISO-Code), Region, Stadt und Postleitzahl sind als Klartextfelder aufgeführt. OpenAIs Satz "raw customer information is not sent to OpenAI through automatic advanced matching" bezieht sich auf das Identitäts-Set; Geografie ist nicht Teil dieses Sets. Die Aufzeichnung stimmt damit überein: Die Postleitzahl war das am häufigsten geerntete Formularfeld, 100 Events über 28 Websites, ungehasht.
Es gibt eine Sperrliste — OpenAI schließt Passwörter, Einmalcodes, Kartennummern, Sozialversicherungsnummern, Geburtsdaten, Krankengeschichte, Diagnosen und gerichtsbezogene Felder aus. Das ist eine echte Schutzmaßnahme und Anerkennung wert. Es ist auch eine Sperrliste, was bedeutet: Sie schützt die Kategorien, an die jemand gedacht hat.
Identität ist nicht die einzige Nutzlast. Die Events tragen auch den URL-Pfad der Seite, die sie ausgelöst hat — Produktseiten, Artikel-URLs, Checkout-Schritte — wobei Suchbegriffe im Query-String laut Bericht entfernt werden. Für einen Händler heißt das: die konkreten Artikel, die Sie angesehen haben; für einen Verlag: die konkreten Artikel, die Sie gelesen haben.
★ Der Default wurde am 2026-08-17 angeschaltet. AAM war für neu erstellte Web-Pixel bereits der Default; an diesem Datum hat OpenAI es auch für bestehende Pixel eingeschaltet, als Opt-out statt Opt-in. Der Forscher fand AAM auf 638 von 881 Pixeln aktiviert, deren Einstellungen sichtbar waren. Wenn Sie Anfang 2026 ein OpenAI-Pixel installiert und seitdem nicht angefasst haben, hat Ihre Website im August angefangen, Formularfelder abzugreifen — ohne ein Deployment auf Ihrer Seite.
Wo es nicht funktioniert
Das ist kein universeller Tracker, und die Ausnahmen zählen hier mehr als üblich:
- Chrome für Android — die Plattform, auf der der Forscher es reproduziert hat. Betroffen.
- Safari und Chrome auf iOS — nicht betroffen. Safaris Intelligent Tracking Prevention blockiert das Third-Party-Cookie, und jeder iOS-Browser läuft auf WebKit, also erbt "Chrome auf dem iPhone" dieselbe Blockade. Eine iPhone-Nutzerin und ein Android-Nutzer sind hier wirklich in unterschiedlichen Bedrohungsmodellen.
- Desktop-Chrome — in der veröffentlichten Arbeit nicht getestet. Unbekannt, nicht sicher.
- Die Abdeckung ist ohnehin nur teilweise. Nur etwa 20 % der beobachteten ChatGPT-Sitzungen erzeugten überhaupt ein Sync-Token; der mobile Web-Client liefert Anzeigen ohne Sync aus. Welcher Graph auch existiert, er ist lückenhaft, nicht vollständig.
Diese letzte Zahl schneidet in beide Richtungen. Sie bedeutet, dass die Kennung weit von universell entfernt ist — und sie bedeutet, dass "ich habe einmal nachgesehen und nichts gefunden" kein Beweis für Abwesenheit ist.
Prüfen Sie Ihren eigenen Browser
Fünf Minuten, kein Werkzeug außer den DevTools. Machen Sie es auf Android-Chrome, wenn Sie den Mechanismus überhaupt sehen wollen.
Suchen Sie nach dem Sync, dann nach dem Cookie
# 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.
Dekodieren Sie das JWT lokal. Ein Token, das ein kontobezogenes sub enthält, in einen webbasierten Decoder einzufügen, übergibt diese Kennung an einen Dritten — eine etwas absurde Art, eine Datenschutz-Untersuchung zu beenden.
Wenn Sie das Pixel betreiben
Sie sind hier Verantwortlicher im datenschutzrechtlichen Sinne, und zwar auf eine Weise, die das Install-Snippet des Pixels nicht offensichtlich gemacht hat. Zwei Einstellungen und eine Gewohnheit:
- Ads Manager → Tools → Conversions → Data Source → Edit pixel, dann Automatic Advanced Matching ausschalten (oder bestätigen, dass Sie es anhaben wollen). Die Einstellung gilt pro Pixel — wenn Sie mehrere betreiben, ändern Sie mehrere. Seit 2026-08-17 ist der Default an, Nichtstun ist also eine Entscheidung.
- Prüfen Sie, ob Ihre Consent-Plattform das Skript vor der Einwilligung wirklich am Laden hindert, statt hinterher oaiq("consent", false) aufzurufen. Und kennen Sie die Grenze: Dieser Aufruf entfernt __obref und __oppref, beide auf Ihrer Domain. Er kann __obi nicht von .openai.com entfernen.
- Laden Sie eine Checkout- oder Anmeldeseite mit offenen DevTools, senden Sie Testdaten ab und lesen Sie die Event-Nutzlast, die an bzr.openai.com geht. Bestätigen Sie, welche Ihrer Felder die fm- und ht-Collectors aufgegriffen haben. Felder, die Sie nie als Werbesignal gedacht haben — eine Postleitzahl, ein Freitextfeld in einem Supportformular — sind die, nach denen man sucht.
- Wenn AAM an ist, überträgt Ihre Website gehashte Kundenidentität und Geografie im Klartext an OpenAI. Das gehört in Ihre Datenschutzerklärung und Ihr Verarbeitungsverzeichnis, egal ob Ihre CMP korrekt konfiguriert ist oder nicht.
★ Gehasht ist nicht anonym. SHA-256 einer E-Mail-Adresse ist eine deterministische Kennung: Wer dieselbe E-Mail besitzt, berechnet denselben Digest. Das ist der ganze Zweck — so funktioniert der Join. Behandeln Sie gehashte Identität in Ihrer Compliance-Analyse als pseudonyme personenbezogene Daten, nicht als anonymisierte.
Wenn Sie ChatGPT nur benutzen
- Schalten Sie Settings → Data Controls → Marketing Privacy aus. Der richtige Schalter, nach dem man greift; die Wirkung auf
__obiist unbestätigt, siehe oben. - Nutzen Sie den Cookie-Manager, nicht nur die Kontoeinstellung — beim abgemeldeten Surfen ist der Footer-Link "Manage Cookies" / "Your Privacy Choices" die einzige Oberfläche, die Sie haben.
- Senden Sie Global Privacy Control. OpenAI erklärt, GPC als rechtlich gültiges Opt-out-Signal zu respektieren. Firefox und Brave senden es von sich aus; für Chrome gibt es Erweiterungen. Es ist ein maschinenlesbares Signal, hinter dem in Kalifornien und mehreren anderen Rechtsräumen regulatorisches Gewicht steht.
- Die Browserwahl ist hier eine echte Einstellung. Safari blockiert den Mechanismus heute. Das ist kein Argument, wegen eines Cookies den Browser zu wechseln — es ist eine Erinnerung daran, dass die Third-Party-Cookie-Politik mehr für Ihre Datenschutzlage tut als jeder Schalter, den Sie in einem Einstellungsbildschirm finden.
Was tatsächlich belegt ist und was nicht
Lohnt sich auseinanderzuhalten, weil die Berichterstattung es verwischt:
Durch Aufzeichnung belegt: die Endpoints, die Cookie-Attribute, die JWT-Claims einschließlich consent_decision, die vier Erfassungsquellen, die Aufteilung gehasht/Klartext auf Feldebene (die OpenAIs eigene Dokumentation bestätigt), die Zahlen — 936 Pixel über 1.029 Hostnames, 12 von 30 __obi-Werten bei mehreren Werbetreibenden, 638 von 881 Pixeln mit aktiviertem AAM.
Erschlossen und vom Autor als solches gekennzeichnet: dass __obi serverseitig zurück auf ein ChatGPT-Konto gejoint wird. Das Token-Design weist darauf hin; der Join wurde nicht beobachtet.
Von OpenAI unbeantwortet: warum __obi als Analytics klassifiziert ist und ob eine Ablehnung der Marketing-Einwilligung den Sync dennoch auslöst.
Ungetestet: Desktop-Chrome sowie die Frage, ob der Marketing-Privacy-Schalter das Verhalten auf der Leitung stoppt.
Prüfen Sie sich selbst
0/5Quellen & weiterführende Literatur
- Buchodi — "ChatGPT now knows what you do on other websites via ad collector" — die primäre Untersuchung: Endpoints, JWT-Claims, Cookie-Attribute, Labels der Erfassungsquellen und die Zahlen, die auf dieser Seite durchgängig zitiert werden. Enthält die vom Autor selbst genannten Einschränkungen.
- daily.dev — "ChatGPT now knows what you do on other websites via ad collector" — der Aggregator-Eintrag zur Geschichte, die am 2026-09-21 die Startseite von Hacker News erreichte.
- OpenAI Developers — Ads: Measurement Pixel — offizielle Dokumentation zu
__obref/__oppref, der Liste der SHA-256-gehashten Felder, den geografischen Klartextfeldern undoaiq("consent", false). - OpenAI Developers — Ads — die Produktoberfläche für Werbetreibende, zu der das Pixel gehört.
- OpenAI Help Center — Conversion Measurement — OpenAIs Beschreibung von Automatic Advanced Matching und des Einstellungspfads pro Pixel.
- OpenAI Help Center — Ads in ChatGPT — die nutzerseitigen Einstellungen, einschließlich Settings → Data Controls → Marketing Privacy.
- Cybersecurity News — "ChatGPT Ad Tracking Cookie Follows Users Across Third-Party Advertiser Websites" — unabhängiger Bericht mit den Details zu den Cookie-Attributen.
- Global Privacy Control — das Browser-Signal, das OpenAI erklärt als gültiges Opt-out zu respektieren.
Weiter
- Was Ihr Coding-Agent tatsächlich hochlädt — dieselbe Frage eine Ebene tiefer: Egress messen statt einem Datenschutz-Schalter vertrauen.
- Sign in with ChatGPT — die andere Stelle, an der Ihre OpenAI-Konto-Identität openai.com verlässt.
- Agentische Browser brechen die Same-Origin-Policy — was passiert, wenn das, was Ihre Cookies trägt, ein Agent ist und nicht Sie.