Markus Michalski FAQ

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.

English Version

Zurück zur Übersicht

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.