# Facebook Dynamic Ads + Pixel PRO — Vollständige Anleitung

> Überblick Facebook Dynamic Ads + Pixel PRO verbindet Ihren PrestaShop-Katalog mit Facebook und Instagram. Das Modul exportiert einen hochwertigen Produkt-Feed (XML im Facebook-RSS-Format oder CSV), installiert den Facebook-Pixel in Ihrem…

- Seite: <https://www.datafirefly.com/de/documentation/dffbadspixel-4/>
- Sprache: de
- Aktualisiert am: 2026-09-14
- Weitere Sprachen: [fr](https://www.datafirefly.com/documentation/dffbadspixel/index.md), [en](https://www.datafirefly.com/en/documentation/dffbadspixel-2/index.md), [es](https://www.datafirefly.com/es/documentation/dffbadspixel-3/index.md), [it](https://www.datafirefly.com/it/documentation/dffbadspixel-5/index.md), [pl](https://www.datafirefly.com/pl/documentation/dffbadspixel/index.md), [pt](https://www.datafirefly.com/pt/documentation/dffbadspixel/index.md), [nl](https://www.datafirefly.com/nl/documentation/dffbadspixel/index.md)
- Index: <https://www.datafirefly.com/de/documentation/llms.txt>

## Überblick

Facebook Dynamic Ads + Pixel PRO verbindet Ihren PrestaShop-Katalog mit Facebook und Instagram. Das Modul exportiert einen hochwertigen Produkt-Feed (XML im Facebook-RSS-Format oder CSV), installiert den Facebook-Pixel in Ihrem Shop und aktiviert die Conversions API für zuverlässiges serverseitiges Tracking. Es erzeugt für jede Kombination aus Land / Sprache / Währung einen eigenen Feed, bietet feingranulare Kontrolle über die exportierten Daten (Ausschlüsse, benutzerdefinierte Labels, Google-Kategorie-Mapping) und ist für große Kataloge mit bis zu 200.000 Produkten ausgelegt.

Kompatibel mit PrestaShop 8.0 bis 9.x, PHP 7.4 bis 8.3, Multistore und mehrsprachig. `cURL` ist für die Conversions API erforderlich. Keine Composer-Abhängigkeit in Produktion.

## Installation

1. Öffnen Sie in Ihrem Back-Office **Module → Modulmanager → Modul hochladen**.
2. Laden Sie die Datei `dffbadspixel.zip` hoch.
3. Das Modul installiert sich und erstellt automatisch seine Tabellen (`dffbadspixel_exclusion`, `dffbadspixel_label`, `dffbadspixel_capi_queue`) sowie den Admin-Tab **Facebook Dynamic Ads + Pixel**.

Bei der Installation wird ein eindeutiges Sicherheitstoken erzeugt. Es sichert die Feed- und CRON-URLs und wird im Tab **URLs & CRON** des Moduls angezeigt.

## Tab Produkt-Feed

Dies ist das Herzstück des Moduls. Hier wählen Sie Format und Generierungsmodus, die Produktauswahl und den Detailgrad der exportierten Daten.

### Format und Generierung

- **Format** — XML (Facebook RSS + Google-Namespace), CSV oder beides.
- **Generierungsmodus** — _In Echtzeit_ (gestreamt bei jedem URL-Aufruf) oder _CRON_ (zwischengespeicherte Dateien, für große Kataloge empfohlen).
- **gzip-Komprimierung**, **Batch-Größe** (Chunking) und **nur aktive Länder** zur Leistungsoptimierung.

### Auswahl und Granularität

- **Export nach** Kategorie oder Marke, mit feiner Auswahl (ein Filterfeld erleichtert die Suche in der Liste).
- **Granularität** nach Produkt oder Variante.
- **Feed-ID-Modus**: Back-Office-ID (mit Sprach- und/oder Variantenoption), Referenz oder EAN.
- **Beschreibungstyp** (kurz/lang), **Verfügbarkeit** (nach Bestand oder immer vorrätig), **Farben**, **Größen**, zusätzliche Bilder oder **nur Titelbild**.

### Versand, Tracking und Qualität

- **Echte Versandkosten** berechnet über Ihre PrestaShop-Versanddienstleister (Zone, Gewichts-/Preisspannen), Referenzdienstleister oder günstigster, mit konfigurierbarem kostenlosem Versand.
- **UTM-Parameter** und **GA4**-Integration.
- **Qualitätsgrenzen**: maximale Titel- und Beschreibungslängen, die vom Validator verwendet werden (Tab Diagnose).

### Allgemeine Ausschlüsse

Direkt unter dem Feed-Tab: nicht vorrätige Produkte, Produkte ohne EAN/MPN oder unter einem Mindestpreis ausschließen.

## Erweiterte Ausschlüsse

Fügen Sie im Tab **Ausschlüsse** gezielte Regeln hinzu, um bestimmte Produkte aus dem Feed zu entfernen. Jede Regel basiert auf einem Typ und einem Wert:

- **Wort / Ausdruck** — schließt aus, wenn Name oder Beschreibung den Begriff enthält.
- **Produkt**, **Variante**, **Lieferant** — per ID.
- **Eigenschaftswert** oder **Attribut** — per ID.

## Benutzerdefinierte Labels und Bekleidungs-Tags

**Benutzerdefinierte Labels** (`custom_label_0` bis `custom_label_4`) bereichern die Segmentierung Ihrer Kampagnen: Kategoriename, ein Eigenschaftswert, eine Preisspanne oder die Labels „neu" / „Bestseller".

Der Tab **Bekleidungs-Tags** fügt die für Kleidung vorgesehenen Meta-Felder hinzu: `age_group`, `gender` sowie `pattern` (Muster) und `material`, die auf Produkteigenschaften gemappt werden.

## Kategorie-Mapping & Währungen

Ordnen Sie im Tab **Mapping & Währungen** Ihre PrestaShop-Kategorien den Google-/Facebook-Kategorien zu:

- **CSV-Import** im Format `id_category;google_category` (Trennzeichen `;` oder `,`, optionale Kopfzeile).
- **Import aus einem anderen Modul** DataFirefly installiert (Standardversion, Google Merchant Center, GMC Pro oder TikTok Ads).
- **Automatischer Stichwortvorschlag** — füllt leere Zuordnungen anhand des Kategorienamens.
- Manuelle zeilenweise Bearbeitung mit Suchfilter.

Die **Tabelle Währung / Land** definiert die für jedes Land verwendete Währung bei der Generierung von Multi-Länder-Feeds. Ohne Zuordnung wird die Standardwährung des Shops verwendet.

Beginnen Sie ohne Kategorie-Mapping: Meta akzeptiert den Feed ohne `google_product_category`. Fügen Sie es schrittweise zu Ihren Hauptkategorien hinzu, um die Auslieferung zu verbessern.

## Facebook-Pixel

Aktivieren Sie im Tab **Pixel** den Pixel und geben Sie Ihre **Pixel-ID** ein. Das Modul injiziert den Basiscode (PageView) und die kontextbezogenen Ereignisse: ViewContent, ViewCategory, Search, InitiateCheckout, AddToCart und AddToWishlist.

- **Advanced Matching** — sendet zusätzliche Kundendaten, SHA-256-gehasht, um Ihre Zielgruppen zu verbessern.
- **Anpassbare HTML-Selektoren** für die Schaltflächen „Wunschliste" und „Kasse", nützlich, wenn Ihr Theme das Standard-Markup geändert hat.
- **Konfigurierbarer Purchase-Betrag**: mit oder ohne Steuer, mit oder ohne Versand und/oder Verpackung.

## Conversions API (asynchron)

Die Conversions API sendet Ereignisse direkt von Ihrem Server und erfasst Conversions, die der Pixel allein nicht erkennen kann (Blocker, Cookies). Im Tab **Conversions API**:

1. Aktivieren Sie die Conversions API und fügen Sie das in Ihrem Meta Business Manager erzeugte **Zugriffstoken** ein.
2. Lassen Sie den **asynchronen Modus** aktiviert (empfohlen): Ereignisse werden in eine Warteschlange gestellt und dann per CRON in Batches gesendet, ohne den Shop zu verlangsamen.
3. Passen Sie bei Bedarf die **Batch-Größe** und die Anzahl der **maximalen Wiederholungen** an. Ein **Testereignis-Code** ermöglicht die Validierung der Integration im Business Manager.

Ereignisse werden mit dem Browser-Pixel über eine gemeinsame `event_id` dedupliziert (zum Beispiel `order-1234` für einen Kauf). Benutzerdaten werden vor dem Senden SHA-256-gehasht.

### Auslöse-Status für Purchase

Seit Version 2.1.0 wird das Purchase-Ereignis ausgelöst, wenn die Bestellung **in einen Auslöse-Status wechselt**, und nicht bei ihrer Erstellung. Kreuzen Sie die betreffenden Status im Tab Conversions API an: Bei der Installation sind die von PrestaShop als bezahlt markierten Status vorausgewählt. Ist kein Status angekreuzt, greift das Modul auf eben diese bezahlten Status zurück.

Dieses Verhalten ist bei asynchronen Zahlungen (Überweisung, Bizum, SEPA, Klarna) unverzichtbar: Die Bestellung wird zunächst als zahlungspflichtig angelegt, und Purchase wird erst nach bestätigter Zahlung gesendet. Da der Versand vollständig serverseitig erfolgt, hängt er nicht von der Bestätigungsseite ab, selbst wenn der Kunde nie in den Shop zurückkehrt. Ein `event_id`-Schutz verhindert Duplikate, wenn die Bestellung mehrfach den Status wechselt.

### Gesendete Nutzerdaten

Sofern verfügbar, übermittelt das Modul: `em` (E-Mail), `ph` (Telefon), `fn`, `ln`, `ct`, `zp`, `external_id`, `fbp`, `fbc`, `client_ip_address` und `client_user_agent`. Alle personenbezogenen Daten werden vor dem Senden SHA-256-gehasht. Die `external_id` verwendet die Kunden-ID (oder die Gast-Kennung für Besucher). Das `fbc` wird aus dem `_fbc`-Cookie gelesen und, falls noch nicht vorhanden, aus dem URL-Parameter `fbclid` rekonstruiert.

## DSGVO-Einwilligung und CMP

Der Tab **Einwilligung** setzt die Marketing-Einwilligung für den Pixel _und_ den serverseitigen Versand durch. Solange sie nicht erteilt ist, bleibt der Pixel im Modus `revoke` (Meta Consent Mode) und es wird kein Ereignis in die Warteschlange gestellt oder über die Conversions API gesendet.

Die Erkennung erfolgt kaskadierend:

1. **IAB TCF v2.2** — Auslesen von `__tcfapi` (Zweck 1 und Meta-Vendor 89).
2. **Cookie Ihres CMP** — Name und erwarteter Wert konfigurierbar (Axeptio, Cookiebot, Didomi, PrestaShop-DSGVO-Module…).
3. **JavaScript-API** — rufen Sie `window.dffbConsentGrant()` bei Zustimmung und `window.dffbConsentRevoke()` bei Ablehnung aus einem eigenen Banner auf.

Die im Browser gelesene Entscheidung wird in einem `dffb_consent`-Cookie gespiegelt, sodass die Conversions API serverseitig exakt dieselbe Wahl anwendet. Zusätzlich wird ein `dffb:consent`-Ereignis auf `document` ausgelöst.

## Feed-URLs und CRON-Task

Der Tab **URLs & CRON** zeigt die Basis-Feed-URL, die CRON-URL und die Liste der URLs pro Kombination aus Land / Sprache / Währung.

### Feed-URL

```
https://ihr-shop.de/index.php?fc=module&module=dffbadspixel&controller=feed&token=IHR_TOKEN&id_lang=1&id_currency=1&id_country=8&format=xml
```

Die Parameter `id_lang`, `id_currency`, `id_country` und `format` (`xml` oder `csv`) wählen den auszuliefernden Feed. Diese URL geben Sie als Feed-Quelle im Meta-Katalog an.

### CRON-Task

Planen Sie im CRON-Modus den Endpoint-Aufruf, um die zwischengespeicherten Dateien (neu) zu generieren und die Conversions-API-Warteschlange zu leeren:

```
*/30 * * * * curl -s "https://ihr-shop.de/index.php?fc=module&module=dffbadspixel&controller=cron&token=IHR_TOKEN" > /dev/null
```

Der optionale Parameter `job` zielt auf eine bestimmte Aufgabe: `feeds` (Feed-Generierung), `capi` (Senden der Conversions-API-Warteschlange) oder `all` (Standard). Die Antwort ist eine Textzusammenfassung.

## Diagnose: Vorschau und Validierung

Der Tab **Diagnose** vereint zwei Werkzeuge:

- **Conversions-API-Warteschlange** — Anzahl der ausstehenden, fehlgeschlagenen und gesendeten Ereignisse.
- **Feed-Vorschau & Validierung** — erzeugt eine XML-Stichprobe und einen Qualitätsbericht, der problematische Zeilen markiert: fehlendes Bild, ungültige GTIN (per Prüfziffer geprüft), zu langer Titel oder Beschreibung, unzureichende Produktkennung.

## Sicherheit

Im Tab **Sicherheit**:

- **IP-Allowlist** — beschränkt den Zugriff auf Feed und CRON auf bestimmte Adressen oder CIDR-Bereiche (zum Beispiel Meta-Server). Leer = keine Beschränkung.
- **Token-Rotation** — erzeugt das URL-Token neu. Das alte bleibt bis zur Invalidierung toleriert, sodass Sie Zeit haben, Ihre Feeds in Meta zu aktualisieren.

Denken Sie nach einer Token-Rotation daran, Ihre Feed-Quellen im Business Manager zu aktualisieren und dann das alte Token im Tab Sicherheit zu invalidieren, um das Übergangsfenster zu schließen.

## Fehlerbehebung

### Der Feed gibt „Forbidden" zurück

Das Token fehlt, ist falsch, oder die aufrufende IP steht nicht in der Allowlist. Prüfen Sie das Token im Tab URLs & CRON und leeren Sie die IP-Allowlist während des Tests.

### Der Feed ist leer oder unvollständig

Prüfen Sie die Kategorie-/Markenauswahl (leer = gesamter Katalog), die Ausschlussregeln und den Bestand, falls der Ausschluss „nicht vorrätig" aktiv ist. Führen Sie im CRON-Modus zuerst die Aufgabe `job=feeds` aus, um den Cache zu erzeugen.

### Conversions-API-Ereignisse erreichen Meta nicht

Stellen Sie sicher, dass `cURL` verfügbar und das Zugriffstoken gültig ist, und führen Sie die Aufgabe `job=capi` aus. Verfolgen Sie die Warteschlange im Tab Diagnose; Fehler werden in **Erweiterte Parameter → Logs** mit dem Präfix `[dffbadspixel]` protokolliert.

### Der Pixel löst bei einer Schaltfläche nicht aus

Wenn Ihr Theme das Markup geändert hat, passen Sie die HTML-Selektoren „Wunschliste" und „Kasse" im Tab Pixel an.

## Best Practices

- Verwenden Sie den **CRON-Modus + gzip** für große Kataloge: Die Echtzeit-Generierung ist weiterhin möglich, aber bei jedem Aufruf teurer.
- Aktivieren Sie **Pixel und Conversions API zusammen**: Die Deduplizierung per `event_id` vermeidet Doppelzählungen und verbessert die Abdeckung.
- Füllen Sie das **Google-Kategorie-Mapping** und die **GTINs** aus, um die Eignung Ihrer Produkte für Advantage+- und Shopping-Platzierungen zu maximieren.
