Event-Routing-Referenz

Ein Event feuert innerhalb von WordPress, aber nicht jeder Kanal sollte es empfangen. Beaconry routet jedes Event genau an die Plattformen, die einen echten Nutzen davon haben, und überspringt den Rest stillschweigend. Diese Seite ist die vollständige Matrix plus die Begründung hinter jedem Skip, direkt aus dem Dispatcher, nicht aus der Marketing-Seite eines Anbieters.

Lesezeit: ~8 MinZuletzt aktualisiert: 2026-06-08

Die eine Regel hinter der ganzen Tabelle

Jede Plattform bekommt genau die Events, die sie nutzen kann. Ein Kanal empfängt ein Event nur dann, wenn dieses Event auf etwas abbildet, worauf der Kanal tatsächlich optimieren oder reporten kann. Einer Plattform ein Event zu schicken, für das sie keinen Slot hat, hilft dir nicht, es erzeugt nur ein Junk-Custom-Event, das den Events Manager dieser Plattform zumüllt, einen Zähler aufsplittet oder im schlimmsten Fall mit einem anderen Event in einem gemeinsamen Slot kollidiert. Deshalb filtert Beaconry pro Kanal, bevor irgendetwas auf die Leitung geht.

Es gibt zwei Filter-Modelle, denn die zehn Kanäle teilen sich in zwei Familien auf:

  • Standard-Event-Kanäle (Meta, TikTok, Pinterest, Snapchat, Reddit) haben ein veröffentlichtes Vokabular an Standard-Event-Namen. Beaconry bildet dein Event auf dieses Vokabular ab und sendet es, außer das Event steht auf der Skip-Liste dieses Kanals. Um diese Skip-Liste geht es auf dieser Seite hauptsächlich.
  • Slot-/Goal-Kanäle (Google Ads, Microsoft Ads, LinkedIn, X Ads) haben kein flaches Event-Vokabular. Jede Conversion ist an etwas gebunden, das du in der UI dieser Plattform anlegst: eine Conversion Action (Google Ads), ein Conversion Goal (Microsoft Ads), eine Conversion Rule (LinkedIn) oder eine konfigurierte event_id (X Ads). Beaconry sendet ein Event nur dann an einen dieser Kanäle, wenn das Event auf einen bekannten Slot abbildet und du die ID für diesen Slot ausgefüllt hast. Alles andere wird verworfen, es gibt keinen Custom-Event-Fallback.

GA4 steht leicht abseits: es ist das Analytics-Ziel, also empfängt es fast alles, inklusive der Events, die keine Werbeplattform sehen sollte.

GA4 ist der Catch-all

GA4 (Measurement Protocol) empfängt jedes Event, das Beaconry dispatcht, mit drei Ausnahmen: user_engagement, session_start und first_visit. Diese drei sind GA4-reservierte Namen, die die Plattform selbst aus Engagement-Zeit und neuen Client-/Session-IDs ableitet. Sie selbst zu senden bringt nichts Sinnvolles, und das Measurement Protocol verwirft sie unter seiner Default-Validierung stillschweigend, also überspringt Beaconry sie im Dispatcher, um die Leitung sauber und die Dashboard-Zähler ehrlich zu halten.

Alles andere erreicht GA4: der volle Commerce-Funnel inklusive view_item_list, view_cart, remove_from_cart und refund, plus die Form-Funnel-Signale form_start und form_abandon (letzteres nur, wenn du Form-Funnel-Forwarding aktivierst). Das ist Absicht. GA4 ist da, wo du das vollständige Bild willst, inklusive der behavioralen und reinen Analytics-Events, die auf einer Werbeplattform nichts zu suchen haben.

Die Commerce-Funnel-Matrix

