Werbeplattformen und Webshops

Meta Conversions API (CAPI): ein praktischer Leitfaden

Ein praktischer Leitfaden zur Meta Conversions API: neben dem Pixel mit einer event_id betreiben, die richtigen Parameter senden, Events testen und häufige Fehler beheben.

·Aktualisiert am ·9 Min. Lesezeit·Vom ROASaurus-Team

Das Wichtigste in Kürze
  • Die Meta Conversions API sendet Events wie Purchase von deinem Server, sodass sie Meta auch dann erreichen, wenn das Browser-Pixel blockiert wird.
  • Betreibe sie neben dem Pixel und gib beiden Kopien denselben Eventnamen und dieselbe event_id; Meta zählt das Event dann einmal, wenn beide innerhalb von 48 Stunden eintreffen.
  • Website-Events brauchen action_source, event_source_url und den User Agent des Käufers; gehashte E-Mail-Adresse und Telefonnummer, IP-Adresse, fbp und fbc entscheiden, wie gut Meta sie zuordnen kann.
  • Teste mit dem Tab Test events im Events Manager und entferne danach den Testcode, denn Testevents werden nicht verworfen.
  • Die meisten Probleme entstehen durch nicht passende Event-IDs, die eigene IP-Adresse des Servers, eine verlorene fbclid oder Kontaktdaten, die ohne Normalisierung gehasht wurden.

Mit der Meta Conversions API (CAPI) sendet dein Server Events wie Purchase direkt an Meta. Das Meta-Pixel sendet dieselben Events aus dem Browser des Käufers. CAPI sendet sie von deinem Server, sodass sie auch dann ankommen, wenn ein Adblocker das Pixel stoppt, ein Cookie fehlt oder die Dankeseite nie lädt.

Dieser Leitfaden behandelt, was ein Event der Conversions API enthält, wie du sie mit einer einzigen event_id neben dem Pixel betreibst, welche Parameter Meta verlangt und empfiehlt, wie du mit Test events testest und welche Fehler am häufigsten auftreten.

Was ist die Meta Conversions API?

Die Conversions API ist Teil der Graph API von Meta. Dein Server sendet eine HTTPS-POST-Anfrage an graph.facebook.com/VERSION/PIXEL_ID/events mit einem Access Token und einer data-Liste mit bis zu 1,000 Events. Jedes Event beschreibt eine Aktion, etwa einen Kauf, in drei Teilen: was passiert ist, wer es getan hat und die Details.

FeldWas es enthält
event_nameDie Aktion, zum Beispiel Purchase, AddToCart oder InitiateCheckout
event_timeWann es passiert ist, als Unix-Zeitstempel in Sekunden
event_idEine eindeutige ID für dieses Event, mit der es gegenüber dem Pixel dedupliziert wird
action_sourceWo es passiert ist: website bei Shop-Käufen
event_source_urlDie Seiten-URL, auf der das Event passiert ist
user_dataKundeninformationen für das Matching: gehashte E-Mail-Adresse und Telefonnummer, IP-Adresse, User Agent, fbp und fbc
custom_dataDetails wie value, currency und content_ids
Jedes Event der Conversions API hat dieselbe Form: die Aktion, die Kundeninformationen und die Details.

Ein gekürztes Purchase-Event sieht so aus:

Conversions API: ein Purchase-Event (gekürzt)
{
  "data": [{
    "event_name": "Purchase",
    "event_time": 1792929600,
    "event_id": "order-1042",
    "action_source": "website",
    "event_source_url": "https://yourstore.com/checkouts/thank-you",
    "user_data": {
      "em": ["<SHA-256 of the normalized email>"],
      "ph": ["<SHA-256 of the normalized phone>"],
      "client_ip_address": "203.0.113.24",
      "client_user_agent": "Mozilla/5.0 (iPhone; ...)",
      "fbp": "fb.1.1792928400000.1234567890",
      "fbc": "fb.1.1792928400000.AbCdEf123"
    },
    "custom_data": { "value": 74.00, "currency": "USD" }
  }]
}

