Möchten Sie wissen, welche Kampagnen tatsächlich Spenden generieren? Das Google Analytics Add-on verbindet Ihre Charitable Spendenformulare mit Google Analytics 4, erfasst jedes Spendenereignis und zeigt Ihnen genau, woher Ihre Unterstützer kommen. Es verfolgt sowohl Browser-seitige als auch Server-seitige Conversions, sodass Sie keine Spenden durch PayPal-Weiterleitungen, per Webhook bestätigte Zahlungen oder vom Administrator bestätigte Offline-Spenden verlieren.
Diese Anleitung führt Sie durch die Schritte, um Ihre Charitable-Website mit GA4 zu verbinden, serverseitiges Tracking zu aktivieren, Datenschutzeinstellungen zu konfigurieren und die von Charitable erfassten Daten für jede Spende zu überprüfen.
Hinweis:
Voraussetzungen: Charitable Pro 1.8.13+
Das Google Analytics Add-on erfordert den Pro-Plan oder höher.Stellen Sie vor Beginn sicher, dass Charitable Pro auf Ihrer Website installiert und aktiviert ist. Sie benötigen außerdem eine Google Analytics 4-Property mit mindestens einem für Ihre Website konfigurierten Datenstream.
In dieser Anleitung
- Einrichtung des Google Analytics Add-ons
- Aktivierung des serverseitigen Trackings
- Konfiguration von Zustimmung und Datenschutz
- Ausschluss von internem Traffic
- Testen Ihrer Verbindung
- Überprüfung von Spenderquellen-Daten in WordPress
- Verständnis der von Charitable getrackten Ereignisse
- Anzeigen Ihrer Daten in GA4
- Testen der Funktion
- Fehlerbehebung
- Filter
- Aktionen
- Spenden-Metaschlüssel
- Cookie-Namen
- Einstellungsoptionsschlüssel
- Konstanten
- Häufige Rezepte
- Reihenfolge der Hook-Auslösung
- Häufig gestellte Fragen
Einrichtung des Google Analytics Add-ons
Nachdem Sie das Add-on installiert und aktiviert haben, werden die GA4-Einstellungen zum erweiterten Einstellungsbereich von Charitable hinzugefügt. Um sie zu öffnen, gehen Sie zu Charitable » Einstellungen » Erweitert in Ihrem WordPress-Adminbereich.
Sie benötigen Ihre GA4-Mess-ID, die mit
G-beginnt, gefolgt von einer Zeichenkette aus Buchstaben und Zahlen. Um sie zu finden, melden Sie sich bei Ihrem Google Analytics -Konto an, öffnen Sie Admin » Datenstreams und wählen Sie Ihren Webstream aus. Die Mess-ID wird in der oberen rechten Ecke der Detailseite des Streams angezeigt.Zurück in Ihrem WordPress-Adminbereich fügen Sie die Mess-ID in das Feld Google Analytics ein und klicken Sie dann unten auf der Seite auf Änderungen speichern.
Hinweis: Das Add-on prüft, ob die Mess-ID mit
G-beginnt. Wenn Sie versehentlich eine Google Tag Manager-Container-ID (die mitGTM-beginnt) oder eine ältere Universal Analytics-Property-ID (UA-) einfügen, funktioniert das Tracking nicht. Das aktuelle GA4-Format ist das einzige unterstützte.Aktivierung des serverseitigen Trackings
Browser-seitiges Tracking mit gtag.js funktioniert gut, wenn Spender die Zahlung auf Ihrer Website abschließen und die Spendenquittungsseite erreichen. Aber viele Spenden werden an Orten abgeschlossen, die der Browser nicht sehen kann: eine PayPal-Standard-Weiterleitung, bei der der Spender den Tab schließt, ein Stripe-Webhook, der die Zahlung Stunden später bestätigt, oder ein Administrator, der eine Offline-Spende manuell als bezahlt markiert. Ohne serverseitiges Tracking erreichen diese Spenden niemals Google Analytics.
Charitables serverseitiges Tracking sendet ein bestätigtes
purchase-Ereignis an GA4 in dem Moment, in dem sich der Spendenstatus zu Bezahlt ändert, unabhängig davon, ob der Browser des Spenders beteiligt ist. Derselbe Pfad löst auch einrefund-Ereignis aus, wenn eine Spende zurückerstattet wird.Um serverseitiges Tracking zu aktivieren, benötigen Sie ein Measurement Protocol API-Geheimnis von Ihrer GA4-Property. Um eines zu erstellen, melden Sie sich bei Google Analytics an, öffnen Sie Admin » Datenströme, wählen Sie Ihren Webstream aus, scrollen Sie nach unten zu Measurement Protocol API-Geheimnisse und klicken Sie auf Erstellen. Geben Sie dem Geheimnis einen Spitznamen, damit Sie es später identifizieren können.
Sobald Sie das Geheimnis haben, kopieren Sie seinen Wert, kehren Sie zu Charitable » Einstellungen » Erweitert zurück und fügen Sie es in das Feld GA4 Measurement Protocol API Secret ein. Speichern Sie Ihre Änderungen.
Hinweis: Das API-Geheimnis ist optional. Wenn Sie es leer lassen, verfolgt Charitable weiterhin On-Site-Spenden über den Browser. Der serverseitige Pfad wird nur aktiviert, wenn sowohl die Mess-ID als auch das API-Geheimnis festgelegt sind.
Serverseitiges und browserseitiges Tracking teilen sich ein Idempotenz-Flag, sodass eine Spende, die On-Site abgeschlossen und per Webhook bestätigt wird, nur ein
purchase-Ereignis in GA4 auslöst – niemals zwei. Der erste Pfad, der ausgelöst wird, gewinnt.Konfiguration von Zustimmung und Datenschutz
Das Addon bietet vollständige Unterstützung für Google Consent Mode v2, was für den Datenverkehr aus dem Europäischen Wirtschaftsraum gemäß den Durchsetzungsregeln von Google vom März 2024 erforderlich ist. Ohne diese verschwinden Spender, die der Analysezustimmung verweigern, vollständig aus GA4. Mit dieser Funktion empfängt GA4 weiterhin modellierte Conversions und cookielose Pings.
Der Zustimmungsstatus wird im Seitenkopf gesendet, bevor
gtag.jsgeladen wird, mit allen vier erforderlichen Signalen:analytics_storage,ad_storage,ad_user_dataundad_personalization. Die Werte stammen von der Consent-Management-Plattform, die Sie installiert haben.Zustimmungsintegrationseinstellung
Im erweiterten Einstellungsbereich sehen Sie unter dem Feld für das API-Geheimnis ein Kontrollkästchen Zustimmungsintegration. Diese Einstellung steuert, wie das Addon über das WP Consent API -Framework mit Ihrem CMP kommuniziert, das von Cookiebot, CookieYes, Complianz, Iubenda, OneTrust und den meisten anderen wichtigen Zustimmungs-Plugins unterstützt wird.
- Aktiviert (Standard) – das Addon prüft zum Zeitpunkt der Spende
wp_has_consent('statistics')und löst nur dann serverseitige Ereignisse für Spender aus, die der Analysezustimmung zugestimmt haben. Wählen Sie diese Option, wenn Sie ein CMP installiert haben und möchten, dass serverseitige Ereignisse die Zustimmung des Spenders berücksichtigen.- Deaktiviert – das Addon ignoriert den Zustand der WP Consent API und löst für jede abgeschlossene Spende serverseitige Ereignisse aus. Wählen Sie diese Option nur, wenn Sie kein CMP haben oder wenn Ihr Rechtsteam bestätigt hat, dass Spenderdaten ohne Analysezustimmung an Google gesendet werden können.
Der Einwilligungsstatus wird in dem Moment erfasst, in dem die Spende erstellt wird, und im Spenden-Datensatz gespeichert. Das bedeutet, dass ein Spender, der später seine Meinung in Ihrem CMP ändert, keine Ereignisse für bereits getätigte Spenden rückwirkend blockiert – der Schnappschuss zum Zeitpunkt der Spende ist für diese Spende maßgeblich.
IP-Anonymisierung
IP-Adressen von Spendern werden immer anonymisiert, bevor sie an Google gesendet werden. Charitable kürzt IPv4-Adressen auf
/24(die letzte Oktett wird auf Null gesetzt) und IPv6-Adressen auf/48(die letzten 80 Bits werden auf Null gesetzt), bevor sie alsip_override-Parameter an GA4 übergeben werden.Das Ergebnis: Google kann Spender auf Länder- und Regionsebene lokalisieren – nützlich für die Spenden-Attribution –, aber niemals die genaue IP eines Spenders sehen. Die vollständige IP wird auch nie in Ihrer WordPress-Datenbank gespeichert.
Ausschluss von internem Traffic
Wenn Ihr Team sich anmeldet, um Kampagnen zu testen oder Spenden zu verwalten, möchten Sie wahrscheinlich nicht, dass deren Browsing-Aktivitäten in GA4 neben echten Spenderdaten angezeigt werden. Das Feld Tracking für Rollen ausschließen ermöglicht es Ihnen, das Tracking für angemeldete Benutzer mit bestimmten Rollen vollständig zu überspringen.
Suchen Sie in den erweiterten Einstellungen nach Tracking für Rollen ausschließen und aktivieren Sie die Kontrollkästchen für alle Rollen, die Sie ausschließen möchten. Gängige Optionen sind Administrator und Redakteur für ein kleines Team oder nur Administrator, wenn Spendenmitarbeiter getrackt werden sollen. Speichern Sie Ihre Änderungen.
Für ausgeschlossene Benutzer lädt das Add-on
gtag.jsnicht im Frontend und löst keine Ereignisse aus. Abgemeldete Besucher und Benutzer in nicht ausgewählten Rollen werden normal getrackt.Testen Ihrer Verbindung
Die größte Quelle der Verwirrung bei jeder Analyseintegration ist: „Habe ich das richtig konfiguriert?“ Das Add-on enthält einen Ein-Klick-Test, der ein echtes Ereignis an GA4 mit aktiviertem Debug-Modus sendet und dann das Ergebnis inline meldet.
Scrollen Sie in Charitable » Einstellungen » Erweitert zum Abschnitt GA4-Verbindung testen und klicken Sie auf Testereignis an GA4 senden.
Die Schaltfläche führt nacheinander zwei Dinge aus. Erstens sendet sie Ihre Nutzdaten an den Debug-Endpunkt von GA4, der die Struktur validiert und ungültige Mess-IDs oder API-Schlüssel mit einer aussagekräftigen Fehlermeldung ablehnt. Zweitens sendet sie dasselbe Ereignis mit aktiviertem
debug_modean den Live-Endpunkt von GA4, sodass das Ereignis innerhalb weniger Sekunden in GA4 » Admin » DebugView erscheint.Wenn der Test erfolgreich ist, sehen Sie ein grünes Häkchen mit einer Bestätigungsnachricht, die das Testereignis benennt (
charitable_test_event). Wenn er fehlschlägt, teilt Ihnen die Nachricht mit, warum – die häufigsten Ursachen sind ein ungültiger API-Schlüssel, ein Tippfehler in der Mess-ID oder ein Netzwerkverbindungsproblem zwischen Ihrem Server und Google.Das Testereignis ist harmlos. Es verwendet eine synthetische Client-ID, sodass es in Ihren Standardberichten nicht neben echten Spenderdaten angezeigt wird.
Überprüfung von Spenderquellen-Daten in WordPress
Jede Spende in Ihrem Charitable-Admin zeigt ein Google Analytics -Panel in der rechten Seitenleiste des Bearbeitungsbildschirms für Spenden an. Das Panel wird nur angezeigt, wenn Daten für diese Spende erfasst wurden. Ältere Spenden von vor der Installation des Add-ons zeigen es daher nicht an.
Das Panel gruppiert die erfassten Daten in vier Abschnitte:
- Quelle (UTM) – zeigt die Werte
utm_source,utm_medium,utm_campaign,utm_term,utm_contentundutm_idaus der URL an, über die der Spender Ihre Website erreicht hat. Angezeigt werden nur Felder mit erfassten Werten.- GA4-Sitzung – zeigt die GA4-Client-ID und die Sitzungs-ID des Spenders an, die aus dem
_ga-Cookie zum Zeitpunkt der Spende ausgelesen wurden. Diese ermöglichen es Ihnen, die Spende in GA4-Berichten abzugleichen, wenn Sie eine bestimmte Transaktion untersuchen müssen.- Zustimmung bei Eingabe – zeigt den Zustand der WP Consent API des Spenders für die Kategorien
statisticsundmarketingzum Zeitpunkt der Spende an. Nützlich für Compliance-Audits.- Ausgelöste GA4-Ereignisse – zeigt den Zeitstempel an, zu dem die Ereignisse
purchaseund (falls zutreffend)refundan GA4 gesendet wurden. Wenn eine Spende keinenpurchase-Zeitstempel hat, bedeutet dies, dass das Ereignis noch nicht gesendet wurde (noch ausstehend) oder durch Ihre Einstellungen für Zustimmung oder Rollenausschluss unterdrückt wurde.Das Panel wird standardmäßig zusammengeklappt geladen, um den Bearbeitungsbildschirm für Spenden übersichtlich zu halten. Klicken Sie auf die Titelleiste von Google Analytics , um es zu erweitern. WordPress merkt sich Ihre Präferenz pro Benutzer.
UTM-Tagging Ihrer Kampagnen
Damit der Abschnitt Quelle (UTM) Daten erfassen kann, muss der Spender über eine URL, die UTM-Parameter enthält, auf Ihre Website gelangen. Eine typische Kampagnen-URL könnte so aussehen:
https://example.org/donate/?utm_source=email&utm_medium=newsletter&utm_campaign=spring-2026Sie würden diesen Link in Ihrer Spenden-E-Mail anstelle der reinen URL der Spendenseite senden. Wenn der Spender darauf klickt, speichert Charitable diese UTM-Werte in einem First-Party-Cookie, das 30 Tage lang gültig ist. Wann immer er innerhalb dieses Zeitfensters spendet, werden die UTM-Werte dem Spenden-Datensatz zugeordnet und als
source-,medium- undcampaign-Ereignisparameter an GA4 weitergeleitet.Standardmäßig verwendet das Add-on Last-Touch-Attribution: Wenn der Spender mit einem Satz von UTMs besucht, dann später mit einem anderen Satz, gewinnt der aktuellste Satz. Entwickler können mit dem Filter
charitable_google_analytics_utm_first_touchzu First-Touch-Attribution wechseln.Verständnis der von Charitable getrackten Ereignisse
Charitable löst zu verschiedenen Zeitpunkten im Spendenlebenszyklus die folgenden GA4-Ereignisse aus. Alle erscheinen automatisch in Ihren GA4-Berichten – es ist keine benutzerdefinierte Ereigniskonfiguration auf der GA4-Seite erforderlich.
purchase– wird ausgelöst, wenn eine Spende als bezahlt bestätigt wird. Sendet Standard-GA4-E-Commerce-Felder:transaction_id(die Spenden-ID),value,currencyund einitems[]-Array mit der Kampagne als einzelnem Artikel, kategorisiert alsRecurring(wiederkehrend) oderOne-Time(einmalig).refund– wird ausgelöst, wenn eine Spende als erstattet markiert wird. Stimmt mit dertransaction_iddes ursprünglichenpurchase-Events überein, sodass GA4 die beiden automatisch verknüpft. Der Nettoumsatz in Ihren GA4-Berichten bleibt korrekt.sign_up– wird ausgelöst, wenn ein Spender ein WordPress-Benutzerkonto auf Ihrer Website erstellt. Das Event enthält eine gehashte Kennung, sodass spätere Spenden desselben Spenders über verschiedene Browser und Geräte hinweg derselben Person zugeordnet werden.login– wird ausgelöst, wenn sich ein wiederkehrender Spender anmeldet. Nützlich für die Berichterstattung zur Kundenbindung in GA4.donation_button_clickunddonate_now_click– Klick-Events nur im Browser für ein Signal am Anfang des Funnels. Sie werden ausgelöst, wenn ein Spender auf eine Spenden-Schaltfläche klickt, bevor das Formular abgeschickt wurde.Spenden, die im Testmodus von Charitable getätigt werden, werden mit
test_mode: truein den Event-Parametern gekennzeichnet, sodass Sie sie aus Ihren Berichten herausfiltern können. Um dies in GA4 zu tun, erstellen Sie einen Vergleich oder eine Zielgruppe, die Events ausschließt, bei denentest_modegleichtrueist.Anzeigen Ihrer Daten in GA4
Sobald Sie eine Testspende getätigt haben (oder eine echte erhalten haben), gibt es in Google Analytics drei Stellen, an denen Sie die Daten überprüfen können.
Echtzeit
Der schnellste Weg, um zu bestätigen, dass das Tracking funktioniert. Öffnen Sie in Ihrer GA4-Property Berichte » Echtzeit. Innerhalb von etwa 30 Sekunden nach Abschluss einer Spende sehen Sie das
purchase-Event in der Karte Ereignisanzahl nach Ereignisname auf der rechten Seite. Klicken Sie auf einen beliebigen Ereignisnamen, um seine Parameter zu untersuchen.DebugView
Für eine schrittweise Überprüfung eines bestimmten Events öffnen Sie Admin » DebugView. Mit
debug_modegekennzeichnete Events werden hier in Echtzeit mit vollständigen Parameterdetails angezeigt. Die Schaltfläche Testverbindung kennzeichnet ihre Events automatisch für DebugView, und Sie können den Debug-Modus auch website-weit aktivieren, indem Siedefine('CHARITABLE_DEBUG', true);zu Ihrerwp-config.phphinzufügen.Standardberichte
Für die Umsatzanalyse ist der nützlichste Bericht Berichte » Monetarisierung » E-Commerce-Käufe. Dieser Bericht aggregiert Ihre
purchase-Events zu Umsatzzahlen, aufgeschlüsselt nach Kampagne (demitem_name), Kategorie (wiederkehrend vs. einmalig) und Datum. Rückerstattungen werden dank der Transaktions-ID-Übereinstimmung von GA4 automatisch abgezogen. Standardberichte werden innerhalb von 24 bis 48 Stunden gefüllt.Für die Analyse der Traffic-Quelle sehen Sie unter Berichte » Akquisition » Traffic-Akquisition nach. Ihre mit UTM getaggten Kampagnen werden als separate Zeilen angezeigt, mit Umsatz, Conversion-Rate und Engagement-Metriken für jede.
Testen der Funktion
Der schnellste End-to-End-Test ist eine echte Spende über Ihre Website mit einem Test-Gateway wie dem Stripe Testmodus zu tätigen. Nach Abschluss der Spende öffnen Sie die Spende unter Charitable » Spenden, erweitern Sie das Panel Google Analytics und bestätigen Sie, dass der Abschnitt GA4-Ereignisse ausgelöst einen Zeitstempel für
purchaseanzeigt. Überprüfen Sie dann unter GA4 » Berichte » Echtzeit, ob das Ereignis innerhalb von 30 Sekunden erscheint.Wenn Sie das Rückerstattungsereignis testen, ändern Sie den Status der Spende in der Spendenliste auf Zurückerstattet. Die Metabox sollte einen Zeitstempel für
refundhinzufügen, und GA4 Echtzeit sollte das Ereignisrefundinnerhalb von 30 Sekunden anzeigen.Fehlerbehebung
Ereignisse erscheinen nicht in GA4
Wenn Ihre Testspenden nicht in GA4 landen, gehen Sie diese Prüfungen in der angegebenen Reihenfolge durch:
- Stellen Sie unter Charitable » Einstellungen » Erweitert sicher, dass das Feld Google Analytics Ihre Mess-ID und nicht eine GTM-Container-ID oder eine ältere UA-Property enthält.
- Klicken Sie auf die Schaltfläche Testereignis an GA4 senden. Die Fehlermeldung nennt das spezifische Problem (ungültiger API-Schlüssel, ungültige Mess-ID, Netzwerkfehler).
- Prüfen Sie, ob Sie mit einer Rolle angemeldet sind, die Sie unter Tracking für Rollen ausschließen hinzugefügt haben. Ausgeschlossene Benutzer generieren keine Ereignisse, auch nicht beim Testen. Melden Sie sich ab und versuchen Sie es in einem Inkognito-Fenster.
- Deaktivieren Sie alle Browser-Werbeblocker (uBlock Origin, AdBlock Plus, Brave Shields) für Ihre Domain. Sie blockieren das Laden von
gtag.jsim Frontend.Site Kit von Google ist bereits aktiv
Wenn Sie Google Site Kit installiert und mit Ihrer GA4-Property verbunden haben, verzögert Charitable das Laden von
gtag.jsan Site Kit. Dies verhindert, dass die Seite das GA4-Skript doppelt lädt. Die Spendenereignisse werden weiterhin über die gtag-Instanz von Site Kit ausgelöst.Wenn Sie Site Kit installiert, aber das Analytics-Modul nicht verbunden haben, ist die Verzögerung von Charitable unnötig. Entwickler können sie überschreiben, indem sie
falsevom Filtercharitable_google_analytics_is_ga4_loadedzurückgeben.Hinweis zu Konflikten bei der GTM-Konversionsverfolgung von Charitable
Wenn Sie das Addon Charitable Conversion Tracking installiert und eine GTM-Container-ID konfiguriert haben, zeigt Charitable auf den Einstellungsseiten von Charitable eine Admin-Meldung an, die erklärt, dass
gtag.jsunterdrückt wird. Dies ist beabsichtigt – Ihr GTM-Container soll GA4 selbst laden, und das Laden vongtag.jsdarüber würde Seitenaufrufe doppelt zählen.Wenn Ihr GTM-Container kein GA4-Tag enthält, ist diese Unterdrückung für Ihre Einrichtung nicht korrekt. Überschreiben Sie sie mit dem
charitable_google_analytics_is_ga4_loaded-Filter.Serverseitige Ereignisse werden nicht ausgelöst
Serverseitiges Tracking wird nur aktiviert, wenn sowohl die Mess-ID als auch das Geheimnis der Measurement Protocol API festgelegt sind. Wenn Ihre
refund-Ereignisse oder Spenden von externen Websites nicht in GA4 erscheinen, aber Spenden von der Website schon, fehlt wahrscheinlich das API-Geheimnis oder es ist ungültig. Verwenden Sie die Schaltfläche „Verbindung testen“, um dies zu überprüfen.Wenn das API-Geheimnis festgelegt ist und der Test erfolgreich ist, aber Statusänderungen keine Ereignisse generieren, überprüfen Sie die Metabox „Google Analytics“ der Spende. Der Abschnitt „Einwilligung beim Einfügen“ zeigt möglicherweise
statistics: Deniedan. In diesem Fall überspringt das Add-on für die Spenden dieses Spenders korrekt serverseitige Ereignisse.Das ist alles! Sie haben jetzt GA4, das Ihre Charitable-Spenden End-to-End verfolgt, wobei Attributionsdaten sowohl in Google Analytics als auch in Ihrem WordPress-Adminbereich fließen. Sehen Sie als Nächstes Weitere Charitable-Erweiterungen verbinden, um dieses Add-on mit Conversion Tracking für Meta- und TikTok-Pixel oder mit dem Add-on für wiederkehrende Spenden für Abonnementanalysen zu koppeln.
Filter
Das Add-on stellt 12 Filter bereit, die die Loader-Erkennung, die Anpassung der Nutzdaten, die Einwilligung, die Attribuierung und das Hashing von Identitäten abdecken. Die Filter-Namen folgen dem Präfix
charitable_google_analytics_*und übergeben den gefilterten Wert als erstes Argument.
charitable_google_analytics_is_ga4_loadedOb ein anderes Plugin bereits GA4 auf der Seite lädt. Wenn
truezurückgegeben wird, injiziert das Add-on kein eigenesgtag.js, um eine doppelte Ladung zu verhindern. Erkannte Loader sind MonsterInsights, Site Kit by Google und Charitable Conversion Tracking mit einer konfigurierten GTM-Container-ID.apply_filters( 'charitable_google_analytics_is_ga4_loaded', $is_loaded );Verwenden Sie dies, wenn Sie einen nicht standardmäßigen GA4-Loader haben (z. B. ein benutzerdefiniertes Theme-Tag), den das Add-on nicht automatisch erkennt. Die Rückgabe von
trueunterdrückt die Injektion des eigenengtag.jsdes Add-ons.
charitable_google_analytics_purchase_payloadDie browserseitige
purchase-Ereignis-Nutzlast, die auf der Spendenquittungsseite erstellt wird (Phase A). Wird vor dem Inline-<script>-Block ausgelöst, der im Footer ausgegeben wird.apply_filters( 'charitable_google_analytics_purchase_payload', array $payload, Charitable_Donation $donation );Das
$payload-Array enthält GA4-E-Commerce-Felder (transaction_id,value,currency,items). Die Rückgabe eines leeren Arrays ([]) überspringt die Auslösung des Ereignisses für diese Spende.
charitable_google_analytics_mp_purchase_payloadDie serverseitige Measurement Protocol
purchase-Nutzlast (Phase B). Wird vor demwp_remote_post()-Aufruf an GA4 ausgelöst.apply_filters( 'charitable_google_analytics_mp_purchase_payload', array $payload, Charitable_Donation $donation );Das
$payloadist der vollständige MP-Body (client_id, optionaluser_id,events[]). Die Rückgabe einer Nutzlast mit leereneventsüberspringt den Aufruf.
charitable_google_analytics_mp_refund_payloadGleiche Struktur wie
mp_purchase_payload, aber ausgelöst vor dem serverseitigenrefund-Event-POST.apply_filters( 'charitable_google_analytics_mp_refund_payload', array $payload, Charitable_Donation $donation );
charitable_google_analytics_mp_signup_payloadDie serverseitige
sign_up-Payload, die beim Registrieren eines neuen WordPress-Benutzers erstellt wird.apply_filters( 'charitable_google_analytics_mp_signup_payload', array $payload, WP_User $user );Verwenden Sie dies, um Registrierungsereignisse für bestimmte Rollen zu unterdrücken oder benutzerdefinierte Ereignisparameter einzufügen (z. B. Registrierungsquelle).
charitable_google_analytics_mp_login_payloadDie serverseitige
login-Payload, die beim Anmelden eines WordPress-Benutzers erstellt wird.apply_filters( 'charitable_google_analytics_mp_login_payload', array $payload, WP_User $user );Ein häufiger Anwendungsfall ist das Überspringen von Anmeldeereignissen für Benutzer mit Administratorrechten.
charitable_google_analytics_persist_utmOb das Add-on UTM-Parameter aus der Request-URL in First-Party-Cookies bei
initbeibehalten soll. Standardtrue.apply_filters( 'charitable_google_analytics_persist_utm', $persist );Die Rückgabe von
falsedeaktiviert das Schreiben von UTM-Cookies vollständig. Nützlich für Websites, die die UTM-Persistenz selbst über einen benutzerdefinierten Mechanismus handhaben möchten.
charitable_google_analytics_utm_first_touchOb First-Touch-UTM-Attribution anstelle des Standard-Last-Touch verwendet werden soll. Standard
false.apply_filters( 'charitable_google_analytics_utm_first_touch', $first_touch );Wenn
true, wird ein UTM-Cookie nur dann geschrieben, wenn es noch nicht existiert. Die erste UTM, der der Spender zugeordnet wurde, gewinnt für das 30-tägige Cookie-Fenster.
charitable_google_analytics_has_consentDie Zustimmung für eine bestimmte Kategorie zum Zeitpunkt der Auswertung. Empfängt das Ergebnis der WP Consent API und ermöglicht Ihnen, es zu überschreiben.
apply_filters( 'charitable_google_analytics_has_consent', bool $consent, string $category, // 'statistics' or 'marketing' int $donation_id // 0 in live mode, donation ID in stored mode );Der Live-Modus (
$donation_id === 0) wird für browserseitiges Gating wie diegtag.js-Injektion verwendet. Der gespeicherte Modus ($donation_id > 0) wird für serverseitige MP-Aufrufe verwendet und liest den beim Einfügen der Spende erfassten Zustimmungsstatus. Die Rückgabe vonfalseunterdrückt das Tracking für diese Kategorie.
charitable_google_analytics_consent_defaultDer Standardzustand von Consent Mode v2, der im Dokument-Head ausgegeben wird, bevor
gtag.jsgeladen wird.apply_filters( 'charitable_google_analytics_consent_default', array $consent_default );
$consent_defaultenthält vier Schlüssel:ad_user_data,ad_personalization,ad_storageundanalytics_storage, die jeweils auf'granted'oder'denied'gesetzt sind. Die Rückgabe von'granted'für alle vier deaktiviert effektiv die Modellierung von Consent Mode v2 für diesen Seitenaufruf.
charitable_google_analytics_user_idDie gehashte Benutzer-ID, die den MP-Payloads als
user_idhinzugefügt wird. Der Standardwert istsha256(normalized_email), wobei die E-Mail kleingeschrieben und von Subadressen bereinigt wird.apply_filters( 'charitable_google_analytics_user_id', string $user_id, Charitable_Donation $donation );Die Rückgabe eines leeren Strings unterdrückt das Feld
user_idvollständig. Der Filter empfängt den endgültigen Hash, nicht die rohe E-Mail – wenn Sie ein anderes Identitätsschema benötigen, geben Sie hier Ihren eigenen stabilen pro-Mensch-Hash zurück.
charitable_google_analytics_client_ipDie Client-IP, die als Quelle für die IP-Anonymisierung verwendet wird. Standardmäßig
REMOTE_ADDR. Websites hinter einem CDN oder Reverse-Proxy, die die echte IP des Spenders in einem weitergeleiteten Header setzen, sollten dies überschreiben.apply_filters( 'charitable_google_analytics_client_ip', string $ip );Der zurückgegebene Wert wird dann vor der Übergabe an GA4 als Parameter
ip_overrideauf/24(IPv4) oder/48(IPv6) gekürzt.Aktionen
Das Add-on löst für jeden serverseitigen Measurement Protocol-Aufruf zwei Actions aus – eine bei Erfolg, eine bei Fehler. Beide ermöglichen es Drittanbieter-Integrationen, in Echtzeit auf die GA4-Conversion-Zustellung zu reagieren.
charitable_google_analytics_event_sentWird nach einer 2xx-Antwort von
mp/collectausgelöst.do_action( 'charitable_google_analytics_event_sent', string $event_label, // e.g. 'purchase', 'refund', 'sign_up', 'login' int $donation_id, // 0 for non-donation events array $payload, // the MP body that was sent int $http_code // typically 204 );Verwenden Sie dies, um Events an ein CDP wie HubSpot oder Segment zu spiegeln, einen Zapier-Webhook auszulösen, ein Analyse-Dashboard zu aktualisieren oder alles andere, das auf eine bestätigte Conversion reagieren soll.
charitable_google_analytics_event_failedWird bei einem Netzwerkfehler (WP_Error-Antwort) oder einem HTTP-Status ungleich 2xx ausgelöst.
do_action( 'charitable_google_analytics_event_failed', string $event_label, int $donation_id, array $payload, string $error // WP_Error message or 'HTTP <code>' );Verwenden Sie dies, um den Betrieb zu benachrichtigen, einen erneuten Versuch über Ihr eigenes Job-System anzustoßen oder auf eine alternative Pipeline zurückzugreifen.
Spenden-Metaschlüssel
Das Add-on speichert alles, was es über eine Spende erfasst, als Standard-WordPress-Post-Meta. Sie können diese direkt mit
get_post_meta()oder über WP-CLI'swp post meta getabfragen.
Meta-Schlüssel Gesetzt von Typ Was es enthält _charitable_ga_client_idcapture_session()beicharitable_after_save_donationZeichenkette Geparste GA4-Client-ID aus dem _ga-Cookie des Spenders beim Einfügen der Spende. Format:<part1>.<part2>._charitable_ga_session_idDasselbe Zeichenkette Geparste GA4-Session-ID aus dem _ga_<container>-Cookie des Spenders._charitable_ga_ip_overrideDasselbe Zeichenkette Anonymisierte Spender-IP ( /24IPv4 oder/48IPv6)._charitable_ga_consent_statisticsDasselbe 'granted'oder nicht gesetztWP-Einwilligungs-API-Status für die Statistik-Kategorie beim Einfügen. Leere Metadaten gelten als zulässig._charitable_ga_consent_marketingDasselbe 'granted'oder nicht gesetztDasselbe für Marketing._charitable_ga_utm_sourceDasselbe Zeichenkette UTM-Quelle aus dem First-Party-Cookie des Spenders (oder $_REQUEST-Fallback)._charitable_ga_utm_mediumDasselbe Zeichenkette UTM-Medium. _charitable_ga_utm_campaignDasselbe Zeichenkette UTM-Kampagne. _charitable_ga_utm_termDasselbe Zeichenkette UTM-Begriff. _charitable_ga_utm_contentDasselbe Zeichenkette UTM-Inhalt. _charitable_ga_utm_idDasselbe Zeichenkette UTM-ID. _charitable_ga_purchase_firedfire_purchase_event()(Phase A) undfire_purchase_mp()(Phase B)MySQL-Datum/Uhrzeit-Zeichenkette Zeitstempel des ersten erfolgreichen purchase-Ereignisses. Wird zwischen Phase A und Phase B geteilt – welches auch immer zuerst ausgelöst wird, setzt ihn._charitable_ga_refund_firedfire_refund_mp()MySQL-Datum/Uhrzeit-Zeichenkette Zeitstempel des erfolgreichen refund-Ereignisses. Separat vom Kauf-Flag.Alle Meta-Schlüssel sind mit einem einzelnen Unterstrich versehen, was bedeutet, dass sie in der Standard-UI für benutzerdefinierte Felder auf dem Spendenbearbeitungsbildschirm ausgeblendet sind. Sie erscheinen stattdessen im Metabox „Google Analytics“ des Add-ons.
Cookie-Namen
Das Add-on schreibt die folgenden Cookies im Browser des Spenders:
charitable_ga_utm_source,charitable_ga_utm_medium,charitable_ga_utm_campaign,charitable_ga_utm_term,charitable_ga_utm_content,charitable_ga_utm_id– First-Party-Cookies, die beiinitgesetzt werden, wenn ein UTM-Parameter in der Anfrage-URL vorhanden ist. Lebensdauer 30 Tage, Pfad/, SameSiteLax,Securewenn SSL aktiv ist.Es liest auch diese Cookies, die von gtag.js selbst gesetzt wurden:
_ga– GA4 client_id Quelle_ga_<container>– GA4 session_id Quelle. Der<container>-Teil ist die Mess-ID ohne das führendeG-.Einstellungsoptionsschlüssel
Die Einstellungen des Add-ons befinden sich in der WordPress-Option
charitable_settings. Sie können sie übercharitable_get_option( $key, $default )lesen:
Optionsschlüssel Typ Standard Beschreibung ga4_tracking_idZeichenkette ''Die GA4-Mess-ID ( G-XXXXXXXXXX).ga4_mp_api_secretZeichenkette ''Das Measurement Protocol API-Geheimnis. Erforderlich für serverseitiges Tracking. ga4_consent_integrationbool 1Ob der Status der WP Consent API berücksichtigt werden soll. ga4_excluded_rolesstring[] []Array von Rollen-Slugs, die vom Tracking ausgeschlossen werden sollen. Konstanten
Zwei WordPress-Konstanten ändern das Laufzeitverhalten des Add-ons:
CHARITABLE_DEBUG(true/false) – wenn true, schreibt das Add-on schrittweise Breadcrumbs in Tools » Logs mitsource: google-analyticsund fügtdebug_mode: 1zu allen GA4 MP-Ereignis-Payloads hinzu, damit sie in GA4 » Admin » DebugView erscheinen. Definieren Sie inwp-config.phpfür Entwicklungsseiten.SCRIPT_DEBUG(true/false) – wenn true, bindet das Add-on die unminifiziertecharitable-google-analytics.jsQuelldatei anstelle des minifizierten Produktions-Builds ein. Nützlich beim Debuggen von Frontend-Verhalten.Häufige Rezepte
UTM-Attribution von Last-Touch auf First-Touch umstellen
add_filter( 'charitable_google_analytics_utm_first_touch', '__return_true' );Der erste UTM, dem der Spender innerhalb des 30-tägigen Cookie-Fensters zugeordnet wurde, bleibt bestehen. Nachfolgende Besuche mit anderen UTMs werden ignoriert.
Erfassen der echten IP des Spenders hinter Cloudflare
add_filter( 'charitable_google_analytics_client_ip', function( $ip ) { if ( ! empty( $_SERVER['HTTP_CF_CONNECTING_IP'] ) ) { $candidate = sanitize_text_field( wp_unslash( $_SERVER['HTTP_CF_CONNECTING_IP'] ) ); if ( filter_var( $candidate, FILTER_VALIDATE_IP ) ) { return $candidate; } } return $ip; } );Die zurückgegebene IP wird immer noch auf
/24(IPv4) oder/48(IPv6) anonymisiert, bevor sie an GA4 gesendet wird – der Filter ändert nur, welche IP anonymisiert wird.Jede bestätigte Spende an ein CDP spiegeln
add_action( 'charitable_google_analytics_event_sent', function( $event_label, $donation_id, $payload, $http_code ) { if ( 'purchase' !== $event_label ) { return; } // POST to your CDP, fire a Zapier webhook, etc. wp_remote_post( 'https://cdp.example.com/events', array( 'body' => wp_json_encode( $payload ), 'headers' => array( 'Content-Type' => 'application/json' ), 'timeout' => 5, ) ); }, 10, 4 );Sowohl erfolgreiche als auch fehlgeschlagene Ereignisse lösen Aktionen aus, sodass Sie fehlgeschlagene Ereignisse auch über Ihr eigenes Job-System erneut versuchen können.
Anmeldeereignisse für Administratoren überspringen
add_filter( 'charitable_google_analytics_mp_login_payload', function( $payload, $user ) { if ( user_can( $user, 'manage_options' ) ) { return array_merge( $payload, array( 'events' => array() ) ); } return $payload; }, 10, 2 );Ein leeres
eventsArray weist das Add-on an, den MP-Aufruf zu überspringen, ohne andere Ereignistypen zu stören.Fügen Sie jedem Kauf einen benutzerdefinierten Ereignisparameter hinzu
add_filter( 'charitable_google_analytics_mp_purchase_payload', function( $payload, $donation ) { if ( ! empty( $payload['events'][0]['params'] ) ) { $payload['events'][0]['params']['organization_id'] = '12345'; } return $payload; }, 10, 2 );Verwenden Sie dies für Multi-Organisation-WordPress-Installationen, bei denen jede Spende ein Organisations-Tag für die GA4-Segmentierung tragen sollte.
Überschreiben Sie die Spender-user_id mit Ihrem eigenen Identitätsschema
add_filter( 'charitable_google_analytics_user_id', function( $hashed_email, $donation ) { $crm_id = get_post_meta( $donation->ID, '_my_crm_donor_id', true ); if ( $crm_id ) { return hash( 'sha256', 'crm:' . $crm_id ); } return $hashed_email; }, 10, 2 );Der Filter empfängt den Standard-Hash des Add-ons; Sie können ihn durch Ihren eigenen stabilen Hash pro Person ersetzen. Die Rückgabe eines leeren Strings unterdrückt das
user_idFeld vollständig.Reihenfolge der Hook-Auslösung
Für einen typischen Spendenfluss, der auf der Website abgeschlossen wird, werden die relevanten Hooks in dieser Reihenfolge ausgelöst:
init(Priorität 10) –charitable_google_analytics_persist_utm()schreibt UTM-Cookies, wenn die Anfrage-URL UTM-Parameter enthält.wp_head(Priorität 1) – der Inline-Consent-Modus v2-Standard und dasgtag.jsSkript-Tag werden ausgegeben, gesteuert durchcharitable_google_analytics_is_ga4_loadedund die Rollenausschlussprüfung.wp_footer(Priorität 1) – diegtag('js')undgtag('config')Aufrufe werden ausgegeben.- Spender reicht das Spendenformular ein. Der AJAX- oder Redirect-gesteuerte Gateway-Fluss wird ausgeführt.
charitable_after_save_donation(Priorität 10) –capture_session()liest die Cookies des Spenders und speichert GA4-Clientid, sessionid, anonymisierte IP, UTM-Werte und den Einverständnisstatus als Spenden-Meta.- Gateway bestätigt die Zahlung (synchron für On-Site, per Webhook für Off-Site).
charitable_donation_status_changed(Priorität 10) –fire_purchase_mp()sendet das serverseitigepurchase-Ereignis per POST. Die Aktioncharitable_google_analytics_event_sentwird bei Erfolg ausgelöst.charitable_donation_receipt_page(nur Browser) –fire_purchase_event()fügt einenwp_footer-Callback hinzu, der das Inline-gtag('event', 'purchase', ...)-Skript sendet. Das Meta-Feld_charitable_ga_purchase_firedwird innerhalb dieses wp_footer-Callbacks gesetzt (nicht synchron), damit die E-Mail-Darstellung der Quittung das Idempotenz-Flag nicht auslöst.Für eine Rückerstattung: Schritt 7 oben wird erneut ausgelöst mit
new_status === 'charitable-refunded', undfire_refund_mp()sendet dasrefund-Ereignis per POST.Für eine Anmeldung oder einen Login: Nur die Schritte 1, 2, 3 oben gelten für den Browserkontext. Die Schritte 5-8 werden durch
user_registeroderwp_loginersetzt, diefire_signup_mp()bzw.fire_login_mp()auslösen.Das war's! Sie haben nun die vollständige Hook-Oberfläche für das Charitable Google Analytics Addon. Sehen Sie sich als Nächstes den Vollständigen Leitfaden zu Google Analytics in Charitable für Setup- und Administrationsdokumentation an oder das Charitable Entwicklerdokumentations-Hub für Hooks im Rest von Charitable.
Häufig gestellte Fragen
F: Funktioniert dies mit PayPal Standard oder anderen externen Gateways?
A: Ja, solange Sie das GA4 Measurement Protocol API Secret konfiguriert haben. Der serverseitige Pfad von Charitable erfasst jede Spende, die zu Paid wechselt, unabhängig davon, ob der Browser des Spenders jemals auf Ihre Website zurückgekehrt ist.
F: Ist dies DSGVO-konform?
A: Charitable unterstützt die DSGVO- und EWR-Konformität durch Google Consent Mode v2 und das WP Consent API-Framework. Spender-IPs werden vor der Übertragung anonymisiert, und Spender-E-Mails werden zu einem unidirektionalen SHA-256-Digest gehasht, bevor sie zur GA4-Benutzer-ID werden. Die vollständige E-Mail wird niemals an Google gesendet.
F: Gibt es Konflikte mit Site Kit by Google oder MonsterInsights?
A: Nein. Charitable erkennt beide Plugins automatisch und verzögert das Laden von
gtag.js, wenn eines davon aktiv ist, sodass das GA4-Skript nie zweimal auf derselben Seite geladen wird. Spendenereignisse werden weiterhin über den jeweiligen Loader ausgelöst.F: Wie lange dauert es, bis Ereignisse in den GA4-Berichten angezeigt werden?
A: Echtzeit- und DebugView zeigen Ereignisse innerhalb von etwa 30 Sekunden an. Standardberichte (einschließlich Monetarisierung » E-Commerce-Käufe) werden innerhalb von 24 bis 48 Stunden ausgefüllt.
F: Kann ich meine Mitarbeiter von der Nachverfolgung ausschließen?
A: Ja – verwenden Sie das Feld Tracking für Rollen ausschließen in Charitable » Einstellungen » Erweitert und wählen Sie die WordPress-Rollen aus, die Sie ausschließen möchten. Ausgeschlossene Benutzer überspringen sowohl die browserseitige als auch die rollenbezogene Teile der serverseitigen Nachverfolgung.
F: Werden Spenden im Testmodus von Charitable erfasst?
A: Ja, aber sie werden mit
test_mode: truein den Ereignisparametern markiert, sodass Sie sie aus Ihren GA4-Berichten herausfiltern können. Erstellen Sie einen GA4-Vergleich oder ein Publikum, das Ereignisse ausschließt, bei denentest_modegleichtrueist, um Ihre Produktionsberichte sauber zu halten.F: Sind diese Hooks versionenübergreifend stabil?
A: Alle hier dokumentierten Hooks wurden in Version 1.1.0 eingeführt und sind Teil der öffentlichen API des Addons. Filter- und Aktionssignaturen werden über das
@since-Tag im Quellcode versioniert. Breaking Changes werden im Changelog mit einer Deprecation-Meldung in der vorherigen Version angekündigt.F: Wie deaktiviere ich ein bestimmtes Ereignis vollständig?
A: Verwenden Sie den entsprechenden Payload-Filter und geben Sie ein Array mit leeren
eventszurück. Um beispielsweise alle serverseitigenrefund-Ereignisse zu unterdrücken:add_filter( 'charitable_google_analytics_mp_refund_payload', function( $payload ) { return array_merge( $payload, array( 'events' => array() ) ); } );F: Kann ich benutzerdefinierte Dimensionen zu GA4-Ereignissen hinzufügen?
A: Ja. GA4-benutzerdefinierte Dimensionen werden als Ereignisparameter gesendet. Verwenden Sie
charitable_google_analytics_mp_purchase_payload(oder den passenden Filter für andere Ereignisse), um Ihren benutzerdefinierten Parameter in$payload['events'][0]['params']einzufügen. Stellen Sie sicher, dass der Parametername dem „Ereignisparameternamen“ Ihrer benutzerdefinierten Dimension in der GA4-Verwaltung entspricht.F: Wie teste ich, ob mein benutzerdefinierter Hook ausgelöst wird?
A: Definieren Sie
define( 'CHARITABLE_DEBUG', true );inwp-config.php, überprüfen Sie dann Tools » Logs gefiltert nach Quellegoogle-analytics. Erfolgreiche MP-Aufrufe protokollieren Info-Level-Einträge. Fügen Sie einenerror_log()-Aufruf in Ihren Hook für einmaliges Debugging ein oder verwenden Sie das „Hooks & Actions“-Panel von Query Monitor für eine Live-Ansicht.F: Funktioniert das Addon mit WP-CLI?
A: Ja. Die UTM-Persistenz wird bei
wp_doing_ajax()und CLI-Kontexten übersprungen (keine Cookies zu setzen), aber serverseitige Hooks wiecharitable_donation_status_changedwerden korrekt ausgelöst, wenn sie über WP-CLI-Befehle aufgerufen werden. Spenden-Metadaten können überwp post meta get <donation-id> _charitable_ga_purchase_firedabgefragt werden.F: Kann ich das Addon mit eigenen benutzerdefinierten Ereignistypen erweitern?
A: Ja. Der Hilfsfunktion
charitable_google_analytics_post_mp_event()ist intern, aber die von ihr ausgelösten Aktionen (event_sent/event_failed) erleichtern das Hinzufügen eigener serverseitiger Ereignistypen. Verbinden Sie Ihre ereignisauslösende Funktion mit der entsprechenden Charitable-Aktion, erstellen Sie den MP-Payload selbst und POSTen Sie an denselben Endpunkt, den das Addon verwendet. Die MP-Anmeldeinformationshilfecharitable_google_analytics_get_mp_credentials()ist ebenfalls öffentlich.
Mit nativen Elementor-Widgets gestalten Sie Spendenkampagnen direkt neben dem Rest Ihrer Seite, ohne Code anfassen zu müssen. So funktioniert es und warum es sich lohnt, es noch heute zu aktivieren.
Erstellen Sie Fundraising-Seiten, die VISUELL, NATIV UND SHORTCODE-FREI sind. Sie können auch:
⚡ Mini-Spende: Fügen Sie ein kompaktes, hochkonvertierendes Spenden-Widget mit voreingestellten Beträgen und vollständiger Farbkontrolle hinzu.
⏳ Spenden-Countdown: Bauen Sie Dringlichkeit für einen Appell mit Frist auf, komplett mit optionalem Konfetti, wenn das Ziel erreicht ist.
📣 Spenden-Feed: Beweisen Sie Momentum, indem Sie Besuchern den sozialen Beweis von echten Menschen zeigen, die gerade spenden.
🏆 Spender-Bestenliste: Feiern Sie Top-Unterstützer mit Gold-, Silber- und Bronzestyling, um freundliche Spenden anzuregen.
🖼️ Kampagnen-Showcase: Präsentieren Sie mehrere Kampagnen in einem Landingpage-Raster oder Karussell mit Suche, Filtern und Abzeichen.




