Facebook Pixel: Shop API / Headless
Facebook Pixel Plugin für Sylius: lesender Shop-API-Endpunkt für Headless-Storefronts, Antwortfelder und Abgrenzung zur serverseitigen Conversions API.
Facebook Pixel: Shop API / Headless
Live Demo: Teste dieses und weitere Plugins live — ohne Installation, ohne Risiko: demo.markus-michalski.net
Endpunkt
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | /api/v2/shop/facebook-pixel/settings |
Die Pixel-Einstellungen des aktuellen Channels, nur lesend. |
Ein Headless-Client, der die mit Twig Hooks versehene Storefront nicht rendert, nutzt diesen Endpunkt, um zu entscheiden, ob er den Pixel selbst feuert und für welche Events. Es ist dieselbe Channel-Konfiguration, die auch die Storefront-Hooks lesen. Der Channel ergibt sich wie bei jeder Shop-API-Anfrage aus dem Channel-Kontext (Host der Anfrage). Die Resource wird nur registriert, wenn API Platform im Shop aktiv ist.
Request
curl -H "Accept: application/ld+json" https://shop.example.com/api/v2/shop/facebook-pixel/settings
Response
Ein Channel ohne Settings-Zeile, mit ausgeschaltetem Tracking oder ohne gültige Pixel-ID antwortet mit einem eindeutigen enabled: false, nie mit einem 404. Es ist derselbe "Aus, bis konfiguriert"-Vertrag wie in der Storefront:
{
"channelCode": "WEB",
"pixelId": null,
"enabled": false,
"trackPageView": false,
"trackViewContent": false,
"trackViewCategory": false,
"trackAddToCart": false,
"trackInitiateCheckout": false,
"trackPurchase": false,
"useKlaroConsent": false
}
Ein konfigurierter und aktivierter Channel:
{
"channelCode": "WEB",
"pixelId": "555666777",
"enabled": true,
"trackPageView": true,
"trackViewContent": true,
"trackViewCategory": true,
"trackAddToCart": true,
"trackInitiateCheckout": true,
"trackPurchase": false,
"useKlaroConsent": true
}
Bei Accept: application/ld+json ergänzt API Platform die üblichen JSON-LD-Felder (@context, @id, @type).
| Feld | Typ | Beschreibung |
|---|---|---|
channelCode |
string | Der Identifier dieser Resource; der Code des aktuellen Channels. |
pixelId |
string oder null | Die numerische Meta-Pixel-ID, oder null, solange der Channel nicht aktiv ist. |
enabled |
boolean | true, wenn der Hauptschalter an und eine gültige Pixel-ID gesetzt ist. |
trackPageView ... trackPurchase |
boolean | Welche Browser-Events für diesen Channel an sind. |
useKlaroConsent |
boolean | Das wirksame Gating (gespeichertes Kästchen UND installiertes Klaro). Ein Headless-Client sollte auf die Einwilligung für facebook_pixel warten, wenn der Wert true ist. |
Das Conversions-API-Zugriffstoken, die Einstellung zur Einwilligungspflicht und alle anderen rein serverseitigen Einstellungen werden hier nie ausgegeben.
Abgrenzung zur Conversions API
Der Endpunkt liefert ausschließlich Einstellungen. Es gibt keinen Endpunkt, über den ein Headless-Client Events an die serverseitige CAPI übergeben könnte. Die CAPI-Kopien entstehen beim Rendern der Twig-Storefront (Twig Hooks) und, für AddToCart, im Listener auf das Sylius-Event sylius.cart_item_post_add. Ein Headless-Frontend ohne Twig-Rendering löst daher PageView, ViewContent, ViewCategory, InitiateCheckout und Purchase serverseitig nicht aus.