Charities and small teams
Campaign tracking for charities: appeals, events and newsletters
Small charities rarely have an analyst. They have a comms officer with ten other jobs, a newsletter, a few social accounts, an occasional event and a board that asks "what worked?" twice a year. This guide sets out a tracking routine that fits that reality: one plan per campaign, a tagged link for every place you share, and a short report you can produce in an afternoon.
What you are trying to learn
Before tagging anything, be clear about the questions. For most small charities they are:
- Which channels bring people to the appeal or event page?
- Did the newsletter, the social posts or the posters do the heavy lifting?
- Did visits turn into the thing we wanted: a donation started, a sign-up, a booking?
- What should we do more of next time?
Campaign tracking answers the first three for anything that happens on your own website. Keep that limit in mind; it matters later.
The routine, campaign by campaign
1. Name the campaign once
Give the appeal or event one campaign value and use it everywhere: 2026-11-winter-appeal, 2026-06-summer-fun-run. Every link for that campaign shares it, whatever the channel. This is what lets you see the campaign's total in one row of your report. The Name Generator builds the value in a consistent pattern if you would rather not think about it.
2. List every place the link will go
Write down every channel before the campaign starts. A typical appeal might use:
- Supporter newsletter, plus a reminder email a week later
- Facebook and Instagram posts, plus a boosted post
- LinkedIn for corporate supporters
- WhatsApp messages to volunteers and community groups
- Posters and leaflets with a QR code
- A link on a partner organisation's website
Each line becomes one tagged link. If a channel has more than one link, such as two buttons in the newsletter or posters in two locations, each gets its own utm_content value.
3. Build the links together
Build all the links in one sitting so they match. The UTM Builder creates a link for every ticked channel at once, with a sensible source and medium for each, and exports the lot as a spreadsheet. A set for a winter appeal might include:
https://example.org/winter-appeal?utm_source=newsletter&utm_medium=email&utm_campaign=2026-11-winter-appeal&utm_content=main-button
https://example.org/winter-appeal?utm_source=facebook&utm_medium=paid_social&utm_campaign=2026-11-winter-appeal
https://example.org/winter-appeal?utm_source=whatsapp&utm_medium=social&utm_campaign=2026-11-winter-appeal&utm_content=volunteers
4. Log them before anything goes out
Paste the links into your campaign log with the date, channel and who is using each one. When a colleague asks in March what utm_content=volunteers was, the answer is one search away. Keeping a campaign log your team will actually use has a template.
5. Test one link per channel
Click the real links: from the test email, from the scheduled post, by scanning the printed proof. Check that the page loads on a phone and that the address still contains the utm_ part when it arrives.
Events need a little extra
Events usually mix online and offline promotion, so print matters more. Give each printed piece its own utm_content value and test the QR codes at real size before the print run. Tracking QR codes on posters, flyers and print covers this step by step.
If bookings happen on a third-party ticketing site, your tracking will show visits to your event page and clicks onward, but not the bookings themselves unless that platform reports them back to you. Find out what your platform can tell you before the event, not after.
Donations on another platform
Many small charities take donations through an external platform rather than their own website. Your GA4 tracking stops when the visitor leaves your site. You can see how many people reached the appeal page and from where, and you can usually measure clicks on the donate button, but the gift itself is recorded by the platform.
Two practical approaches:
- Measure what you can on your site: visits by channel, and clicks on the donate button.
- Use the platform's own reports for gifts, and line the two up by date and campaign.
Some platforms accept tracking information or offer their own analytics settings. Check your platform's help pages for what it supports, rather than assuming either way.
The afternoon report
When the campaign ends, pull together one page. It does not need to be clever. It needs to be consistent so you can compare campaigns over time.
| Section | Where it comes from |
|---|---|
| Visits to the campaign page by channel | GA4 Traffic acquisition, filtered to your campaign value |
| Best performing links | The same report with source / medium and content |
| Actions taken (donate clicks, sign-ups, bookings) | GA4 key events, or your platform's reports |
| Money raised or places booked | Your donation or booking platform |
| What we would do differently | Your team, in three bullet points |
Trustees rarely need more than this. What they value is the same format every time, so the comparisons mean something.
A small but useful habit
Add one line to every report: "Not measured". List what the tracking could not see, such as gifts made by cheque after reading a leaflet, or bookings by phone. It keeps everyone honest about what the numbers mean and stops a channel being dropped just because its results happen offline.
Keep it sustainable
The routine above takes perhaps half an hour per campaign once it is a habit. Resist adding more. A simple system used every time beats a sophisticated one used twice. Start with the newsletter and social links, add print and partners when that feels easy, and let the reports grow from there.
For the email side of this routine, read UTM tags for email newsletters.