Facebook Pixel (Meta Pixel) Integration fuer Shopware 6.7+ mit E-Commerce Event-Tracking, Meta Conversions API (CAPI) und Klaro Consent Manager Unterstuetzung.
Die Installation ueber den Shopware Store wird empfohlen. Nach dem Kauf koennen Sie das Plugin direkt aus dem Backend installieren.
Fuegen Sie das private Composer-Repository zur composer.json Ihres Shops hinzu:
{
"repositories": [
{
"type": "composer",
"url": "https://packeton.markus-michalski.net"
}
]
}
Hinweis: Die Repository-Zugangsdaten werden beim Lizenzkauf bereitgestellt. Private Repositories werden ueber Packeton verwaltet.
composer require mmd/sw67-facebook-pixel
Geben Sie bei der Authentifizierungsaufforderung die mit Ihrer Lizenz bereitgestellten Zugangsdaten ein.
bin/console plugin:refresh
bin/console plugin:install --activate MmdFacebookPixel
bin/console cache:clear
Auf die neueste Version aktualisieren:
composer update mmd/sw67-facebook-pixel
bin/console cache:clear
Plugin-Konfiguration im Shopware Admin:
Einstellungen > Erweiterungen > Facebook Pixel (Meta Pixel)
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Pixel ID | (leer) | Ihre Facebook Pixel ID (nur Zahlen, z.B. "166456504661214"). Zu finden im Meta Events Manager. |
| Tracking aktivieren | Aus | Hauptschalter zum Aktivieren/Deaktivieren des gesamten Facebook Pixel Trackings |
| Cookie-Einwilligung erforderlich | Aus | Nur tracken, nachdem der Benutzer ueber den Cookie-Consent-Manager zugestimmt hat |
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Artikel-Aufrufe tracken | An | ViewContent Event auf Produktdetailseiten ausloesen |
| Kategorien tracken | An | ViewCategory Custom Event auf Kategorieseiten ausloesen |
| Warenkorb-Aktionen tracken | An | AddToCart Event beim Hinzufuegen zum Warenkorb ausloesen |
| Checkout tracken | An | InitiateCheckout Event auf der Checkout-Bestaetigungsseite ausloesen |
| Bestellungen tracken | An | Purchase Event beim Bestellabschluss ausloesen |
| Brutto-Preise tracken | An | Brutto-Preise (inkl. MwSt.) verwenden. Fuer B2B-Shops deaktivieren. |
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Conversions API aktivieren | Aus | Events zusaetzlich zum Client-Side Pixel serverseitig ueber die Meta Conversions API senden |
| Access Token | (leer) | Facebook API Access Token. Im Meta Events Manager unter Einstellungen > Conversions API erstellen. |
| Test Event Code | (leer) | Test Event Code aus dem Meta Events Manager zum Debuggen. Fuer Produktivbetrieb entfernen. |
| Serverseitige Events | (keine) | Auswaehlen welche Events serverseitig gesendet werden. Meta empfiehlt mindestens PageView und Purchase. |
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Klaro Consent Manager verwenden | Aus | Erfordert das MmdKlaroConsent Plugin. Tracking-Scripts laden erst nach Benutzer-Einwilligung ueber Klaro. |
| Klaro Service-Name | facebook-pixel | Technischer Service-Name fuer die Klaro-Integration. Muss mit dem Service-Namen in den MmdKlaroConsent-Einstellungen uebereinstimmen. |
Die Meta Conversions API ermoeglicht es, Events serverseitig direkt vom Server an Meta zu senden - zusaetzlich zum standardmaessigen Client-Side Pixel. Dies ist Metas empfohlenes Redundant Setup fuer maximale Datenqualitaet.
event_id dedupliziertevent_id| Event | Beschreibung |
|---|---|
| PageView | Jeder Storefront-Seitenaufruf |
| ViewContent | Produktdetailseiten-Besuche |
| ViewCategory | Kategorieseiten-Besuche |
| AddToCart | Produkte in den Warenkorb gelegt |
| InitiateCheckout | Checkout-Bestaetigungsseite |
| Purchase | Abgeschlossene Bestellungen (inkl. Kunden-E-Mail + Telefon fuer Matching) |
CAPI Events werden ueber Symfony Messenger verarbeitet. Stellen Sie sicher, dass Ihr Message Consumer laeuft:
bin/console messenger:consume async
Fuer den Produktivbetrieb richten Sie einen Supervisor oder systemd-Service ein. Siehe die Shopware Dokumentation zur Message Queue fuer Details.
Wird bei jedem Storefront-Seitenaufruf gefeuert.
fbq('track', 'PageView');
Wird auf Produktdetailseiten gefeuert.
fbq('track', 'ViewContent', {
content_ids: ['SW10001'],
content_name: 'Produktname',
content_type: 'product',
value: 29.99,
currency: 'EUR'
});
Wird auf Kategorieseiten gefeuert (Custom Event).
fbq('trackCustom', 'ViewCategory', {
content_name: 'Kategoriename',
content_type: 'product_group',
content_category: 'Kategoriename'
});
Wird beim Hinzufuegen eines Produkts zum Warenkorb gefeuert.
fbq('track', 'AddToCart', {
content_ids: ['SW10001'],
content_name: 'Produktname',
content_type: 'product',
value: 29.99,
currency: 'EUR'
});
Wird auf der Checkout-Bestaetigungsseite gefeuert.
fbq('track', 'InitiateCheckout', {
content_ids: ['SW10001', 'SW10002'],
content_type: 'product',
value: 59.98,
currency: 'EUR',
num_items: 2
});
Wird beim Bestellabschluss gefeuert.
fbq('track', 'Purchase', {
content_ids: ['SW10001', 'SW10002'],
content_type: 'product',
value: 59.98,
currency: 'EUR',
num_items: 2
});
Wenn "Cookie-Einwilligung erforderlich" aktiviert ist, prueft das Plugin auf ein fb-pixel-consent Cookie. Nur wenn dieses Cookie vorhanden und auf einen wahrheitsmaessigen Wert gesetzt ist, wird das Tracking aktiviert.
Fuer den empfohlenen Ansatz verwenden Sie das MmdKlaroConsent Plugin:
facebook-pixel)Bei Verwendung von Klaro wird das Pixel-Script mit data-name-Attributen gerendert, damit Klaro das Laden/Entladen basierend auf der Benutzer-Einwilligung verwalten kann.
Wichtig fuer CAPI: Bei aktiviertem Klaro Consent hat die Conversions API eine eigene unabhaengige Consent-Behandlung. CAPI Events werden nur gesendet, wenn der entsprechende Client-Side Event-Typ auch in der Plugin-Konfiguration aktiviert ist.
| Aspekt | Umsetzung |
|---|---|
| Cookie Consent | Optional ueber integrierte Pruefung oder Klaro Integration |
| PII Hashing | SHA-256 fuer E-Mail, Telefon, IP, User-Agent (nur CAPI) |
| Daten an Meta | Pixel Events ueber Client-Side JavaScript + optionale CAPI |
| Consent-Modus | Tracking kann explizite Einwilligung vor Aktivierung erfordern |
Wichtig: Facebook Pixel sendet Daten an Meta (Facebook). Sie MUESSEN dies in Ihrer Datenschutzerklaerung und im Cookie-Consent-Banner offenlegen. Nutzen Sie die Klaro-Integration oder die integrierte Consent-Pruefung zur DSGVO-Konformitaet.
bin/console cache:clearbin/console messenger:consume asyncvar/log/dev.log oder var/log/prod.logDies ist erwartetes Verhalten im Redundant Setup. Meta dedupliziert Events automatisch anhand der event_id. Falls echte Duplikate auftreten (gleiches Event doppelt gezaehlt), pruefen Sie:
Kommerzielle Lizenz - Einzelinstallations-Lizenz inklusive:
Siehe LICENSE-Datei fuer vollstaendige Bedingungen.
Fuer Fragen und Support:
Markus Michalski
E-Mail: support@markus-michalski.net