UTM best practices
Learn how to tag donation links with UTM parameters to see which channels and campaigns bring in supporters.
When someone donates through Fundraise Up, you often want to know how they got there — a newsletter, a paid ad, a social post, or a link from a partner. UTM parameters answer that question. They are small tags you add to the end of a link. When a supporter starts a donation through a tagged link, Fundraise Up reads those tags and saves the values on the donation record, so the source shows up in your reports, exports, and connected tools.
Used consistently, they show which channels and campaigns bring in donations.
The 5 UTM parameters
UTM stands for Urchin Tracking Module, a naming system Google adopted with Google Analytics. The standard set has 5 parameters, and Fundraise Up captures all of them.
| Parameter | What it records | Example value |
|---|---|---|
utm_source | The specific site or platform the visitor came from. | newsletter, google, meta |
utm_medium | The type of channel. | email, cpc, social, qr |
utm_campaign | The campaign or appeal the link belongs to. | spring_appeal_2026 |
utm_content | Which link or creative sent the visitor, when one campaign has several. | header_button, footer_link |
utm_term | The paid keyword, mainly for search ads. | save_the_reef |
Source, medium, and campaign are the 3 you will use most. Content and term are optional and matter mainly for paid ads and for testing different versions of the same link.
Where you can add UTMs
UTMs work together with two things you set up in Fundraise Up: campaigns and Elements.
- Campaigns. Keep one campaign per appeal, and use UTMs to separate the channels. You do not need a separate campaign for every email or ad — that splits your data. One "Spring Appeal" campaign, tagged with different UTMs per channel, keeps it together.
Use UTMs with:
- Checkout Modal
- Campaign Pages
- Gift catalogs
- Pledge campaigns
- Elements. To know which Element drove a donation — a button in your header, a link in your footer, a QR code at an event — use a separate Element for each spot, and tag each with UTMs for the channel.
Set a naming convention
Tag every external marketing link — email, paid ads, social posts, partner links — and tag them the same way every time. Paid ads matter most here, since that is where you are spending money and where you most need to know it is working.
There is no one correct scheme, so consistency matters more than the exact values you pick.
Follow these rules when you decide on your convention:
- Use lowercase for everything. UTM values are case-sensitive, so
utm_source=Facebookandutm_source=facebookcount as two different sources and split your reports. Pick lowercase and keep it. - Replace spaces with a single separator. Spaces break URLs, so choose one separator and use it every time. Write
spring_appeal_2026, notSpring Appeal 2026. - Use the same value for the same thing. If Instagram is
instagramin one link, it should not beigorinstain another. - Keep special characters out of your values. Characters like
?,&,#, and%change how a URL is read, so do not use them inside a source, medium, or campaign name. - Write the convention down. Keep a shared sheet or document that lists your approved sources, mediums, and campaign-name format, so anyone who builds a link follows the same pattern.
Add UTM parameters to your links
Start with your base donation link. In the Dashboard, open your campaign or Element and copy its public link — this is your base.
To add tags, check whether the link you copied already contains a question mark (?):
- If the link already has a
?, add each tag with&. For example, a link likehttps://example.com/?form=FUNXXXXXXXXalready has a?, so you add your tags with&:https://example.com/?form=DonateNow&utm_source=newsletter&utm_medium=email&utm_campaign=spring_appeal_2026 - If the link has no
?, start your first tag with?, then join the rest with&:https://donate.example.com/page/FUNXXXXXXXX?utm_source=meta&utm_medium=cpc&utm_campaign=spring_appeal_2026
Two more points:
- Copy the link exactly as Fundraise Up gives it to you, including or leaving out
www.. Changing that part can stop the link from opening. - Never put personal details — names, email addresses, phone numbers — in a link. A link can be saved in someone's browser history or forwarded and shared, so anything you put in it can end up seen by people you never intended. Google Ads and Google Analytics also reject URLs that contain personal information.
Examples by channel
These are examples for common channels. Adapt the names to your own convention, but keep them the same across every link.
- Email newsletter. Set the source to the specific list or send, not just
email.utm_source=newsletter&utm_medium=email&utm_campaign=spring_appeal_2026 - Paid social. Use the platform as the source and
cpc(cost per click) as the medium.utm_source=meta&utm_medium=cpc&utm_campaign=spring_appeal_2026 - Organic social. For traffic coming from outside your site, send supporters to a Campaign Page rather than a Checkout Modal.utm_source=instagram&utm_medium=social&utm_campaign=spring_appeal_2026
- Direct mail with a QR code. Point the QR code at a tagged link, and add a custom field so the gift is attributed even though the visitor arrives offline.utm_source=spring_mailer&utm_medium=qr&utm_campaign=spring_appeal_2026&source_code=dm_spring_2026
- Partner or referral links. Agree on the exact values with the partner, so their donations map back to them correctly.utm_source=partner_name&utm_medium=referral&utm_campaign=spring_appeal_2026
UTM values stay with a supporter as they move through your site, so a donation made a few pages after they arrive still records where they came from.
Find your UTM data
Once a supporter donates through a tagged link, the UTM values save to the donation. You can find them in two places:
- On the donation record, in the UTM Parameters section.
- In your exports, where each parameter appears as its own column.
From there you can group donations by source, medium, or campaign and compare channels against one another.
Why your numbers may not match Google Analytics
If you also track donations in Google Analytics or another analytics tool, the source totals there will not always match Fundraise Up. This is normal. Each tool measures sources in its own way, so the same donation can show up under different sources in each one.
Use the source saved on the Fundraise Up donation as your record of what Fundraise Up captured.
Track more with custom fields
UTM parameters record how a supporter reached your link, but sometimes you need to track more than that — an appeal code, an internal source code, a partner ID, or a supporter segment. For those, use a custom field: a tag you set up in the Dashboard and then add to your links the same way as a UTM.
You name each custom field yourself and can create as many as you need. The value you set saves to the donation even when it does not stay visible in the address bar, so it matches the records in your CRM.
To set up a custom field, go to your campaign Settings tab, open Custom fields in the left menu, and click Add field. Then add it to your link with &, the same as a UTM:
Keep custom fields to a short, named list. Too many one-off fields make your data hard to sort and compare later.
Ready to elevate your fundraising efforts?
Connect with our sales team to explore how our innovative tools can transform your online giving experience.
Request a demo