# ChatGPT / OpenAI Ads

So machen Sie Ihre Verkäufe aus ChatGPT-Werbeanzeigen messbar. Sie benötigen dafür rund fünfzehn Minuten und einen  
Zugang zum OpenAI Ads Manager unter ads.openai.com.

#### Das Meiste ist bereits erledigt

Ihr Shop ist über Shoplytics für ChatGPT Ads vorbereitet. Wir schalten das Tracking auf Klick frei, ohne Umbau an Ihrem Shop  
und ohne Programmierarbeit auf Ihrer Seite. Diese Ereignisse liefern wir dabei automatisch mit:  
  
\- **Seitenaufruf** - jemand landet aus einer Anzeige in Ihrem Shop  
\- **Produktansicht** - ein Artikel wird angesehen  
\- **In den Warenkorb gelegt**  
\- **Checkout gestartet**  
\- **Kauf** - inklusive Bestellwert und der gekauften Artikel  
  
Jedes davon senden wir auf zwei Wegen: aus dem Browser über den Pixel und zusätzlich von unserem Server aus. OpenAI  
empfiehlt genau diese Kombination, weil serverseitig gesendete Verkäufe auch dann ankommen, wenn ein Werbeblocker aktiv  
ist oder Cookies fehlen. Beide Wege tragen dieselbe Ereignis-Kennung, damit nichts doppelt gezählt wird. Unter dem Strich  
sehen Sie mehr Ihrer tatsächlichen Verkäufe.

  
Zwei Dinge können wir Ihnen nicht abnehmen, weil sie nur im Werbekonto selbst möglich sind:

<p class="callout info">**Die zwei Schritte im Überblick  
  
Schritt 1:** Sie holen zwei Werte aus Ihrem Werbekonto und schicken sie uns. Damit bauen wir die Datenleitung auf. Diesen Teil  
machen Sie einmal, den Rest übernehmen wir.  
**Schritt 2:** Sie legen im Werbekonto fest, welche Aktionen als Conversion gezählt werden sollen. Das kann nur der  
Kontoinhaber, deshalb bleibt dieser Teil bei Ihnen.  
</p>


#### Schritt 1: Pixel-ID und Conversions-API-Key finden

Beide Werte finden Sie an derselben Stelle. Schicken Sie uns beide, dann hinterlegen wir sie in Shoplytics.


##### Wert 1 von 2: Die Pixel-ID

Die Kennung des Datencontainers, in dem Ihre Verkäufe gesammelt werden. Kein Geheimnis, darf offen übermittelt werden.  
  
1\. Melden Sie sich unter ads.openai.com in Ihrem Werbekonto an.  
2\. Öffnen Sie im Menü Tools und darin den Punkt Conversions.  
3\. Bleiben Sie auf dem Reiter Datenquelle. Hier stehen Ihre angelegten Pixel.  
4\. Die ID steht direkt unter dem Namen des Pixels. Fahren Sie mit der Maus über die Zeile und kopieren Sie die Pixel-ID.  
5\. Ist noch kein Pixel vorhanden, legen Sie zuerst einen an und benennen ihn nach Ihrem Shop.  
So sieht der Wert ungefähr aus: eine längere Folge aus Buchstaben und Ziffern, zum Beispiel 2Fpr6SG4h87eMXrACYkfK9.


##### Wert 2 von 2: Der Conversions-API-Key

Erlaubt es unserem Server, Bestellungen direkt an OpenAI zu melden. Der Schlüssel ist ein Passwort und gehört entsprechend behandelt.  
  
1\. Sie bleiben im selben Bereich unter **Tools**, Punkt **Conversions**.  
2\. Klicken Sie oben rechts auf das **Schlüssel-Symbol**, die Verwaltung der Conversion-Keys.  
3\. Legen Sie dort einen neuen Schlüssel an.  
4\. Vergeben Sie einen wiedererkennbaren Namen, zum Beispiel **Shoplytics**.  
5\. **Kopieren Sie den Schlüssel sofort**. Er wird nur ein einziges Mal angezeigt und lässt sich danach nicht mehr aufrufen.  
So sieht der Wert ungefähr aus: er beginnt mit sk-svcacct- und ist deutlich länger als die Pixel-ID.