Kontaktfelder wie E-Mail-Adresse und Telefonnummer werden normalisiert und mit SHA-256 gehasht, bevor sie deinen Server verlassen. IP-Adresse, User Agent, fbp und fbc werden unverändert gesendet.

Warum die Conversions API neben dem Pixel betreiben?

Meta empfiehlt, die Conversions API neben dem Pixel zu betreiben und dieselben Events über beide zu senden. Jede Seite sieht etwas, das die andere nicht sieht, und zusammen liefern sie Meta vollständigere Daten.

Meta-Pixel (Browser)
  • Setzt das Cookie _fbp und speichert die fbclid eines Anzeigenklicks im Cookie _fbc
  • Sieht die Seite und den Browser, während der Besuch stattfindet
  • Geht verloren, wenn der Browser es blockiert oder die Seite nicht lädt
Conversions API (Server)
  • Sendet die bezahlte Bestellung aus den Daten deines Shops
  • Kann gehashte E-Mail-Adresse, Telefonnummer und Adresse aus der Bestellung hinzufügen
  • Hängt nicht vom Browser ab, deshalb stoppen Adblocker es nicht
Das Pixel liefert die Browser-Kennungen und der Server die Bestellung. Jedes allein verpasst einen Teil des Gesamtbilds.

Der Preis dafür, beides zu betreiben: Meta erhält jetzt zwei Kopien jedes Events. Der nächste Abschnitt zeigt, wie Meta nur eine behält.

Wie funktioniert die Deduplizierung mit einer event_id?

Meta behandelt ein Browser-Event und ein Server-Event als dasselbe Event, wenn zwei Dinge übereinstimmen: der Eventname und die Event-ID. Im Pixel steht die ID in der Option eventID. In der Conversions API steht derselbe Wert in event_id.

Meta-Pixel: dasselbe Purchase mit eventID
fbq('track', 'Purchase', { value: 74.00, currency: 'USD' }, { eventID: 'order-1042' });
Käufer zahltBestellung 1042, $74.00
Pixel sendet PurchaseeventID order-1042, aus dem Browser
Server sendet Purchaseevent_id order-1042, aus der Bestellung
Meta zählt einsGleicher Name und gleiche ID innerhalb von 48 Stunden
Beide Kopien tragen denselben Eventnamen und dieselbe ID, deshalb behält Meta einen Kauf statt zwei.

Meta dedupliziert ein passendes Paar nur, wenn die beiden Kopien innerhalb von 48 Stunden nacheinander eintreffen. Ein paar Regeln sorgen dafür, dass das in der Praxis funktioniert:

  • Erzeuge die ID nur einmal. Bilde sie aus etwas, das beide Seiten kennen, etwa der Bestellnummer, und gib sie an den Browser und den Server weiter. Zwei Systeme, die jeweils ihre eigene ID erzeugen, passen nicht zusammen.
  • Verwende ein einheitliches Format. order-1042 und 1042 sind unterschiedliche IDs.
  • Der Event-Name muss exakt übereinstimmen. Purchase und purchase sind verschiedene Events.
  • Sende das Server-Event zügig. Ein Server-Event, das mehr als 48 Stunden nach dem Browser-Event eintrifft, wird ein zweites Mal gezählt.

Meta beschreibt außerdem eine zweite Methode, die Events über fbp oder external_id paart. Laut Meta funktioniert sie in der Regel nur, wenn das Browser-Event vor dem Server-Event eintrifft, deshalb ist eine gemeinsame event_id die zuverlässigere Wahl. Wenn Meta trotzdem mehr Käufe meldet, als dein Shop hatte, listet unser Leitfaden zu doppelten Purchase-Events die üblichen Ursachen auf.

Die Pflichtfelder machen ein Event gültig. Die empfohlenen Felder entscheiden, wie viele deiner Events Meta einer Person zuordnen kann, und nur zugeordnete Events lassen sich für die Attribution und die Anzeigenauslieferung nutzen.