Das ist der WooCommerce-Zehn-Event-Funnel (EDD und SureCart feuern denselben Satz minus search, und SureCarts Cart-Stage-Events kommen über die Browser-Bridge an). "Standard" heißt, der Kanal empfängt es als einen seiner nativen Event-Namen. "Custom" heißt, es erreicht den Kanal trotzdem, aber als Custom-Event, weil dieser Kanal kein natives Äquivalent hat. Ein Strich heißt, das Event erreicht diesen Kanal überhaupt nicht.

EventGA4MetaTikTokPinterestSnapchatRedditGoogle AdsMicrosoft AdsLinkedInX Ads
view_itemJaStandardStandardStandardStandardStandardSlot
view_item_listJaStandard
view_cartJaCustom
add_to_cartJaStandardStandardStandardStandardStandardSlotSlotSlotSlot
remove_from_cartJaCustom
searchJaStandardStandardStandardStandardStandard
begin_checkoutJaStandardStandardStandardStandardCustomSlotSlot
add_payment_infoJaStandardStandardStandardStandardCustom
purchaseJaStandardStandardStandardStandardStandardSlotSlotSlotSlot
refundJa

Zwei Spalten brauchen einen Warnhinweis, damit du die Tabelle richtig liest.

  • Die "Custom"-Zellen (Meta view_cart / remove_from_cart, Reddit begin_checkout / add_payment_info) bedeuten, das Event erreicht die Plattform, aber als Custom-Event, weil diese Plattform keinen Standard-Namen dafür hat. Es zählt weiterhin und kann weiterhin eine Custom Audience speisen, es ist dort nur kein erstklassiges Optimierungs-Event.
  • Die "Slot"-Zellen für Google Ads, Microsoft Ads, LinkedIn und X Ads sind bedingt. Das Event sendet nur tatsächlich, wenn du die passende Conversion-Action-/Goal-/Rule-/event_id-ID dafür konfiguriert hast. Ohne konfigurierte ID für diesen Slot wird das Event stillschweigend verworfen, auch wenn die Tabelle es mit "Slot" markiert. Siehe den Abschnitt zu den Slot-Kanälen weiter unten.

Warum jeder Skip existiert

refund geht nur an GA4

Das ist die überraschendste Zeile, also bekommt sie die ausführlichste Erklärung. Ein Refund wird an GA4 gesendet und an gar keinen Werbekanal.

GA4 hat ein natives refund-Event, das den erstatteten Umsatz wieder gegen den ursprünglichen Kauf verrechnet, sodass dein gemeldeter Umsatz nach einer Rückgabe korrekt bleibt. Das ist ein echtes, erstklassiges Event mit echter Semantik.

Kein Werbekanal hat ein Äquivalent. Meta CAPI und TikTok Events API haben schlicht keinen Refund-Event-Typ in ihrer unterstützten Liste (Metas Refund-Handling liegt in einer separaten Commerce-Platform-Order-Management-API, nicht in der Conversions API). Pinterest, Reddit und die Slot-Kanäle haben ebenfalls kein natives Refund. Ein Custom-"Refund"-Event an irgendeinen von ihnen zu senden würde keinen Umsatz verrechnen und würde kein Smart Bidding speisen, es wäre nur ein Zähler, der deine Custom-Event-Liste aufbläht. Auf Snapchat wäre es aktiv schädlich: ein Custom-Refund fällt auf denselben CUSTOM_EVENT_1-Slot, den Beaconry für Form-Leads reserviert, also würden Refunds und Leads im Snap-Reporting ununterscheidbar. Deshalb ist Refund GA4-only, Punkt.

view_item_list geht nur an GA4 und Pinterest

Auf Meta, TikTok, Snapchat und Reddit bildet eine Listen-/Collection-Ansicht auf dasselbe Standard-Event ab wie eine einzelne Produktansicht (ViewContent / VIEW_CONTENT). Auf einer Shop- oder Kategorieseite, die Produktdetails enthält, heißt das zwei ViewContent-Events mit verschiedenen IDs, die für eine Seitenansicht ankommen, was im Reporting doppelt zählt und Smart Bidding verwirrt (das auf Produktdetail-Signale optimiert, nicht auf Listen-Ansichten). Deshalb wird view_item_list auf diesen vieren übersprungen.

