Voraussetzungen
JTL-Shop 5.6.0 bis 5.8.0 (im Einsatz auf 5.7), Template NOVA, PHP ab 8.1 mit den Erweiterungen sodium, curl, mbstring und openssl. Der JTL-Aufgabenplaner muss aktiv sein; PHP-FPM wird empfohlen, damit Ereignisse direkt nach der Seitenauslieferung gesendet werden. Dazu brauchen Sie ein Konto im OpenAI Ads Manager mit einem Pixel (Datenquelle) und einem Conversions-API-Schlüssel desselben Werbekontos.
Installation
Aus dem JTL Extension Store
Nach dem Kauf erscheint die Erweiterung im Backend Ihres Shops unter Plugin-Verwaltung → Meine Käufe. Domain anbinden, installieren, aktivieren. Die Lizenz verwaltet der Shop; ein separater Lizenzschlüssel ist nicht erforderlich.
Manuell (Direktlizenz)
Das ZIP über den Download-Link aus Ihrer Lizenz-E-Mail laden, in der Plugin-Verwaltung → Upload hochladen, installieren und aktivieren. Den Lizenzschlüssel (beginnt mit ctg) tragen Sie im Plugin-Reiter Lizenz ein. Die kostenlose 14-Tage-Testlizenz bestellen Sie im Shop.
Erste Schritte
Fünf Schritte von der Installation bis zur ersten gezählten Bestellung. Ab Werk sendet das Plugin nur im Testmodus.
-
Pixel eintragen
Reiter Pixel → Pixel hinzufügen: Bezeichnung und Pixel-ID aus dem Ads Manager (Tools → Conversions → Datenquelle).
-
Conversions-API-Schlüssel speichern und testen
Beim Pixel den Schlüssel speichern — die Anleitung erscheint über das Info-Symbol bei „kein Schlüssel“: im Ads Manager Tools → Conversions → Conversion keys → neuen Schlüssel anlegen, sofort kopieren. Nicht mit dem Ads-Manager-API-Schlüssel verwechseln. Danach Testsendung: OpenAI prüft Schlüssel und Pixel-ID, speichert aber nichts.
-
Produktionsdomain eintragen
Oben im Reiter Pixel unter Conversions API die Domain des Live-Shops eintragen. Nur dort wird später live gesendet.
-
Einwilligung festlegen
JTL-Consent-Manager (Eintrag „ChatGPT Ads Conversion-Messung“) oder eigene CMP mit
window.ctGptAds.grant()/.deny(); vor dem Laden des Skriptswindow.ctGptAdsQueue = ['grant']. Die Datenschutzerklärung ergänzen — Mustertexte liegen im Plugin-Verzeichnis. -
Live schalten und kontrollieren
Auf der Produktionsdomain Live-Betrieb einschalten. Im Ads Manager unter Tools → Conversions → Ereignisstream erscheinen Browser-Ereignisse als
pixel_sdk, Server-Ereignisse alsserver_to_server.
Was gesendet wird
Ohne Einwilligung wird nichts geladen, gespeichert oder gesendet. Browser- und Server-Anteil eines Ereignisses tragen dieselbe ID; OpenAI führt sie zusammen.
| Ereignis | Weg | Inhalt |
|---|---|---|
page_viewed | Browser | Seitenaufruf |
contents_viewed | Browser | Artikelseite: Artikel, Nettopreis |
checkout_started | Browser | einmal je Checkout |
items_added | Browser und Server | tatsächlich hinzugefügte Menge (Warenkorb vorher/nachher), genau ein Ereignis je Aktion |
registration_completed | nur Browser | Kontoeröffnung; kein Datensatz, kein Server-Versand |
order_created | nur Server | Bestellung bei verbindlicher Aufgabe |
Server-Ereignisse enthalten zusätzlich die Anzeigenklick-Kennung (oppref), die Browser-Referenz (obref) und — jeweils im Reiter Datenschutz abschaltbar — IP-Adresse und Browserkennung sowie bei Bestellungen gehashte Kontaktdaten aus der Rechnungsadresse (E-Mail, Telefon, Name, installationsbezogene Kundenkennung als SHA-256; Ort, PLZ, Land).
Bestellwert: netto ohne Versand, Kupons anteilig abgezogen, in der kleinsten Währungseinheit, bei Bestellabschluss festgehalten. Konfiguratoren zählen inklusive Komponenten. Bestellungen nur aus Geschenkgutscheinen sind keine Conversion. Bestellungen mit einem auf Artikel beschränkten Kupon und gleichzeitigem Wertausschluss werden nicht gemeldet, weil der Wert dann nicht sicher bestimmbar ist.
Regeln (Reiter Events-Werte)
Optional — ohne Regeln wird jede Bestellung vollständig gemeldet. Die Regeln gelten einheitlich für Bestellungen, Warenkorbaktionen und Artikelaufrufe; Komponenten von Konfiguratoren werden wie eigene Artikel geprüft. Die Wertvorschau zeigt für die letzten zehn Bestellungen den gemeldeten Wert und den Versandstand je Pixel.
| Regel | Wirkung |
|---|---|
| Bestellung nicht melden | Enthält die Bestellung bzw. Aktion einen solchen Artikel, entsteht kein Ereignis. |
| Nicht als Umsatz zählen | Artikel und Wert entfallen; bleibt kein Wert, wird amount: 0 gemeldet. |
| Produktname und -nummer nicht übertragen | Der Artikel entfällt aus den Artikeldaten, sein Wert bleibt. |
| Gutschein-Artikel | Der Verkauf zählt nicht als Umsatz — sonst doppelt bei Einlösung. |
Testmodus, Live und Staging
Testmodus (Voreinstellung): Ereignisse gehen mit validate_only an OpenAI — geprüft, nicht gezählt; im Ereignisstream erscheinen sie nicht. Live nur mit eingetragener Produktionsdomain und nur, wenn der Shop genau unter ihr läuft; einschalten lässt sich Live nur dort. Port und Unterverzeichnis gehören zur Domain: shop.de:8443 oder shop.de/staging sind nicht shop.de.
Versand und Fehlerbehandlung
Gesendet wird direkt nach der Seitenauslieferung (PHP-FPM), stündlich über den Aufgabenplaner und auf Knopfdruck („Warteschlange jetzt abarbeiten“). Vor jedem Aufruf werden Freigabe, Einwilligung und Pixel frisch geprüft. Wird ein Schlüssel abgelehnt, pausieren die betroffenen Ereignisse bis zu einem neuen Schlüssel oder einer erfolgreichen Testsendung; Netzwerk- und Serverfehler werden bis zu acht Mal wiederholt, unter Beachtung der Wartezeitvorgaben von OpenAI. Ereignisse älter als sieben Tage verfallen. Die Warteschlange unterscheidet: wartet, validiert (Testmodus), übermittelt, verworfen, lokal bzw. von OpenAI abgelehnt, fehlgeschlagen.
Betrieb
- Stopp-Schalter (Reiter Übersicht): hält Pixel, Ereignisse und Versand sofort an, ohne das Plugin zu deaktivieren; Widerrufe werden weiter verarbeitet.
- Doppelte Einbindung: Ist das OpenAI-Pixel zusätzlich im Template, in einem anderen Plugin oder im Google Tag Manager eingebunden, misst das Plugin im Browser nicht doppelt und meldet den Befund.
- Alarme (Glockensymbol und Übersicht): abgelehnter Schlüssel, nicht übermittelte Ereignisse, stockender Versand, Live ohne Produktionsdomain, doppelte Einbindung und weitere.
- Automatic Advanced Matching steuern Sie im Ads Manager, nicht im Shop.
Datenschutz und Fristen
Personenbezogene Werte liegen verschlüsselt im Shop. Speicherfristen: Anzeigenklick-Daten 7 Tage; Checkout-Zuordnung ohne Bestellung 24 Stunden; festgehaltene Bestelldaten 6 Tage; Nutzerdaten in der Warteschlange bis zum Versand, höchstens 7 Tage; Einwilligungskontexte, Zuordnungen zu Bestellungen und Ereignisdaten 30 Tage; Protokoll 30 Tage (nur Metadaten). Cookies und Einträge im lokalen Speicher sind im Reiter Datenschutz aufgeführt; Mustertexte für die Datenschutzerklärung liegen im Plugin-Verzeichnis (DATENSCHUTZ-MUSTERTEXT.md).
Testphase und Lizenzierung
Kostenlose Testlizenz (0 €, keine Zahlungsdaten): 14 Tage voller Funktionsumfang, eine je Shop-Domain. Ohne gültige Lizenz pausiert das Tracking; Einstellungen und Pixel bleiben erhalten. Eine Lizenz je Produktionsdomain, Test- und Staging-Domains frei. Kauflizenzen laufen dauerhaft; nach Ablauf des Lizenzzeitraums endet ausschließlich der Bezug neuer Updates. Preise auf der Preisseite.
Update, Deaktivierung, Deinstallation
Update: Einstellungen, Pixel und Lizenz bleiben erhalten. Deaktivierung: löscht Warteschlange, Checkout-Zuordnungen, Ereignisse und Einwilligungskontexte; Einstellungen, Pixel, Lizenz und Protokoll bleiben. Deinstallation mit Datenlöschung: entfernt alle Plugin-Tabellen und die eigene Schlüsseldatei. Die Schlüsseldatei data/keys.php gehört zusammen mit der Datenbank in jede Sicherung.
Problemlösung
„Versand stockt“
Meist läuft der JTL-Aufgabenplaner nicht. Unter Einstellungen → Aufgabenplaner prüfen oder im Reiter Pixel „Warteschlange jetzt abarbeiten“ nutzen.
Keine Ereignisse im Ereignisstream
Im Testmodus erscheinen Server-Ereignisse dort grundsätzlich nicht. Prüfen Sie, ob Live eingeschaltet ist, ob die Produktionsdomain exakt zur Shop-Domain passt und ob eine Einwilligung vorliegt.
Schlüssel abgelehnt
Pixel-ID und Schlüssel müssen zum selben Werbekonto gehören. Neuen Schlüssel unter Conversion keys anlegen, speichern und Testsendung ausführen — pausierte Ereignisse laufen danach automatisch weiter.
Änderungen (Auszug)
War diese Seite hilfreich? Feedback per E-Mail senden — wir lesen jede Rückmeldung.