ParameterWebsite-EventsWas gesendet werden soll
event_nameErforderlichEin Standard-Event wie Purchase oder ein benutzerdefinierter Eventname
event_timeErforderlichUnix-Zeit in Sekunden, höchstens 7 Tage in der Vergangenheit
action_sourceErforderlichwebsite für Events in deinem Shop
event_source_urlErforderlichDie Seiten-URL, auf der das Event passiert ist
client_user_agentErforderlichDer Browser-String des Käufers, nicht der deines Servers
user_dataErforderlichMindestens ein Parameter für Kundeninformationen
event_idEmpfohlenDieselbe ID, die das Pixel verwendet, für die Deduplizierung
em, phEmpfohlenE-Mail-Adresse und Telefonnummer, normalisiert und mit SHA-256 gehasht
client_ip_addressEmpfohlenDie IP-Adresse des Käufers, nicht gehasht
fbp, fbcEmpfohlenDie Cookies mit Browser-ID und Click-ID, nicht gehasht
external_idEmpfohlenDeine eigene Kunden-ID, in Browser- und Server-Events identisch
value, currencyMit Purchase sendenDer Bestellwert und ein dreistelliger Währungscode
Meta führt action_source, event_source_url und client_user_agent als erforderlich für Website-Events auf, die über die Conversions API gesendet werden.

Drei Details verursachen die meisten Probleme:

  • Normalisiere, bevor du hashst. Meta erwartet die E-Mail-Adresse ohne Leerzeichen am Rand und in Kleinbuchstaben, Telefonnummern als Ziffern mit Ländervorwahl. Anna@Example.com und anna@example.com ergeben unterschiedliche Hashes, und nur der zweite kann zugeordnet werden.
  • Hashe keine Browser-Kennungen. fbp, fbc, die IP-Adresse und der User Agent werden als Klartextwerte übergeben.
  • Behalte die Click-ID genau so, wie sie ist. Der Wert fbc besteht aus fb.1., dem Erstellungszeitpunkt in Millisekunden, einem Punkt und der fbclid aus der URL der Landingpage. Die fbclid unterscheidet Groß- und Kleinschreibung. Speichere sie, wenn der Besucher landet, denn beim Checkout steht sie nicht mehr in der URL.

Wie gut diese Felder zugeordnet werden, misst der Event-Match-Quality-Score von Meta. Unser Leitfaden zur Event Match Quality behandelt jeden Parameter, die Hashing-Regeln und den Score, den du anstreben solltest.

Wie testest du Events mit Test events?

Der Events Manager hat einen Tab Test events, der Events zeigt, sobald sie ankommen. Nutze ihn, bevor du dich auf ein neues Setup verlässt.

  1. Test events öffnen

    Wähle im Events Manager dein Dataset (Pixel) aus und öffne den Tab Test events. Kopiere den dort angezeigten Testcode.

  2. Den Code zu deinen Server-Events hinzufügen

    Sende ihn in der Anfrage als test_event_code. In ROASaurus fügst du ihn in das Feld Test event code des Meta-Pixels ein.

  3. Eine Testbestellung aufgeben

    Besuche den Shop, lege ein Produkt in den Warenkorb und bezahle, damit sowohl das Pixel als auch der Server ein Purchase senden.

  4. Die beiden Kopien vergleichen

    Beide Kopien sollten denselben Eventnamen, dieselbe Event-ID, denselben Wert und dieselbe Währung zeigen.

  5. Die Kundeninformationen prüfen

    Das Server-Event sollte gehashte E-Mail-Adresse und Telefonnummer, die IP-Adresse, den User Agent und fbp enthalten, dazu fbc, wenn der Besuch mit einem Anzeigenklick begann.

  6. Den Testcode entfernen

    Meta sagt, das Feld sei nur zum Testen gedacht, entferne es also, bevor du dich auf die Events verlässt.

