Google Tag Manager for Nonprofits: Install, Configure, and Track Conversions
Google Tag Manager (GTM) is a free tool that lets you add and manage tracking codes on your website without editing the site's source code directly. For nonprofits running a Google Ad Grant, GTM is the bridge between "we have GA4 installed" and "we're actually tracking everything that matters."
While basic conversion tracking can be set up with GA4 alone, GTM becomes essential when you need to track form submissions that don't redirect to a thank-you page, button clicks (like "Donate Now" or "Sign Up"), phone call button taps on mobile, PDF downloads and resource engagement, or events from third-party embedded forms (Donorbox, Eventbrite, Google Forms).
If you've ever asked your web developer to "add a tracking pixel" or "install a snippet" and waited days for a response, GTM eliminates that bottleneck entirely. Once installed, you or your marketing team can add, edit, and remove tracking tags without touching the website code again.
This guide covers GTM specifically for nonprofits: installation, connecting it to GA4, and setting up the conversion tracking events that matter most for Grant compliance and performance.
Key Takeaways - GTM is a free container for managing all your tracking codes in one place - Install it once on your website, then manage everything from the GTM interface - Essential for nonprofits that need to track form submissions, button clicks, and donation completions - Works alongside GA4 (not instead of it) to power your Grant account's conversion tracking
What Google Tag Manager Does (and Doesn't Do)
A common misconception: GTM does not track anything itself. It's a container, a management layer that makes it easy to deploy and control the tags (tracking codes) that do the actual tracking.
Think of it this way:
- GA4 is your analytics platform. It collects, stores, and reports on data.
- GTM is the delivery mechanism. It decides when and where tracking codes fire on your website.
- Google Ads conversion tags tell your Grant account that a conversion happened.
GTM brings all of this together in a single interface where you can manage tags, set rules for when they fire (called "triggers"), and define variables that capture specific data points.
What GTM replaces: Manually adding scripts to your website's HTML code. Instead of asking a developer to paste tracking snippets into your site every time you need to track something new, you add them through GTM's visual interface.
What GTM does NOT replace: GA4 itself. You still need GA4 as your analytics platform. GTM simply manages how the GA4 tag (and other tags) are deployed on your site.
Step 1: Create a GTM Account and Container
- Go to tagmanager.google.com
- Click Create Account
- Enter your account name (your organization name)
- Enter a container name (your website URL, e.g.,
www.yournonprofit.org) - Select Web as the target platform
- Click Create and accept the Terms of Service
- You'll see a code snippet with two parts. Keep this screen open; you'll need it for the next step.
Step 2: Install GTM on Your Website
GTM gives you two code snippets. Both must be added to every page of your website:
Snippet 1 goes in the <head> section of your site (as high as possible).
Snippet 2 goes immediately after the opening <body> tag.
Platform-Specific Installation
WordPress: Use a plugin like "GTM4WP" (Google Tag Manager for WordPress) or "Insert Headers and Footers." Enter your GTM container ID (format: GTM-XXXXXXX), and the plugin handles placement automatically.
Squarespace: Go to Settings, then Advanced, then Code Injection. Paste Snippet 1 in the Header section and Snippet 2 in the Footer section (Squarespace doesn't provide direct body tag access, but the footer placement works).
Wix: Go to Settings, then Custom Code, then click "Add Code." Paste each snippet with the appropriate placement (Head or Body).
Shopify: Go to Online Store, then Themes, then Edit Code. Find theme.liquid and paste the snippets in the appropriate locations.
Custom HTML sites: Add directly to your template files.
Remove Conflicting GA4 Code
If you previously installed GA4 directly on your website (via the gtag.js snippet), you should remove it after setting up GA4 through GTM. Having both the direct GA4 snippet and a GTM-deployed GA4 tag will result in double-counting page views and events. Only keep one method active.
Verify the Installation
- In GTM, click Preview (top right)
- Enter your website URL
- Your website opens in a new tab with the GTM debugger connected
- The debugger panel shows which tags are firing on each page
- If you see "Container Found" with your GTM ID, the installation is working
Step 3: Add Your GA4 Tag in GTM
If you're following our GA4 setup guide and chose Option A (GTM installation), you may have already done this. If not:
- In GTM, click Tags then New
- Name it "GA4 - Configuration"
- Click Tag Configuration and select Google Tag
- Enter your GA4 Measurement ID (G-XXXXXXXXXX)
- Click Triggering and select All Pages
- Click Save
This ensures GA4 loads on every page of your website through GTM.
Step 4: Track Form Submissions
Form submissions are the most common nonprofit conversion type: donation forms, volunteer applications, contact forms, newsletter sign-ups, event registrations, and program enrollment forms.
Method A: Thank-You Page Tracking (Simplest)
If your form redirects to a unique confirmation/thank-you page after submission, this is the easiest approach:
- In GTM, click Triggers then New
- Name it "Trigger - Volunteer Sign-Up Confirmation"
- Select trigger type: Page View
- Choose "Some Page Views"
- Set the condition: Page URL contains
/thank-you-volunteer(use your actual confirmation page URL path) - Click Save
Now create a GA4 event tag that fires on this trigger:
- Click Tags then New
- Name it "GA4 Event - Volunteer Sign-Up"
- Tag type: Google Analytics: GA4 Event
- Select your GA4 Configuration tag
- Event Name:
volunteersignup(use snakecase, no spaces) - Click Triggering and select the trigger you just created
- Click Save
Repeat this for each form type (donation, contact, newsletter, etc.) with unique event names and trigger URLs.
Method B: Form Submission Listener (For Forms Without Redirects)
Many modern forms (especially AJAX-based forms from plugins like WPForms, Gravity Forms, or embedded forms from Mailchimp, Donorbox, etc.) don't redirect to a new page. Instead, they show a success message on the same page. For these, use GTM's built-in form submission trigger:
- First, enable GTM's built-in form variables: go to Variables, click Configure, and enable all Form variables (Form ID, Form Classes, Form Target, Form URL, Form Text)
- Create a new Trigger: type Form Submission
- Choose "Some Forms"
- Set the condition to identify the specific form. Common approaches:
- Form ID contains "volunteer-form" (if the form has an HTML ID attribute)
- Form Classes contains "newsletter-signup" (if the form has CSS classes)
- Page URL contains "/volunteer" (if the form only exists on one page)
- Check "Check Validation" so the trigger only fires on successful submissions (not failed ones)
- Save the trigger and create a corresponding GA4 event tag (same as Method A, step 1-7)
Method C: Custom Data Layer Events (Most Reliable)
The most accurate method uses your form plugin's built-in success events. Many popular WordPress form plugins push events to GTM's "data layer" when a form is successfully submitted:
- Gravity Forms: Pushes
gtm4wp.formSubmissionOKwith form ID - WPForms: Can be configured to push data layer events
- Contact Form 7: Pushes
wpcf7mailsentevent
If your form plugin supports data layer events:
- Create a Custom Event Trigger in GTM
- Set the Event name to match what your plugin pushes (e.g.,
wpcf7mailsent) - Create a GA4 event tag that fires on this trigger
This is the most reliable method because it only fires when the form submission is actually successful (the email was sent, the data was saved), not just when the submit button was clicked.
Step 5: Track Donation Completions
Donation tracking has unique challenges because many nonprofits use third-party donation platforms (Donorbox, GiveWP, Classy, PayPal Giving Fund, GoFundMe Charity) that process the donation on a separate domain.
If Donors Return to a Thank-You Page on Your Site
The simplest scenario: the donor completes their donation on the third-party platform, then gets redirected back to a page on your website (like yournonprofit.org/thank-you-donation). In this case, use Method A above with a trigger for that thank-you page URL.
If Donations Happen Entirely on a Third-Party Domain
If the donor never returns to your website after donating, you have two options:
Option 1: Track the "Donate Now" button click as a proxy conversion. This doesn't confirm the donation was completed, but it captures the intent. Create a GTM trigger for clicks on your donate button (using Click URL or Click Text as the trigger condition).
Option 2: Use the donation platform's native integration with GA4 or Google Ads. Many platforms (Donorbox, Classy, Bloomerang) support adding your GA4 Measurement ID or Google Ads conversion tag directly within their settings. This allows them to fire a conversion event when the donation is actually completed on their platform.
For platform-specific instructions, see our detailed guide on tracking donations from every major platform.
Tracking Donation Values
If possible, capture the actual donation amount as a conversion value. This enables more sophisticated bid strategies like Maximize Conversion Value and Target ROAS. The implementation depends on your donation platform and how it passes data back to your site. Many platforms include the donation amount in the redirect URL parameter or push it to the data layer.
Step 6: Track Button Clicks and Other Interactions
Beyond form submissions, you may want to track:
"Click to Call" Phone Taps
- In GTM, create a new Trigger: type Click - Just Links
- Condition: Click URL contains
tel:(this catches all phone number links) - Create a GA4 event tag: Event name
phonecallclick
Outbound Link Clicks to Specific Sites
GA4 Enhanced Measurement tracks outbound clicks automatically, but you may want to track clicks to specific URLs (like your donation platform):
- Create a Trigger: Click - Just Links
- Condition: Click URL contains
donorbox.org(or your donation platform's domain) - GA4 event:
donatebuttonclick
PDF/Resource Downloads
GA4 Enhanced Measurement already tracks file downloads. If you want more specific tracking:
- Create a Trigger: Click - Just Links
- Condition: Click URL contains
.pdfor specific file names - GA4 event:
resource_download
Step 7: Test Everything in Preview Mode
Before publishing any changes, always test using GTM's Preview mode:
- Click Preview in the top right of GTM
- Enter your website URL
- Navigate to pages with your forms and triggers
- Submit test forms, click tracked buttons, trigger conversion events
- In the GTM debugger panel, verify that:
- Your triggers fire at the correct moments
- Your GA4 event tags fire when triggers activate
- The correct event names and parameters are sent
- Also check the GA4 DebugView (in GA4, go to Admin, then DebugView) to confirm events arrive in GA4
Once everything works in Preview mode:
- Click Submit in GTM
- Add a version name (e.g., "Added volunteer signup and donation tracking")
- Click Publish
Changes go live immediately after publishing.
Step 8: Import Events as Conversions in Google Ads
After your GA4 events are firing and confirmed in DebugView, mark them as key events in GA4 and import them into your Google Ads Grant account. This process is covered in detail in Steps 5-6 of our GA4 setup guide.
The short version:
- In GA4: Admin, then Events, then toggle "Mark as key event" for each conversion event
- In Google Ads: Goals, then Conversions, then Summary, then New conversion action, then Import, then GA4 properties, then select your events
Common GTM Mistakes Nonprofits Make
Publishing without testing in Preview mode. Every tag change should be tested before publishing. A misconfigured tag can break tracking for your entire site.
Not removing the old direct-install GA4 code. Running both a GTM-deployed GA4 tag and a hardcoded gtag.js snippet causes double-counting of all events and page views.
Using "All Forms" as a trigger without filtering. If your website has search forms, login forms, or other non-conversion forms, an unfiltered "Form Submission" trigger will fire for all of them. Always filter by Form ID, Form URL, or Page URL.
Not checking consent compliance. For organizations serving visitors in the EU/EEA or UK, GA4 tags should be configured to respect cookie consent. See our Consent Mode v2 guide. This is increasingly relevant for nonprofits worldwide, not just those based in Europe, since your website may receive visitors from any country.
Creating too many tags too fast. Start with your 2-3 most important conversions. Get those working perfectly before adding more. A methodical approach prevents debugging nightmares.
Audit Your Tracking Setup with GrantMax
GrantMax checks whether your Google Ad Grant account has conversion tracking configured correctly, whether GA4 is linked, and whether your conversion data looks realistic. If something is broken or misconfigured, you'll know in minutes.
Check My Conversion Tracking - Free
Prefer to hand it off to an expert? Our Google Ad Grant management services handle everything for you, from setup to ongoing optimization. Explore Grant Services
Frequently Asked Questions
Is Google Tag Manager free? Yes, completely free. There's an enterprise version (Google Tag Manager 360) with additional features, but the free version is more than sufficient for virtually every nonprofit.
Do I need a developer to set up GTM? For the initial installation (Step 2), you need access to your website's code or a CMS plugin. After that, GTM's entire purpose is to let non-developers manage tracking without code changes. The tag, trigger, and variable setup is all done through a visual interface.
Can GTM slow down my website? GTM itself adds minimal load time. However, the tags you deploy through it (GA4, Facebook Pixel, etc.) each add some processing time. For most nonprofits with a reasonable number of tags (under 15-20), the impact is negligible. Keep your container lean by removing unused tags.
I already have GA4 working without GTM. Should I switch? If your current setup tracks everything you need, there's no urgent reason to switch. GTM becomes valuable when you need more granular tracking (specific form submissions, button clicks, donation values) that GA4's basic setup can't handle. If you're planning to expand your tracking, migrating to GTM is worth the effort.
Does this setup work for nonprofits in any country? Yes. GTM and GA4 work identically worldwide. The only regional consideration is privacy/consent compliance: organizations serving EU/EEA/UK visitors should implement Consent Mode, and organizations in Australia, Canada, and other jurisdictions with privacy laws should review their consent requirements.
Key Takeaways
- GTM is a free management layer for deploying tracking codes without editing website code directly
- Install GTM once, then manage all tracking (GA4, Google Ads conversions, third-party pixels) from the GTM interface
- Form submissions are the most important tracking setup for most nonprofits: donations, volunteer sign-ups, contact forms, event registrations
- Three methods for form tracking: thank-you page redirects (simplest), form submission listeners (medium), data layer events (most reliable)
- Always test in Preview mode before publishing changes
- Start with 2-3 key conversions and expand from there
- Remove duplicate GA4 installations if switching from direct install to GTM
Published: March 2026 | Last Updated: March 2026 | Author: GrantMax Category: Tracking & Reporting | Tags: Conversion Tracking, Technical