Pinterest ist die Ausnahme: es hat ein dediziertes view_category-Event, das sich von view_content unterscheidet, also bildet die Listen-Ansicht sauber auf einen eigenen Event-Typ ab, ohne Kollision. Pinterest bekommt es.

view_cart und remove_from_cart sind GA4-zentriert

Keines von beiden ist auf den meisten Werbeplattformen ein Standard-Event. view_cart erreicht Meta als Custom-Event und sonst nirgends unter den Werbekanälen; auf TikTok, Snapchat und Reddit würde es erneut auf ViewContent abbilden und doppelt zählen (SureCart insbesondere öffnet direkt nach dem Add-to-Cart ein Cart-Drawer und feuert eine Cart-Ansicht unmittelbar hinter dem Add), und Pinterest hat überhaupt kein Cart-View-Konzept. remove_from_cart erreicht Meta als Custom-Event und sonst nirgends; die anderen Plattformen haben entweder keine Abbildung (also wird das Event stillschweigend geschluckt und verschwendet nur Bytes) oder würden, auf Snapchat, mit dem reservierten Lead-Slot kollidieren. Smart Bidding optimiert auf Add-to-Cart und Purchase, nicht auf Removes, also kostet dich das Überspringen kein Optimierungs-Signal.

page_view und user_engagement

TikToks Events API hat kein Pageview in ihrer Standard-Web-Events-Liste, also wird ein server-seitiges page_view dort zu einem Custom-Event, das TikTok stillschweigend verwirft, unsichtbar in Test Events und tot im Conversion Manager. Beaconry überspringt es. user_engagement (das Zehn-Sekunden-Active-Dwell-Signal) bildet auf Meta und TikTok auf ViewContent ab, also macht es nur Sinn, es zu senden, wenn auch das passende Hybrid-Browser-Pixel live ist und es über eine gemeinsame event_id deduplizieren kann. Mit Hybrid aus wäre es ein einseitiges ViewContent ohne Browser-Gegenstück, also wird es übersprungen, sofern Hybrid für diesen Kanal nicht an ist. Es ist außerdem ein GA4-reservierter Name, also leitet GA4 es selbst ab.

form_start und form_abandon sind reines Analytics

Diese beiden sind behaviorale Funnel-Signale, keine Werbe-Conversions, und es ist garantiert, dass sie nie einen Werbekanal erreichen, dank eines einzelnen zentralen Gates im Dispatcher. form_start erreicht nur GA4. form_abandon erreicht GA4 nur, wenn du Form-Funnel-Forwarding aktivierst, und berührt standardmäßig nur den In-Plugin-Funnel-Store und nichts auf der Leitung. Dafür braucht es keinen Per-Kanal-Skip-Eintrag, und es gibt keinen Weg, wie ein künftiger Werbekanal sie versehentlich zu empfangen beginnt, weil das Gate einmal, vorab, für das gesamte Fan-out läuft. Siehe Formular-Setup für das Funnel-Feature selbst.

Die Slot-/Goal-Kanäle im Detail

Google Ads, Microsoft Ads, LinkedIn und X Ads nehmen kein frei formuliertes Event-Vokabular. Beaconry bildet dein GA4-Event auf einen festen Slot ab und sendet nur, wenn du die plattformseitige ID für diesen Slot konfiguriert hast. Hat ein Commerce-Event keinen Slot in der Map unten, wird es nie an diesen Kanal gesendet, kein Custom-Event-Fallback, keine Junk-Zeile in der Plattform.

Praktische Konsequenz: Top-of-Funnel- und Mid-Funnel-Events, die in der Slot-Map vorkommen (add_to_cart, begin_checkout), feuern trotzdem nur, wenn du tatsächlich eine Conversion Action / Goal / Rule dafür angelegt und ausgefüllt hast. Die meisten Setups konfigurieren Purchase und Lead und lassen den Rest leer, was in Ordnung ist. Der Slot existiert, damit du diese Mid-Funnel-Signale an Smart Bidding speisen kannst, wenn du willst.