Purchase browser order-1042 74.00 USDVom Pixel
Purchase server order-1042 74.00 USDVon der Conversions API
event_name + event_id matchAls ein Kauf gezählt
em ph fbp fbc client_ip_address client_user_agentKundeninformationen im Server-Event
Was eine gute Testbestellung zeigt (Beispielwerte): zwei Kopien, eine ID und vollständige Kundeninformationen.

Häufige Fehler der Conversions API und wie du sie behebst

Was du siehstWahrscheinliche UrsacheLösung
Die gesamte Anfrage schlägt fehl und kein Event wird verarbeitetEin Event im Batch hat eine event_time, die mehr als 7 Tage zurückliegtSende Events, wenn sie passieren. Korrigiere alte Events oder verwirf sie, bevor du es erneut versuchst.
Meta meldet mehr Käufe, als dein Shop hatteUnterschiedliche Event-IDs, ein Pixel-Event ohne eventID oder eine zweite App, die dasselbe Pixel sendetVerwende für beide Kopien eine ID und pro Pixel einen Server-Sender.
Niedrige Match-Qualität bei Server-EventsDein Server sendet seine eigene IP-Adresse und seinen eigenen User AgentGib die IP-Adresse und den User Agent weiter, die aus dem Browser oder der Bestellung des Käufers erfasst wurden.
Wenige Events mit fbcDie fbclid wurde auf der Landingpage nicht gespeichert oder wurde verändertSpeichere die fbclid genau so, wie sie ankommt, und bilde fbc daraus.
E-Mail-Adresse und Telefonnummer passen nichtWerte ohne Normalisierung gehasht oder ohne Hashing gesendetEntferne Leerzeichen am Rand der E-Mail-Adresse und schreibe sie klein, behalte bei der Telefonnummer Ziffern und Ländervorwahl und hashe dann mit SHA-256.
Anfragen schlagen mit einem Fehler wegen eines abgelaufenen Tokens fehlDas Access Token stammt aus einem Facebook-Login, und Login-Tokens laufen abVerbinde neu oder nutze ein System-User-Token aus dem Business Manager, das du ohne Ablaufdatum erstellen kannst.
Die meisten Probleme mit der Conversions API zeigen sich als abgelehnte Anfragen, Doppelzählungen oder niedrige Match-Qualität.

Öffne nach ein paar Tagen mit Live-Traffic den Tab Diagnostics im Events Manager. Meta listet dort Probleme mit Empfehlungen zur Behebung auf. Vergleiche danach die tägliche Purchase-Zahl im Events Manager mit den bezahlten Bestellungen in deinem Shop für dieselben Tage. Liegt Meta deutlich höher, listet unser Hilfeartikel zum Vermeiden von Doppelzählungen die Einstellungen auf, die du prüfen solltest.

So richtest du die Conversions API mit ROASaurus ein

ROASaurus sendet Events der Conversions API aus den Bestelldaten deines Shops, sodass du die Server-Seite nicht selbst bauen musst. Klicke unter Tracking & platforms auf Connect with Facebook und wähle dein Werbekonto und dein Pixel, oder füge die ID des Pixels (Datasets) und ein Conversions-API-Token ein. Die Einrichtungsanleitung für Meta führt durch beide Optionen, und die Seite zur Meta-Integration listet jedes gesendete Feld auf.

  • Eine ID auf beiden Seiten. Browser- und Server-Events teilen sich eine Event-ID. Bei einem Kauf ist es order- gefolgt von der Bestell-ID.
  • Eine kurze Wartezeit vor dem Kauf. Das Server-Purchase wartet nach dem Eingang der Bestellung einen kurzen Moment, damit zuerst das Browser-Event des Kaufs zugeordnet werden kann. Dessen IP-Adresse, User Agent und Seiten-URL werden dann zusammen mit den für den Besucher gespeicherten fbp und fbc mit dem Server-Event gesendet.
  • Kundeninformationen aus der Bestellung. E-Mail-Adresse, Telefonnummer, Name und Adresse werden normalisiert und mit SHA-256 gehasht. Die Kunden-ID des Shops und die ROASaurus-Besucher-ID werden gehasht als external_id mitgeschickt.
  • Events, die Meta nicht zuordnen kann, werden übersprungen. Ein Event ohne fbc, fbp, E-Mail-Adresse, Telefonnummer oder IP-Adresse wird nicht gesendet.

