Zum Inhalt springen

Meta Pixel und Conversions API mit Deduplizierung

Das Meta Pixel läuft im Browser, deshalb stoppen Werbeblocker und Browser-Einschränkungen einen Teil seiner Events. Die Conversions API (CAPI) sendet dieselben Events aus deinem Server-Container, und die lassen sich viel schwerer blockieren. Meta empfiehlt, beides zu nutzen. Der Haken: Jede Conversion kommt dann doppelt an. Deshalb gibst du beiden Kopien dieselbe Event-ID, und Meta behält eine davon.

Profi 12 Min. Lesezeit

Das lernst du

  • Meta-Pixel-Events aus dem Web-Container mit einer event_id senden.
  • Dieselbe event_id mit dem GA4-Hit an den Server-Container weitergeben.
  • Ein Conversions-API-Tag im Server-Container einrichten.
  • Im Events Manager prüfen, dass Browser- und Server-Events dedupliziert werden.

Bevor du startest

  • GA4, das über deinen Server-Container läuft (Lektion 4).
  • Admin-Zugriff auf dein Meta Pixel (Dataset) im Events Manager.
  • Eingerichteter Consent Mode (Lektion 6), falls du für Marketing-Tags eine Einwilligung brauchst.

01 So funktioniert die Deduplizierung

Meta behandelt ein Browser-Event und ein Server-Event als dasselbe Event, wenn sie vom selben Pixel mit demselben event_name und derselben event_id stammen und innerhalb von 48 Stunden ankommen. Eines wird behalten, das andere verworfen.

  • Der Event-Name muss exakt übereinstimmen, zum Beispiel Purchase in beiden.
  • Die event_id muss in beiden identisch sein. Sie muss also einmal im Browser erzeugt und geteilt werden.
  • Die Cookies _fbp und _fbc helfen Meta, das Server-Event dem Besucher zuzuordnen. Weil der GA4-Hit an deine eigene Subdomain geht, schickt der Browser diese Cookies mit, und das Server-Tag kann sie lesen.

02 Event-ID im Web-Container erzeugen

Erzeuge eine eindeutige ID, wenn das Event passiert, und schreib sie zusammen mit dem Event in den dataLayer.

js
const eventId = crypto.randomUUID();

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
  event: 'purchase',
  event_id: eventId,
  ecommerce: {
    transaction_id: 'T-10293',
    value: 129.90,
    currency: 'EUR',
    items: [{ item_id: 'SKU-1', item_name: 'Shoes', price: 129.90, quantity: 1 }]
  }
});
  1. 1 Lege im Web-Container eine Data Layer Variable mit dem Namen event_id an.
  2. 2 Setze in deinem Meta-Pixel-Tag (aus der Community Template Gallery oder deinem bestehenden Setup) den Event-Namen auf Purchase und das Feld Event ID auf {{DLV - event_id}}.
  3. 3 Öffne das GA4-Event-Tag, das purchase sendet, und füge einen Event-Parameter event_id mit dem Wert {{DLV - event_id}} hinzu. Die ID reist jetzt im GA4-Hit zum Server-Container.
  4. 4 Veröffentliche den Web-Container, sobald die Preview in beiden Tags dieselbe ID zeigt.

03 Conversions-API-Tag im Server-Container anlegen

Hol dir zuerst ein Access Token: Wähle im Events Manager dein Pixel, öffne Settings, scrolle zu Conversions API und klicke auf Generate access token. Halte das Token geheim, denn damit lassen sich Events an dein Pixel senden.

  1. 1 Geh im Server-Container zu Templates, dann zu Tag Templates, und klicke auf Search Gallery. Füge eine Conversions-API-Vorlage hinzu, etwa Metas eigenes Conversions API Tag oder die von Stape.
  2. 2 Lege aus der Vorlage ein neues Tag an. Gib deine Pixel ID und das Access Token ein.
  3. 3 Ordne den Event-Namen zu (GA4 purchase zu Meta Purchase), falls die Vorlage das nicht selbst tut.
  4. 4 Stelle sicher, dass die Event-ID aus dem Event-Parameter event_id kommt. Die meisten Vorlagen lesen ihn automatisch.
  5. 5 Löse das Tag über einen Custom-Trigger aus, bei dem Client Name equals GA4 und Event Name equals purchase gilt.

04 Im Events Manager testen

  1. 1 Wähle im Events Manager dein Pixel und öffne Test events. Kopiere den Testcode (er sieht aus wie TEST12345).
  2. 2 Füge ihn in das Feld Test Event Code des Server-Tags ein und veröffentliche, oder teste in der Server-Preview.
  3. 3 Löse das Event auf deiner Website aus. Es sollten ein Browser- und ein Server-Event erscheinen.
  4. 4 Prüfe, dass sie als dedupliziert markiert sind. Falls nicht, vergleiche Event-Name und event_id der beiden.
  5. 5 Entferne den Testcode, wenn du fertig bist, sonst landen Live-Events weiter in Test events.
  • Das Pixel-Event und der GA4-Hit tragen dieselbe event_id.
  • Die Server-Preview zeigt, dass das Conversions-API-Tag mit einer 2xx-Antwort gefeuert hat.
  • Der Events Manager zeigt Browser- und Server-Events dedupliziert.
  • Der Testcode ist aus dem Live-Tag entfernt.

Häufige Fragen

Kann ich nur die Conversions API nutzen und auf das Pixel verzichten?

Das geht, Meta empfiehlt aber beides. Das Pixel erfasst Browser-Signale, die der Server nicht sieht, und der Server deckt Besucher ab, deren Browser das Pixel blockiert. Die Deduplizierung hält die Zählung korrekt.

Warum zählt der Events Manager meine Käufe doppelt?

Die beiden Events haben nicht denselben Event-Namen und dieselbe event_id. Prüfe, dass beide Tags die ID aus demselben dataLayer-Push lesen und dass das Server-Tag den Parameter event_id aus dem GA4-Hit erhält.

Woher kommen `_fbp` und `_fbc` auf dem Server?

Das Pixel setzt sie im Browser. Weil deine GA4-Hits an eine Subdomain deiner Website gehen, schickt der Browser diese Cookies mit, und die Conversions-API-Vorlage liest sie aus der Anfrage.

Bereit, es in die Praxis umzusetzen?

Richte in wenigen Minuten einen Server-GTM-Container auf deiner eigenen Domain ein. Für den Free-Tarif brauchst du keine Karte.

Kostenloses Konto erstellen