Marketing measurement
Build UTM links that keep your campaigns organised
Create consistent campaign links, test them before sharing and find their traffic in GA4 using a practical small-business example.
You have put the same workshop offer in a newsletter, a LinkedIn post and a partner’s email. Visits arrive, but the web address alone does not tell you which promotion brought them. Campaign tags give those links a consistent set of labels that Analytics can use when it collects the visit.
The useful part is the naming discipline. A link builder can assemble a URL, but it cannot decide whether three people on your team mean the same thing by “spring launch”. Start with a small naming register, then test the finished links before sending them.
Choose the labels before building the link
Google’s campaign URL guidance describes the parameters used to identify referral campaigns. For an ordinary website promotion, these three fields are a useful starting point:
utm_sourceidentifies the referring source, such as a newsletter or a particular social platform.utm_mediumdescribes the marketing channel, such as email.utm_campaigngroups links belonging to the same campaign.
Keep one spelling for each value. Parameter values are case sensitive, so “SpringWorkshop” and “springworkshop” can fragment your reporting. Lowercase values with hyphens between words are a workable house convention. That convention is a recommendation for your team, rather than a requirement to use a particular separator.
Agree who owns the register. If a partner creates its own campaign name while your colleague invents another, both links may function perfectly while producing an awkward report.
A worked example for a fictional workshop
Suppose a fictional business is promoting a spring workshop. Its landing page is https://example.com/workshop/. It wants to group all the workshop promotions together while recognising the monthly newsletter separately.
Destination: https://example.com/workshop/
Source: monthly-newsletter
Medium: email
Campaign: spring-workshop
Content: header-button
The resulting URL is:
https://example.com/workshop/?utm_source=monthly-newsletter&utm_medium=email&utm_campaign=spring-workshop&utm_content=header-button
Here, utm_content distinguishes the header button from another link in the same email. If there is only one placement to compare, you may not need it. Avoid inventing optional labels that nobody will use in a decision.
A link in the partner’s email could retain spring-workshop as its campaign while using the partner’s agreed name as the source. A LinkedIn link would use a source identifying LinkedIn and a medium chosen consistently for that type of promotion. Check your channel definitions before making up medium values, because a readable label is not necessarily recognised by Analytics’ default channel grouping.
Use a URL builder for the final assembly
Google links to its Campaign URL Builder from the guidance above. A builder helps encode characters correctly. This matters when a value contains spaces or when the destination already has a query string.
A URL has one initial question mark for its query. Additional parameters follow an ampersand. If the page already contains ?location=bristol, preserve that value and append the campaign parameters. Check the result rather than pasting a second question mark into the middle of the address.
Test the destination and the measurement separately
- Open the finished URL and confirm that it reaches the intended offer.
- Check that any redirect preserves the campaign parameters.
- Check the page on a phone, including the booking or enquiry action.
- Where Analytics collection is enabled, make a controlled test visit and inspect the collected data in the intended property.
- Record the final link and the date it was tested.
Do not add customer names, email addresses or enquiry text to campaign labels. A URL can be copied, forwarded and recorded in other systems. There is no need for personal detail to distinguish the newsletter header from its footer.
A working link does not establish that measurement is complete. Consent settings, blocked scripts and the way the site is configured can affect what reaches Analytics. A redirect that strips the query can also leave the destination looking normal while losing the labels.
Find the campaign without searching the wrong column
In GA4, use the Traffic acquisition report and inspect session campaign or session source and medium. Google’s campaign guidance explains which dimensions contain the values. The landing-page query-string dimension omits UTM parameters, so the absence of your tags in that column is not proof they were lost.
Compare the campaign’s traffic with a meaningful next action, such as a confirmed enquiry. Keep the units clear. Sessions are visits measured under Analytics’ session rules, while an enquiry event is a recorded action. Neither figure tells you whether an enquiry was suitable or became a customer.
For the next promotion, copy the naming register rather than an old address from someone’s inbox. Include the destination, source, medium, campaign, optional content label and test date. That gives the person reviewing the results a record of what each link was intended to measure.