Goodworld's donation flow pushes standard GA4-compatible events to the dataLayer whenever a donor interacts with your giving form. You can use these events as triggers in Google Tag Manager to fire conversion tags, remarketing pixels, or any other tag.
Important: Embedded Form Note
If your Goodworld form is embedded via iframe, events are forwarded to the parent page automatically via postMessage — so your GTM container on the parent page will receive them correctly without any extra configuration.
Setup
In your Goodworld dashboard, navigate to Integrations and enter your Google Tag Manager container ID (GTM-XXXXXXXX). Once connected, Goodworld will initialize the dataLayer and begin pushing events automatically.
Note: The same field accepts both GA4 Measurement IDs (G-XXXXXXXX) and GTM Container IDs — this is expected.
The Conversion Event: purchase
The primary event to use for conversion tracking is purchase. It fires the moment a donation is successfully completed, regardless of giving type (online card, check/cash, payroll deduction, paid time off, or micro-donation).
Event name: purchase
Data layer variables pushed with this event:
Variable | Type | Description |
currency | string | Always "USD" |
value | number | Donation amount in dollars (excludes any donor tip) |
transaction_id | string | Goodworld's unique transaction ID — use this for deduplication in ad platforms to prevent double-counting conversions |
items | array | One object per designated nonprofit (see below) |
items array — each object contains:
Variable | Type | Description |
item_id | string | Goodworld organization ID of the designated nonprofit |
item_name | string | Name of the designated nonprofit |
price | number | Amount designated to this nonprofit, in dollars |
Example of what GTM receives when a donation completes:
{ "event": "purchase", "currency": "USD", "value": 100.00, "transaction_id": "txn_abc123", "items": [ { "item_id": "org_xyz", "item_name": "Example Nonprofit", "price": 100.00 } ] }
Additional Standard Events (Funnel Tracking)
Goodworld also fires these standard GA4 ecommerce events earlier in the donation flow, useful for funnel analysis or remarketing:
Event | When it fires |
view_item | Donor views a nonprofit's giving form |
add_to_cart | Donor selects a donation amount |
begin_checkout | Donor reaches the payment/confirmation step |
These events include the same currency, value, and items parameters as purchase.
Goodworld-Specific Events
The following custom events are available for advanced funnel tracking. All are prefixed gw_df_ (Goodworld Donation Flow):
Event | Description |
gw_df_amount_selected | Donor selected a donation amount |
gw_df_giving_types_selected | Donor selected a giving type (online, payroll, etc.) |
gw_df_designations_selected | Donor selected one or more nonprofits |
gw_df_split_configured | Donor configured a split donation |
gw_df_tip_and_fees_selected | Donor made a tip/fee selection |
gw_df_go_forward | Donor advanced to the next step |
gw_df_go_back | Donor navigated back |
gw_df_finish | Donation flow completed |
gw_df_start_over | Donor restarted the flow |
gw_pm_payment_type_selected | Donor selected a payment method |
gw_auth_user_details | Auth step: user details collected |
sign_up | New user registered |
Note: gw_df_finish and purchase both fire on donation completion. purchase is recommended for conversion tracking as it carries the full transaction data.
Setting Up a GTM Conversion Trigger
In GTM, create a new Trigger of type Custom Event
Set the Event Name to: purchase
Attach this trigger to your conversion tag (Google Ads, Meta, etc.)
Use the built-in Data Layer Variable type in GTM to pull in any of the parameters above (e.g., value, transaction_id)
For help creating a Custom Event trigger in GTM, see Google's documentation.
Notes
The value field reflects the donation amount excluding any platform tip, ensuring your conversion value matches the actual gift amount.
Use transaction_id for deduplication in Google Ads and Meta to avoid double-counting.
