Free

Stay tuned

Sign up here to get the latest news, learning resources and access to exclusive events

We invite you to share your ideas

Please enable JavaScript in your browser to complete this form.

Most charity websites take donations online and use a combination of different marketing activity to drive new users to their website and ideally to convert some of them to becoming supporters.

To be able to optimise campaigns towards the desired outcomes, those outcomes need to be tracked as conversions. This is particularly important if your charity is running any paid media activity, such as Google Ads, where the algorithms optimise campaigns towards certain outcomes based on your marketing strategy.

The only prerequisite for all three options is to have Google Tag Manager installed on your website and to have Google Analytics 4 set up and tracking at least the most basic interactions. The latter is easily done if the former is in place.  

In this article we will share three ways of tracking donations on your website – from very basic and easy to implement event tracking (with a step-by-step guide) to sophisticated ecommerce tracking which requires some support from the developers.

Tracking ‘Donate’ clicks – difficulty level: Low

Tracking successful donations with an event – difficulty level: Medium

Tracking donations with ecommerce functionality – difficulty level: High

If you are not already tracking donations on your website, aim for the most advanced version that you think you can achieve.  

Tracking ‘Donate’ clicks

Level of detail: low 
Difficulty: low 

If you are currently not tracking donations (or other key conversions) at all, and you don’t have developers who can support you with the tracking setup, this is your option because tracking something is better than tracking nothing at all.

If you’re running Google Ads campaigns, it needs some sort of signal for campaign optimisation that is better than x pages viewed or x number of minutes on site in order for you to make the best optimations possible.  

This method is not tracking successful donations but clicks on the ‘Donate’ button as a close proxy.  

In order to do this, you should have the following already in place:

  • Have Google Tag Manager on the website
  • Have a Google Analytics 4 property set up and already tracking basic interactions such as page views.

If you are starting from nothing, follow this guide to get you up and running. 

Create a new tag in Google Tag Manager:

  • Create a new tag in Google Tag Manager and call it ‘GA4 – donation click. You will find the MeasurementID in your GA4 property in Admin > Data Streams > Data Stream details.
  • Name the event donation_click, use snake case for all event and parameter names. You don’t want capitals or spaces in your GA4 data as this can cause problems with the data if you one day want to use Google BigQuery. 

Create the click trigger that fires on Click Text ‘Donate’ or what ever the exact CTA on your button is.  

Next, you preview your changes to make sure everything is working as expected.  

The preview will load a debugging tab in your browser, as well as your website in a separate tab. Click on your Donate button and check if the GTM tag you just created is firing.  

If it isn’t, click on it and check which of the trigger conditions have not been met. Adjust it back in GTM and test again. Once it is behaving as expected (see screen shot above) you can publish your changes by clicking ‘Submit’ 

Once this has been live for a couple of days, you need to mark this new event as a conversion in GA4. You do that in Admin > Data Display > Events.  

You can set up additional click events for any other interactions you’d like to track following the above steps.  

Tracking successful donations with an event 

Level of detail: medium 
Difficulty: medium 

First of all, check if the donation payment gateway you use offers an integration with Google Analytics. Here is a great example from Donorbox. Follow the steps to get accurate tracking for your donations.  

If this is not an option for you, you will need some help from your development team to get a dataLayer event in place on successful donation. Send them the following code snippet and ask them to fire this on successful donation.  

The additional parameters ‘donation_type’ and ‘donation_value’ will greatly enhance the quality of your data. However, if those two parameters are problematic for your developers to achieve, it is still worth going ahead with the single event for ‘donation_success’.  

While they work on getting this in place, you can get started with setting things up in Google Tag Manager. The first thing you’ll need to set up is two variables for donation_type and donation_value.  

Go to Variables > User defined variables > Create and select ‘Data Layer Variable’ as the type. Ensure that the data layer variable name is exactly what your developers have put in place following the snippet you sent them.  

Do the same for donation_value 

Now go and create a new tag for the donation event and add the two variables you just created as event parameters:  

As a trigger for this event, you will need to create a custom event trigger that uses the event name in the dataLayer brief you sent to your developers:  

To test if this is working as expected, step through the donation journey on your website while in GTM debug mode. Click ‘preview’ in GTM to get started.  

Once you have successfully completed a donation, the dataLayer event should appear in debug mode and you should see that your tag has fired.  

Click on the tag to see the details, and to ensure that the additional parameters you created have also been sent successfully:  

To better reflect the actual value of a regular donation (rather than just the value of the first donation), you can work out an average life time value (LTV) by multiplying the average regular donation value with an average duration for those standing orders and add that value as a conversion value in GA4, once you have created the above event and set it to be a conversion.  

Example: average regular donation value of £20 and an average duration of 18 months before it gets cancelled again would mean a conversion value of £360 .

To better reflect the actual value of a regular donation (rather than just the value of the first donation), you can work out an average life time value (LTV) by multiplying the average regular donation value with an average duration for those standing orders and add that value as a conversion value in GA4, once you have created the above event and set it to be a conversion.  

Tracking donations with ecommerce functionality 

Level of detail: high 

Difficulty: advanced 

The single most accurate way to track donations is using Google Analytics’ ecommerce functionality. This allows you to capture additional information about the transaction, such as membership levels, donation type, which sponsored event a user supported and much more.  

Firstly, if the donation functionality of your charity’s website is provided by a third party, check with them if there is an existing integration with GA4. A quick search on Google for ‘tracking donations in GA4 via [platform name]’ will quickly tell you if an integration is available.  

If there is no existing integration, you will need your developer’s help to get an event into the dataLayer, so that you can leverage GA4’s ecommerce tracking functionality. Send the following paragraph to your developers, asking them for their help to track donations:  

Purchase event 

Fires when the user successfully completes the transaction for making a donation, whether that is a single donation, a regular donation or paying in fundraising money.  

item_name to contain ‘membership’ or ‘surgery’ 

item_variant to contain the membership level (micro, small, medium etc) or the surgery type which will be either ‘single’ or ‘series’.  

In GTM set up the following event tag for the purchase, ensuring that the ‘Send Ecommerce data’ box is ticked in the settings, and that ‘Data Layer’ is selected as the source of the ecommerce data.  

As a trigger for this event, a custom event tag needs to be setup to fire on the ‘purchase’ dataLayer event. We use dl_ in our trigger names to group all dataLayer triggers, you don’t have to adopt that way of working. Clear naming conventions for tags, triggers, variables and parameters are highly recommended though. Here is what that trigger would look like:  

Once the developers have got the dataLayer event in place, you should be able to test this in a staging or UAT environment, using test transaction details and clicking ‘Preview’ in GTM.  

This allows you to observe the dataLayer event for ‘purchase’ happening on successful donation, and it will allow you to test that your ecommerce tag in GTM is firing, by following the debugging steps described in the previous section.  

There are additional native ecommerce events and parameters you can leverage, such as creating events for ‘begin checkout’ and ‘add payment info’ which will allow you to create a funnel report to understand how many users you are losing at each step of the checkout. You can find the details in Google’s developer resources. From experience, donation checkouts are usually short and reasonably straight forward, so that the risk of leaking users is small.   

Summary 

We showed you three ways of tracking donations in GA4 – from easy and accurate enough to optimise campaign activity for it, to best in class. Ecommerce tracking is the desired solution as it provides most accurate revenue data.  

However, it does not solve the challenge of tracking accurate conversion values for monthly or regular donations as this would require taking the value as well as the duration of the donation into account, and we never know the latter when the user makes that donation.