<p class="callout info">**Falls Sie den Bereich Conversions nicht finden**   
Dann ist Ihr Werbekonto dafür noch nicht freigeschaltet. Das können weder Sie noch wir selbst aktivieren, wenden Sie sich an  
Ihren Ansprechpartner bei OpenAI. Haben Sie den Schlüssel nicht rechtzeitig kopiert, löschen Sie den alten Eintrag und legen  
einen neuen an.</p>

#### Schritt 2: Conversion-Aktionen in ChatGPT anlegen

Wenn Sie schon Meta-Anzeigen schalten, kennen Sie es so: Das Tracking sendet ein Standard-Ereignis, und es erscheint  
automatisch im Reporting. Bei ChatGPT Ads funktioniert das nicht. Hier ist es **wie bei Microsoft Ads (Bing)**: Das gesendete  
Ereignis ist zunächst nur die Datenleitung. Welche dieser Aktionen als Conversion gilt, legen Sie zusätzlich selbst im  
Werbekonto fest.  
Wir senden den Kauf also zuverlässig, gezählt wird er aber erst, wenn Sie ChatGPT einmal sagen, dass Sie ihn als  
Conversion zählen möchten. Erst dann erscheint er in den Berichten und lässt sich als Kampagnenziel auswählen.

So finden Sie den Bereich: links im Menü unter Tools der Punkt Conversions, oben der Reiter Conversion-Ereignisse, darin der Knopf zum Anlegen.

##### So gehen Sie vor  
  