GA4-EventGoogle AdsMicrosoft AdsLinkedInX Ads
purchasepurchasepurchasepurchasepurchase
add_to_cartadd_to_cartadd_to_cartaddtocartaddtocart
begin_checkoutbegin_checkoutbegin_checkout
view_itemkeypageview
page_viewpageview
generate_leadleadleadleadlead
submit_applicationleadleadleadlead
contactcontactcontactleadlead
sign_upsignupsignupsignupsignup
start_trialsignupsignup
subscribesubscribesubscribesignupsignup
schedulescheduleschedule

Ein paar Dinge, die du aus dieser Tabelle herauslesen solltest:

  • Google Ads und Microsoft Ads teilen sich eine Slot-Map. Sie haben dieselbe Purchase- / Lead- / SignUp- / Subscribe- / Schedule- / Contact-Conversion-Form, also gelten dieselben acht Arten für beide. Google Ads braucht außerdem eine gclid am Event, um es zu attribuieren, Microsoft Ads braucht eine msclkid, und ein Upload ohne die passende Click-ID wird stillschweigend übersprungen.
  • LinkedIn und X Ads nehmen kein begin_checkout, add_payment_info, search oder refund. Ihre Slot-Vokabulare sind enger (purchase, add-to-cart, lead, signup, plus keypageview auf LinkedIn und pageview auf X). Alles außerhalb dieser Slots wird verworfen.
  • contact und submit_application fallen auf lead zusammen auf LinkedIn und X, weil diese Plattformen sie nicht unterscheiden, während Google und Microsoft contact als eigenen Slot behalten.
  • Keiner der vier Slot-Kanäle empfängt view_item_list, view_cart, remove_from_cart oder refund. Es gibt keinen Slot dafür, also stellt sich die Frage nach Skip-Regeln gar nicht erst.

Form-Lead-Typen folgen derselben Logik

Ein Formular-Submit feuert ein Lead-Typ-Event (generate_lead per Default, oder Contact, Application, Subscribe, Registration, Appointment, Trial und so weiter). Dieses Event wird von genau derselben Maschinerie geroutet: GA4 bekommt es unter seinem kanonischen Namen, die Standard-Event-Kanäle bekommen ihren nativen Namen für diesen Lead-Typ, und die Slot-Kanäle feuern nur, wenn die passende Conversion Action / Goal / Rule / event_id konfiguriert ist. Die Per-Formular-Lead-Typ-zu-Per-Kanal-Namen-Tabelle lebt in Formular-Setup; diese Seite deckt die Commerce- und Funnel-Seite ab.

Kann ich einen Skip überschreiben?

Für die Standard-Event-Kanäle ja, pro Formular. Ein Formular-Caller kann einen expliziten Per-Kanal-Event-Namen am Event setzen, der den Skip für diesen Kanal überschreibt und ein Custom-Event unter dem von dir gewählten Namen sendet. Das ist ein Advanced-Hebel für die Formular-Adapter, kein globaler Toggle, und die Commerce-Funnel-Skips sind nicht zum Überschreiben gedacht, weil jeder einzelne davon existiert, um einen Doppel-Zählung oder eine Slot-Kollision zu verhindern. Für die Slot-Kanäle gibt es nichts zu überschreiben: ein Event ohne Slot hat auf dieser Plattform keinen Ort, wo es hingehen könnte.

Wenn du wirklich ein Nicht-Standard-Routing brauchst (eine Custom-Rate pro Markt, ein maßgeschneidertes Event an eine Plattform), hänge dich in den bcnr_pre_dispatch_event-Filter und schreibe das Event vor dem Fan-out um. Das ist der sanktionierte Erweiterungspunkt, derselbe, den Multi-Currency und der Form-Funnel nutzen.