Skip to main content

Goodworld GTM Integration: Data Layer Variables & Triggers

How to use Goodworld's GTM data layer events — including the purchase conversion event — to track donations in Google Tag Manager.

Written by Richie Kendall

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

  1. In GTM, create a new Trigger of type Custom Event

  2. Set the Event Name to: purchase

  3. Attach this trigger to your conversion tag (Google Ads, Meta, etc.)

  4. 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.

Did this answer your question?