[![image.png](https://docs.shoplytics.de/uploads/images/gallery/2026-09/scaled-1680-/WITlnM67ZAH4qvNM-image.png)](https://docs.shoplytics.de/uploads/images/gallery/2026-09/WITlnM67ZAH4qvNM-image.png)

1\. Öffnen Sie im Ads Manager links im Menü **Tools** und darin **Conversions**.  
2\. Wechseln Sie oben auf den Reiter **Conversion-Ereignisse**.  
3\. Klicken Sie auf **+ Conversion-Ereignis erstellen**. Ist bereits eines angelegt, finden Sie den Knopf rechts oben unter **+ Erstellen**.  
4\. Füllen Sie die vier Felder aus: **Datenquelle** (Ihr Pixel aus Schritt 1), **Basisereignis** (siehe unten), **Conversion-Name** (freier  
Text, max. 30 Zeichen) und das **Click-through-Attributionsfenster** in Tagen.  
5\. Klicken Sie auf **Erstellen** und wiederholen Sie das für alle fünf Conversions.

<p class="callout info">**Gut zu wissen**   
**Attributionsfenster**: Legen Sie hier fest, nicht wir im Tracking. 30 Tage sind für den Kauf ein guter Startwert. Beim reinen  
Seitenaufruf dürfen es gern weniger Tage sein, sonst zählt er noch einen Monat nach dem Klick als Conversion.  
**Conversion-Name**: reiner Freitext. Er beeinflusst die Messung nicht, nur die Beschriftung in Ihren Berichten.  
**Eine Aktion gehört zu genau einer Datenquelle**. Betreiben Sie mehrere Shops in einem Werbekonto, legen Sie pro Shop  
einen eigenen Satz an.  
**Optimierung auf Conversions**: Beim Anlegen einer Kampagne wählen Sie genau eine dieser Aktionen als Ziel. Diese Auswahl  
lässt sich später nicht mehr ändern, und bestehende Kampagnen lassen sich nicht nachträglich umstellen. Im Zweifel lieber eine  
neue Kampagne anlegen.  
**Wenn Bezeichnungen abweichen**: OpenAI verändert die Oberfläche derzeit häufig. Heisst ein Eintrag anders als hier  
beschrieben, wählen Sie den inhaltlich passenden und sagen Sie uns Bescheid.</p>

####   
Die fünf Conversions, die Sie anlegen

Wir senden fünf Ereignisse entlang des Kaufwegs. Legen Sie für jedes eine Aktion an, dann sehen Sie später auch, an welcher Stelle  
Interessenten aussteigen. Wo in den Bildern XXXXX Ihr Pixel XXXXX steht, wählen Sie Ihre eigene Datenquelle aus Schritt 1 aus.

1\. Seitenaufruf - Basisereignis: Seite aufgerufen

[![image.png](https://docs.shoplytics.de/uploads/images/gallery/2026-09/scaled-1680-/XPg3JuJp2vFTRTRD-image.png)](https://docs.shoplytics.de/uploads/images/gallery/2026-09/XPg3JuJp2vFTRTRD-image.png)

2\. Produktansicht - Basisereignis: Inhalte angesehen

[![image.png](https://docs.shoplytics.de/uploads/images/gallery/2026-09/scaled-1680-/sXzbA4Wg8KnfZ8cx-image.png)](https://docs.shoplytics.de/uploads/images/gallery/2026-09/sXzbA4Wg8KnfZ8cx-image.png)

3\. In den Warenkorb - Basisereignis: Artikel hinzugefügt

[![image.png](https://docs.shoplytics.de/uploads/images/gallery/2026-09/scaled-1680-/krJcgjJOPNouMgS2-image.png)](https://docs.shoplytics.de/uploads/images/gallery/2026-09/krJcgjJOPNouMgS2-image.png)

4\. Checkout gestartet - Basisereignis: Checkout gestartet

[![image.png](https://docs.shoplytics.de/uploads/images/gallery/2026-09/scaled-1680-/ZYAcgLWOJeb70r0M-image.png)](https://docs.shoplytics.de/uploads/images/gallery/2026-09/ZYAcgLWOJeb70r0M-image.png)

5\. Kauf - Basisereignis: Bestellung erstellt

[![image.png](https://docs.shoplytics.de/uploads/images/gallery/2026-09/scaled-1680-/GDaoCSBdF1qy9Bv5-image.png)](https://docs.shoplytics.de/uploads/images/gallery/2026-09/GDaoCSBdF1qy9Bv5-image.png)

####  

<details id="bkmrk-h%C3%A4ufige-fragen-purch"><summary>Häufige Fragen</summary>

## Purchase-Event und Doppelzählung

**Sendet Shoplytics `order_created` genau einmal je Bestellung?**

Ja. Das Event wird beim ersten normalisierten bezahlten Bestellzustand gesendet. Für dieselbe Order entsteht kein zweites erfolgreiches `order_created`, weder bei Webhook-Wiederholung noch bei Retry, erneutem Capture oder einer anderen Verarbeitung auf unserer Seite.

**Was passiert, wenn trotzdem zweimal gesendet wird?**

Dann greift die Deduplizierung bei OpenAI. Der Abgleichsschlüssel besteht aus Pixel-ID, Event-Name und Event-ID. Das zuerst eingehende Event wird verwendet, spätere Duplikate mit demselben Schlüssel werden verworfen. Doppelzählung entsteht deshalb nur, wenn zwei Sendungen unterschiedliche IDs tragen.

---

## Event-IDs

**Ist `events[].id` ein Pflichtfeld?**

Ja. In der Conversions API ist `id` bei jedem Event Pflicht, unabhängig vom Event-Typ und auch bei rein serverseitigem Versand. Ein Event ohne `id` wird abgelehnt, und weil ein ungültiges Event den gesamten Batch scheitern lässt, fällt dann auch der Rest durch.

**Muss bei einem Retry dieselbe ID verwendet werden?**

Ja, zwingend. Doppelte Zustellung mit identischer ID ist unkritisch, OpenAI verwirft das Duplikat. Eine neue ID beim Retry erzeugt dagegen eine zweite Conversion. Unsere Implementierung reicht deshalb den einmal erzeugten Wert durch und leitet ihn serverseitig nicht neu her.

**Können wir ein bestimmtes ID-Format vorgeben, zum Beispiel `shopify:<shop>:order:<order_gid>:order_created:v1`?**

Nein. Wir verwenden systemweit unsere eigenen, intern erzeugten Event-IDs, die Browser und Server synchron verwenden. Ein kundenindividuelles Format würde diese Synchronisierung aufbrechen.

Fachlich ist das auch nicht nötig. OpenAI schreibt kein Format vor. Verlangt ist ausschließlich, dass Pixel-`event_id` und Server-`id` denselben Wert tragen. Ob das eine Bestellnummer, eine UUID oder eine interne Kennung ist, spielt für die Deduplizierung keine Rolle. Die Beispiele in der OpenAI-Doku verwenden Bestellnummern wie `order_12345`, das ist ein Beispielwert, keine Vorgabe.

**Wie ordnen wir dann eine gemeldete Conversion einer konkreten Bestellung zu?**

Über unsere Rohdaten. OpenAI kennt ohnehin kein Feld für eine Bestellnummer. Die `contents`-Datenform hat nur `type`, `amount`, `currency` und `contents[]`, auf Event-Ebene gibt es weder `transaction_id` noch `order_id`. Der einzige Vorgangsbezug im Payload ist die Event-ID. Die Zuordnung zur Bestellung und zur GA4-`transaction_id` passiert deshalb in jedem denkbaren Setup auf unserer Seite, nicht bei OpenAI.

---

## Datenminimierung

**Lässt sich das `user`-Objekt vollständig weglassen?**

Ja. Sämtliche Felder in `events[].user` sind optional, das Objekt selbst ebenfalls. Das Event wird auch ohne angenommen. Die Zuordnung stützt sich dann ausschließlich auf den Klick-Identifier.

**Bleibt das so, wenn Shoplytics später gehashte Nutzerdaten einführt?**

Eine Aktivierung erfolgt nur nach ausdrücklicher Freigabe des Kunden. Ohne Freigabe bleibt das Objekt weg.

**Lässt sich das Tracking ohne Browser-Pixel betreiben, also rein serverseitig?**

Technisch ja, aber mit Einschränkungen, die man kennen muss.

Der Klick-Identifier `oppref` kommt als Query-Parameter auf der Landingpage an. Ihn kann grundsätzlich auch ein Server aus der URL lesen und selbst speichern, dafür ist der Pixel nicht zwingend erforderlich.

Was ohne Pixel entfällt:

- Die First-Party-Cookies `__oppref` und `__obref` werden nicht gesetzt, weil der Pixel sie schreibt. Die Wiederverwendung des Klick-Identifiers auf Folgeseiten muss dann vollständig selbst gebaut werden.
- `obref`, die Browser-Referenz, existiert gar nicht. Sie stammt ausschließlich vom Pixel.
- Alle browserseitigen Events entfallen, also alles vor dem Kaufabschluss.
- Automatic Advanced Matching entfällt, das ist eine reine Pixel-Funktion.

OpenAI beschreibt in seiner Doku durchgehend das kombinierte Setup aus Pixel und Conversions API und empfiehlt es ausdrücklich. Ein reiner Serverbetrieb ist damit nicht ausgeschlossen, aber nicht der dokumentierte Standardweg, und die Attribution wird schwächer.

**Ist Automatic Advanced Matching abschaltbar?**

Ja, es ist eine Einstellung auf Kontoseite und keine Voraussetzung für die Messung.

---

## Schlüssel und Übergabe

**Wie wird der Conversions-API-Key übergeben?**

Über einen geschützten Eingabeweg im Account beziehungsweise einen verschlüsselten Einmal-Link. Nicht per E-Mail im Klartext.

**Wie wird er gespeichert und verarbeitet?**

API-Keys werden ausschließlich verschlüsselt gespeichert. Im Browser kann allenfalls der verschlüsselte Wert sichtbar werden. Klartext-Key und Entschlüsselungsschlüssel erreichen weder Browser noch clientseitigen Code. Entschlüsselt wird ausschließlich serverseitig, unmittelbar vor dem Server-zu-Server-Aufruf. Klartext-Logs und frei zugängliche Konfigurationen entstehen dabei nicht.

**Warum darf der Key nie ins Frontend?**

Weil die Conversions API ausdrücklich server-only ist. Ein Key im Seitencode wäre sofort auslesbar. Im Browser läuft der Pixel, und der braucht nur die Pixel-ID, die kein Geheimnis ist.

---

## integration\_source

**Wird ein stabiler `integration_source`-Wert gesendet?**

Ja, `shoplytics`, auf oberster Ebene jedes Requests und bei jedem Batch identisch. OpenAI sieht das Feld für alle vor, die Events im Auftrag von Werbetreibenden senden. Es ist kein Pflichtfeld und hat keinen Einfluss auf Authentifizierung oder Autorisierung.

---

## Consent, Aufbewahrung, Widerruf

**Wird der Consent-Status technisch abgebildet?**

Ja. Der Pixel kennt nur an oder aus, einen Consent Mode im Google-Sinn gibt es bei OpenAI nicht, also keine cookielosen Pings und keine Modellierung. Bei fehlender Einwilligung wird nichts gesendet, und blockierte Events werden später nicht nachgeholt. Serverseitiges Senden ist dabei kein Umgehungsweg, sondern nur ein anderer Transportweg und folgt demselben Status.

**Gibt es eine definierte Aufbewahrungsfrist und eine Löschung auf Anforderung?**

Ja, mit sofort wirksamem Sendestopp bei Widerruf oder Deaktivierung.

---

## Test und Abnahme

**Gibt es einen Validierungslauf ohne Speicherung?**

Ja. Die Conversions API kennt `validate_only: true`. Damit werden Zugangsdaten und Schema geprüft, ohne Daten zu schreiben.

**Liefert ihr formale Readbacks je Event-ID mit HTTP-Status, Response-Body und Retryzahl?**

In dieser Form nicht. Unser Abnahmeverfahren ist ein anderes und erfüllt denselben Zweck:

- Wir führen echte Testbestellungen durch, auf eigenen Namen und mit eigenen Zahlungsmitteln. Damit lässt sich prüfen, ob der Request den von OpenAI erwarteten Parametern entspricht.
- Wir erfassen die Rohdaten jeder Bestellung, wie bei Google Ads und Meta Ads auch.
- Dadurch lassen sich bereits in der ersten Woche nach den ersten Käufen die eigenen Rohdaten samt Klick-IDs den von OpenAI gemeldeten Conversions gegenüberstellen.

Das ist die Gegenprobe, auf die es ankommt: nicht ob ein Event angenommen wurde, sondern ob es im Ads Manager als Conversion auftaucht.

**Warum kann ein angenommenes Event trotzdem zu null Conversions führen?**

Weil `accepted` nur den Transport bestätigt. Damit daraus eine gezählte Conversion wird, muss zusätzlich eine Conversion-Aktion im Konto auf den passenden Event-Typ zeigen, das Event einer Kampagne zuzuordnen sein und ins Attributionsfenster fallen. Fehlt die Conversion-Aktion, bleibt die Zahl bei null, obwohl technisch alles korrekt gesendet wurde.

**Ist das Verfahren erprobt?**

Ja, das ChatGPT-Tracking läuft derzeit stabil auf über zwanzig Shops. Falls Probleme auftreten, beheben wir sie.

---

## Parallelbetrieb

**Können zwei CAPI-Sender gleichzeitig laufen?**

Nein, und das sollte auch nicht versucht werden. Zwei Sender erzeugen für dieselbe Conversion in aller Regel unterschiedliche Event-IDs, weil sie unabhängig voneinander generieren. Die Deduplizierung greift dann nicht, und die Conversion wird doppelt gezählt. Bei einem Wechsel wird umgeschaltet, nicht parallel betrieben.

---

## Wo steht die technische Grundlage?

Die vollständige Dokumentation, nach der das Tracking umgesetzt ist, liegt unter `shoplytics.de/gpt-tracking-doku`.

Die offiziellen OpenAI-Quellen:

- Measurement Pixel: [https://developers.openai.com/ads/measurement-pixel](https://developers.openai.com/ads/measurement-pixel)
- Conversions API: [https://developers.openai.com/ads/conversions-api](https://developers.openai.com/ads/conversions-api)
- Supported Events: [https://developers.openai.com/ads/supported-events](https://developers.openai.com/ads/supported-events)
- Conversion Tracking: [https://developers.openai.com/ads/conversion-tracking](https://developers.openai.com/ads/conversion-tracking)
- Conversion Measurement, Help Center: [https://help.openai.com/en/articles/20001409-conversion-measurement](https://help.openai.com/en/articles/20001409-conversion-measurement)

</details>