Track
Pixel- & Plattform-IntegrationenTutorialFortgeschrittene

Meta Conversions API in der Praxis: event_id, gehashte Matching-Daten und Test-Event-Codes

Wie du Meta Pixel und Conversions API parallel betreibst, ohne doppelt zu zählen — mit den exakten Feldern, Hashing-Regeln und dem Test-Event-Workflow aus Metas Dokumentation.

Von
Track-Redaktion
Veröffentlicht
Zuletzt fachlich geprüft
Lesedauer
3 Min. Lesezeit

Das Wichtigste in Kürze

  • Meta führt Pixel- und Server-Event nur zusammen, wenn beide event_id und event_name innerhalb des Dedup-Fensters teilen — erzeuge die ID also einmal und gib sie beiden Wegen mit.
  • user_data-Kennungen werden nach Normalisierung SHA-256-gehasht; fbc, fbp, IP und User-Agent bleiben im Klartext, und fbc/fbp werden nur nach Marketing-Consent erfasst.
  • Der Hybridmodus gibt Meta die Vereinigung der Matching-Schlüssel — gehashte E-Mail und Telefon aus dem Bestellsystem plus fbp/fbc aus dem Browser.
  • Ein test_event_code hält Test-Käufe im Tab Test-Events und aus dem Reporting; jeder Versuch und Fehlercode ist im Event-Debugger sichtbar.

Der Endpunkt in einer Zeile

POST https://graph.facebook.com/{version}/{pixel_id}/events mit einem System-User-Access-Token und einem JSON-Body, der ein data-Array mit Events enthält. Track pinnt die Graph-API-Version zentral (v25.0 zum Zeitpunkt dieses Artikels) und hält fest, wann der Endpunkt zuletzt gegen Metas Dokumentation geprüft wurde.

Die Felder, auf die es ankommt

Jedes Event-Objekt enthält:

  • event_namePurchase, Lead, AddToCart, InitiateCheckout, CompleteRegistration, Subscribe, StartTrial, Contact, Schedule, Search, ViewContent, PageView oder ein eigener Name
  • event_time — Unix-Sekunden, höchstens sieben Tage alt
  • event_id — dein Deduplizierungsschlüssel
  • event_source_url — die Seiten-URL
  • action_sourcewebsite für Web-Events
  • user_data — Matching-Daten (siehe unten)
  • custom_datavalue, currency, content_ids, contents, order_id, num_items

Optional, aber beim Testen wertvoll: test_event_code auf oberster Ebene des Bodys. Events mit Test-Code erscheinen im Events Manager unter Test-Events und zählen nicht im Reporting.

Deduplizierung: gleiche event_id, gleicher event_name

Meta führt ein Pixel-Event und ein Server-Event zusammen, wenn beide event_id und event_name teilen und innerhalb eines Zeitfensters eintreffen (Meta dokumentiert 48 Stunden). Zwei Konsequenzen:

  1. Erzeuge die ID einmal, im Moment der Aktion, und übergib sie sowohl dem Pixel-Aufruf (fbq('track', 'Purchase', {...}, { eventID: id })) als auch der Server-Payload.
  2. Halte die Eventnamen auf beiden Wegen identisch. Ein Browser-Purchase und ein Server-purchase sind zwei Events.

Track macht das per Konstruktion: Das SDK erzeugt eine Quell-Event-ID, spiegelt den Pixel-Aufruf mit dieser ID, und der Worker sendet dieselbe ID in event_id.

user_data: was gehasht wird und wie

Meta verlangt SHA-256-Hashing für persönliche Kennungen nach Normalisierung:

FeldNormalisierung vor dem Hashing
emtrimmen, Kleinschreibung
phnur Ziffern inklusive Ländervorwahl, keine führenden Nullen oder Pluszeichen
fn, lnKleinschreibung, getrimmt, nur Buchstaben
ctKleinschreibung, keine Leer- oder Satzzeichen
zpKleinschreibung, in den USA die ersten fünf Ziffern
countryzweistelliger ISO-Code, Kleinschreibung
external_idbeliebige stabile ID, gehasht

Nicht gehasht: client_ip_address, client_user_agent, fbc, fbp. Der fbc-Wert wird aus dem URL-Parameter fbclid als fb.1.{timestamp}.{fbclid} gebildet; fbp ist das vom Pixel gesetzte Cookie _fbp. Beide erfasst das Track-SDK nur nach Marketing-Consent und leitet sie ausschließlich an Meta weiter.

Was die „Event-Match-Qualität“ belohnt

Meta bewertet jedes Event danach, wie viele Matching-Schlüssel es erhalten hat. Den größten Effekt haben gehashte E-Mail, gehashte Telefonnummer, fbp/fbc und external_id. Server-Events aus einem Bestellsystem tragen meist E-Mail und Telefon; Browser-Events tragen fbp und fbc. Beide Wege mit derselben event_id zu senden gibt Meta die Vereinigungsmenge — der praktische Grund, warum der Hybridmodus jedem einzelnen Weg überlegen ist.

Der Test-Workflow

  1. Im Events Manager das Dataset → Test-Events öffnen und den Code kopieren (zum Beispiel TEST12345).
  2. Den Code in den Einstellungen der Destination speichern; Track hängt ihn nur an, solange die Destination im Testmodus ist.
  3. Aus dem Assistenten einen Test-Kauf senden. Der Worker stellt ihn zu und zeigt Metas Antwort (events_received: 1 und eine fbtrace_id).
  4. Das Event im Tab Test-Events mit den erwarteten Parametern und Matching-Schlüsseln bestätigen.
  5. Testmodus ausschalten; ab jetzt zählen Events.

Fehlerklassen, die dir begegnen

  • 190 / OAuthException — Token ungültig oder abgelaufen: System-User-Token rotieren
  • 100 mit Subcode 2804 — ungültiger Parameter: meist ein fehlerhafter Hash oder ein fehlendes action_source
  • 4 / 17 / 32 / 613 — Rate-Limits: Track wartet mit Jitter und wiederholt
  • 5xx — temporär: wird wiederholt; der Circuit Breaker pausiert die Destination, wenn es anhält

Jeder Versuch inklusive geschwärzter Payload-Vorschau ist im Event-Debugger sichtbar — und dort beginnst du, wenn ein Kauf fehlt.

Primärquellen

Dokumentationen und Standards, auf denen dieser Artikel beruht.

  1. Meta — Conversions API: Using the APIdevelopers.facebook.com
  2. Meta — Customer Information Parameters (Hashing)developers.facebook.com

War dieser Artikel hilfreich?

Fachlich verantwortlich

Track-Redaktion

Produkt & Engineering

Die Menschen hinter Track: Engineers und Analysts, die täglich an Server-Side Tracking, Consent-Tooling und Connector-Integrationen arbeiten.