Im Event log siehst du jede Server-Zustellung mit der Anfrage und der Antwort von Meta. Wenn sich deine Margen zwischen Produkten stark unterscheiden, kannst du neben jedem Kauf auch einen Gewinnwert senden: Unser Leitfaden zur Meta-Wertoptimierung für Gewinn erklärt, wie. Den gesamten Datenweg vom Klick bis zur Bestellung findest du unter Server-Side-Tracking.

Quellen

  1. Meta for Developers: Handling Duplicate Pixel and Conversions API Events
  2. Meta for Developers: Server Event Parameters
  3. Meta for Developers: Customer Information Parameters
  4. Meta for Developers: Using the API - Conversions API
  5. Meta for Developers: ClickID and the fbp and fbc Parameters

In ROASaurus

Weiterlesen

Werbeplattformen und WebshopsConversion-Tracking bei Nachnahme und externen CheckoutsConversion-Tracking bei Nachnahme: Warum Pixel Nachnahme-Bestellungen und Bestellungen aus externen Checkouts verpassen, wann du den Kauf senden solltest und wie du mit verweigerten Bestellungen umgehst.Werbeplattformen und WebshopsConversion-Tracking für CCV Shop: eine EinrichtungsanleitungConversion-Tracking für CCV Shop: Sende bezahlte Bestellungen mit einem signierten Webhook an Meta und TikTok, verknüpfe sie mit Anzeigenklicks, richte alles ein, teste es und gehe mit verspäteten Zahlungen um.Werbeplattformen und WebshopsErweiterte Conversions für Google Ads in ShopifyErweiterte Conversions fügen Käufen in Google Ads gehashte Kundendaten hinzu, hier in Shopify. So funktionieren sie, worin sie sich von Offline-Importen unterscheiden und wie du sie einrichtest.
FAQ

Antworten auf deine Fragen

Brauche ich sowohl den Meta-Pixel als auch die Conversions API?

Meta empfiehlt, beides zu nutzen. Das Pixel liefert Browserdaten wie das Cookie fbp, und die Conversions API übermittelt Events, die der Browser verpasst. Gib beiden Kopien denselben Eventnamen und dieselbe Event-ID, damit Meta jedes Event nur einmal zählt.

Wie lange wartet Meta, um ein Browser- und ein Server-Event zu deduplizieren?

Meta dedupliziert ein Browser-Event und ein Server-Event mit demselben Eventnamen und derselben Event-ID, wenn sie im Abstand von höchstens 48 Stunden eintreffen. Eine Kopie, die später ankommt, wird erneut gezählt.

Müssen bei der Conversions API Kundendaten gehasht werden?

Ja, bei Kontaktdaten. Felder für E-Mail-Adresse, Telefonnummer, Name und Adresse müssen normalisiert und mit SHA-256 gehasht werden. IP-Adresse, User Agent, fbp und fbc werden ohne Hashing gesendet.

Welche Felder sind für ein Website-Event erforderlich?

Jedes Event braucht event_name, event_time, action_source und mindestens einen Parameter für Kundeninformationen. Bei Website-Events verlangt Meta außerdem event_source_url und client_user_agent.

Kann ich alte Bestellungen über die Conversions API senden?

Nur aktuelle. Die event_time darf höchstens 7 Tage in der Vergangenheit liegen, und wenn ein Event in einer Anfrage älter ist, lehnt Meta die gesamte Anfrage ab.

Jeder Verkauf, zurückverfolgt zur Anzeige, die ihn gebracht hat

Server-Side-Tracking, Gewinn und Customer Lifetime Value in einer App. 14 Tage kostenlos testen, ohne Kreditkarte.

Starte deine kostenlose Testphase →