Das Wichtigste in Kürze
- Die Customer Events API von Shopify (Einstellungen → Kundenereignisse → Benutzerdefiniertes Pixel hinzufügen) ist der richtige Ort für dein Custom Event Tracking.
- Zu den Standard-Shopify-Events gehören page_viewed, product_viewed, product_added_to_cart und checkout_completed.
- Benutzerdefinierte Pixel (Custom Pixels) laufen in einer Sandbox-Umgebung mit Zugriff auf alle Checkout-Events – etwas, das theme.liquid-Skripte nicht können.
- Du schreibst Standard-JavaScript im Custom Pixel Editor – es ist keine Shopify-spezifische Syntax erforderlich.
Um benutzerdefinierte Events in Shopify hinzuzufügen, gehst du zu Einstellungen → Kundenereignisse → Benutzerdefiniertes Pixel hinzufügen und schreibst JavaScript, das die Standard-Events von Shopify mit analytics.subscribe() abonniert. So erfährst du, was Käufer in deinem Shop tun: wann sie Produkte in den Warenkorb legen, den Checkout starten oder deine Dankeseite erreichen, ohne dich in den Theme-Code einarbeiten zu müssen.
Wie füge ich Events in Shopify hinzu?
Gehe zu Einstellungen → Kundenereignisse → Benutzerdefiniertes Pixel hinzufügen. Das öffnet einen JavaScript-Editor, in dem du Code schreibst, der auf Shopifys Standard-Events “hört” und als Reaktion darauf deinen eigenen Tracking-Code ausführt.
Shopifys Standard-Events
Shopify stellt eine Reihe von Standard-Events entlang der Shopping Journey zur Verfügung. Dein benutzerdefiniertes Pixel (Custom Pixel) kann auf jedes davon hören:
Seiten-Events:
page_viewed- wird bei jedem Seitenaufruf ausgelöstcollection_viewed- wird ausgelöst, wenn eine Kategorie-Seite (Collection) aufgerufen wirdcart_viewed- wird ausgelöst, wenn die Warenkorb-Seite aufgerufen wird
Produkt-Events:
product_viewed- wird ausgelöst, wenn eine Produktseite aufgerufen wirdproduct_added_to_cart- wird ausgelöst, wenn ein Artikel in den Warenkorb gelegt wirdproduct_removed_from_cart- wird ausgelöst, wenn ein Artikel aus dem Warenkorb entfernt wirdsearch_submitted- wird ausgelöst, wenn eine Suchanfrage abgeschickt wird
Checkout-Events:
checkout_started- wird ausgelöst, wenn der Checkout beginntcheckout_contact_info_submitted- wird ausgelöst, wenn Kontaktdaten eingegeben werdencheckout_address_info_submitted- wird ausgelöst, wenn die Adresse eingegeben wirdcheckout_shipping_info_submitted- wird ausgelöst, wenn die Versandart ausgewählt wirdpayment_info_submitted- wird ausgelöst, wenn Zahlungsinformationen eingegeben werdencheckout_completed- wird auf der Bestellbestätigungsseite ausgelöst
Diese Events enthalten Kontextdaten: das angesehene Produkt, den Warenkorbwert beim Start des Checkouts, die Gesamtsumme der Bestellung bei Abschluss.
Informationen zum checkout.liquid-Tracking, das durch diese Events ersetzt wird, findest du unter Von checkout.liquid zu Checkout Extensions migrieren.
Ein benutzerdefiniertes Pixel schreiben
Hier ist ein einfaches Beispiel, das ein GA4-Event sendet, wenn ein Produkt in den Warenkorb gelegt wird:
analytics.subscribe('product_added_to_cart', (event) => {
const cartLine = event.data.cartLine
// In den dataLayer eines GTM-Containers pushen, der in diesem Pixel geladen ist
window.dataLayer = window.dataLayer || []
window.dataLayer.push({
event: 'add_to_cart',
ecommerce: {
currency: cartLine.cost.totalAmount.currencyCode,
items: [
{
item_id: cartLine.merchandise.sku,
item_name: cartLine.merchandise.product.title,
price: cartLine.merchandise.price.amount,
quantity: cartLine.quantity,
},
],
},
})
})
Und für ein Meta Pixel Purchase-Event beim Abschluss des Checkouts. Lade den Meta Pixel Basiscode ganz oben im selben Custom Pixel, damit fbq existiert:
analytics.subscribe('checkout_completed', (event) => {
const order = event.data.checkout
fbq('track', 'Purchase', {
value: order.totalPrice.amount,
currency: order.currencyCode,
content_ids: order.lineItems.map((item) => item.variant.sku),
content_type: 'product',
})
})
Wichtig: Die Funktion analytics.subscribe() wird von Shopifys Sandbox-Umgebung bereitgestellt. Du musst sie nicht importieren – sie ist in allen benutzerdefinierten Pixeln automatisch verfügbar.
Browserseitige Meta-Events wie dieses werden von Adblockern und iOS-Datenschutzeinstellungen gefiltert. Kombiniere sie daher mit serverseitigem Tracking - den entsprechenden Teil findest du im Shopify Meta Conversions API Setup.
Ein benutzerdefiniertes Pixel Schritt für Schritt einrichten
Schritt 1 - Gehe zu Einstellungen → Kundenereignisse
Schritt 2 - Klicke auf Benutzerdefiniertes Pixel hinzufügen
Schritt 3 - Gib ihm einen Namen (z.B. “GA4 Custom Events” oder “Meta Purchase Event”)
Schritt 4 - Schreibe im Code-Bereich dein JavaScript mit analytics.subscribe()
Schritt 5 - Lege die Berechtigungsstufe für den Kundendatenschutz fest:
- Nicht erforderlich - wird bei allen Besuchern unabhängig von deren Zustimmung ausgelöst
- Präferenzen - erfordert Zustimmung zu Präferenzen
- Analytik - erfordert Zustimmung zur Analytik
- Marketing - erfordert Zustimmung zum Marketing
Wähle für das Purchase-Tracking „Marketing“, wenn du an Werbeplattformen sendest, oder „Analytik“ für GA4.
Schritt 6 - Klicke auf Speichern und dann auf Verbinden
Weitere Möglichkeiten zum Hinzufügen von Tracking-Code findest du unter So fügst du Tracking-Skripte zu Shopify hinzu.
Dein benutzerdefiniertes Pixel testen
Shopifys integrierter Debugger. Im Kundenereignisse-Editor gibt es einen Live-Event-Feed, der ausgelöste Events in Echtzeit anzeigt. Öffne deinen Shop in einem anderen Tab und klick dich etwas durch — du solltest sofort sehen, wie page_viewed-Events auftauchen.
Browser-Konsole. Da Custom Pixels in einem Sandbox-Iframe laufen, kannst du deren console.log-Ausgabe nicht direkt sehen. Nutze stattdessen das Debugger-Panel von Shopify.
GA4 DebugView. Gehe in deiner GA4-Property zu Konfigurieren → DebugView. Löse Events in deinem Shop aus und beobachte, wie sie in Echtzeit erscheinen.
Benutzerdefinierte Events vs. Standard-App-Integrationen
Shopify bietet im Bereich Kundenereignisse vorgefertigte Integrationen für Google Analytics, Google Ads, Meta, TikTok, Snapchat und andere an. Diese übernehmen das Standard-Kauf-Tracking automatisch.
Verwende benutzerdefinierte Pixel, wenn:
- Du Events tracken musst, die die Standard-Integration nicht abdeckt (z.B. bestimmte Klicks auf Buttons, Scrolltiefe, eigene Funnel-Schritte)
- Du Events an eine weniger verbreitete Analytics-Plattform senden musst
- Du zusätzliche benutzerdefinierte Daten mit Standard-Events senden möchtest (z.B. Customer Lifetime Value, Produktkategorie)
Für die meisten Stores decken die Standard-Integrationen 80% der Bedürfnisse ab. Benutzerdefinierte Pixel schließen die Lücken.
FAQ
Wo laufen Custom Pixels im Storefront?
In einem Sandbox-Iframe, das von Shopify injiziert wird – deshalb hast du keinen direkten Zugriff auf das window-Objekt oder das DOM der Seite. Der Vorteil ist die Zuverlässigkeit: Die Pixel feuern auch weiterhin auf den Checkout-Seiten, wo Händler normalerweise die Sichtbarkeit verlieren, und sie können nicht durch Theme-Updates kaputtgehen.
Kann ich jQuery oder andere Bibliotheken in einem Custom Pixel verwenden?
Nicht aus dem Theme heraus. Das Pixel kann keine Bibliotheken sehen, die dein Theme lädt, aber du kannst eine über ein CDN direkt im Pixel-Code laden. Die meisten Tracking-Anforderungen benötigen jedoch nur fetch und Standard-Browser-APIs.
Funktionieren Custom Pixels für Shopify-Checkout-Events in den Basic-Plänen?
Ja. Die Customer Events API ist in allen Shopify-Plänen verfügbar, einschließlich Basic. Vor den Kundenereignissen benötigte man für das Hinzufügen eigener Skripte in die Checkout-Schritte Shopify Plus und checkout.liquid. Mit Custom Pixels steht das Tracking von Checkout-Events in jedem Plan zur Verfügung.
Wie sende ich Checkout-Events aus einem Custom Pixel an den Google Tag Manager?
Lade deinen GTM-Container innerhalb des Custom Pixels und pushe die Daten dort in den window.dataLayer; das Pixel hat keinen Zugriff auf den dataLayer des Themes. Viele Shops nutzen die Google & YouTube App von Shopify für Standard-GA4-Events und fügen ein Custom Pixel nur für Events hinzu, die von der App nicht abgedeckt werden.
Warum feuert mein Custom Pixel nicht auf der Dankeseite?
Zwei häufige Ursachen: (1) Die erforderliche Kundendatenschutz-Berechtigung ist höher eingestellt als die Zustimmung des Besuchers (z. B. „Marketing“ ist erforderlich, aber der Besucher hat Marketing abgelehnt), oder (2) das Pixel hat das falsche Event abonniert – verwende checkout_completed für die Dankeseite.