Know Which Campaign Opened the Door
Your email goes out. Your Instagram post goes live. Someone scans a card at an event. All three send people to the same website.
Without a consistent link system, those visits can become a reporting puzzle. You know you did the work. You cannot confidently separate the response.
UTM parameters are campaign labels added to a URL. They help analytics distinguish the links bringing visitors to a site. They do not identify a patient, prove that a click was human or tell you whether care started.
This guide gives your team one naming system, one register and one test procedure. The goal is useful attribution without turning links into a privacy problem.
Give every field one job
Google Analytics uses manual campaign parameters to describe referring campaigns. Its documented fields include source, medium, campaign and content; values can appear in acquisition reporting. Google’s campaign URL guide.
Use this working convention:
| Field | Question it answers | Our suggested convention |
|---|---|---|
utm_source |
Where was the link distributed? | instagram, facebook, practice_newsletter |
utm_medium |
What channel carried it? | social, email, paid_social, qr |
utm_campaign |
Which coordinated initiative? | 2026_11_community_education |
utm_content |
Which placement or creative? | reel_01_caption, email_01_hero, reception_card |
utm_id |
What stable campaign identifier? | Optional internal campaign code, not a person identifier |
These are a proposed naming convention, not mandatory Google vocabulary. Check how your choices map into your reporting channels. A custom medium such as qr may require a custom channel grouping rather than appearing in the default group you expect.
Use lowercase, underscores and a controlled list. Do not alternate between IG, insta and instagram. Differences in spelling or capitalization can split reporting that your team intended to group together.
Build a campaign link, not a patient label
Here is an illustrative email link for a fictional practice:
https://practice.example/community-guide?utm_source=practice_newsletter&utm_medium=email&utm_campaign=2026_11_community_education&utm_content=email_01_hero
The same destination, distributed through an Instagram bio:
https://practice.example/community-guide?utm_source=instagram&utm_medium=social&utm_campaign=2026_11_community_education&utm_content=bio
And the same initiative on a printed event card:
https://practice.example/community-guide?utm_source=community_event&utm_medium=qr&utm_campaign=2026_11_community_education&utm_content=table_card
A QR code is simply a way of opening its destination URL. Create the final tested URL first, then make the code. Test the printed code on an actual phone before producing a large quantity.
Use the first question mark to begin parameters and ampersands between them. If the destination already has a query string, append parameters correctly rather than adding a second question mark. If it has a section fragment, parameters belong before the #fragment. A URL builder avoids many manual mistakes.
Keep one register that the whole team uses
A campaign register should make accidental duplicates obvious. Include:
| Field | Example |
|---|---|
| Campaign key | 2026_11_community_education |
| Destination | /community-guide |
| Source / medium | practice_newsletter / email |
| Placement | Email 1, main image |
| Content value | email_01_hero |
| Final tagged URL | Saved full URL |
| Owner | Named team member |
| Status | Draft → tested → in use → retired |
| Test evidence | Date, device, final destination, observed source |
Use a separate row for a footer link if you genuinely need to compare it with the main image. Do not create dozens of labels nobody will use to make a decision.
Write the decision beside the campaign: “Compare visits and verified requests from the newsletter and Instagram.” That makes it clear why the labels exist.
Test the journey, not just the spelling
Run this preflight using designated test activity:
- Open the exact link from the actual placement, such as a test email. Do not test only the unwrapped URL in your spreadsheet.
- Check the final page after redirects. Did it arrive at the intended location and preserve the labels until the measurement system captured them?
- Follow the main action. If the visitor crosses to a different domain or booking system, document that boundary. It requires its own measurement design; a UTM is not an automatic cross-domain solution.
- With the required consent and test setup, inspect the observed analytics event or diagnostic view. Confirm the URL and source values rather than assuming the code collected them.
- Check the relevant acquisition report once data is available. Distinguish test evidence from production results.
- Record the outcome in the register. If privacy choices prevent analytics collection, mark that scenario accurately. Do not bypass the choice to make the report look complete.
Never add campaign UTMs to normal internal navigation just to see which button people press. Use an appropriate event for that interaction. Campaign labels should describe acquisition links, not disguise movement within the site as a new marketing source.
Respect the advertising platform’s existing measurement
Google Ads and other integrated platforms can use their own click identifiers and auto-tagging. Do not remove those identifiers or assume manual tags can replace the integration. Google documents how manual and automatic traffic-source information interact, including cases where normal click identifiers cannot be used. Google’s traffic-source and tagging guidance.
Before changing paid links, ask the account owner which system is authoritative for campaign identity and how redirects preserve it. Test a genuine platform preview or authorized test route. Do not click your own paid ad repeatedly to manufacture a sample.
Do not put people into your URLs
Do not add names, emails, phone numbers, patient record numbers or form responses to campaign parameters. Google prohibits personally identifiable information in Analytics, including campaign dimensions, and warns that page URLs and titles can leak it. Google’s PII prevention guidance.
For a healthcare practice, also keep symptoms, diagnoses, treatment details and sensitive audience membership out of these labels. A code is not automatically safe just because it is difficult to read. If it maps to an individual or a sensitive segment, it needs a separate privacy and platform review.
Campaign attribution and contact attribution are different jobs. For example:
- Supported: a measured visit carried the newsletter campaign labels.
- Not established by UTMs: a named patient read the article.
- Requires separate evidence and safeguards: a permitted CRM interaction can be reconciled to a specific contact.
Do not send CRM identity to analytics to fill the gap. Keep approved contact-level evidence within the system and access controls designed for it.
Read the results with the right expectations
A link can be forwarded. An email security tool may inspect it. A visitor may decline analytics, use another device or return later without the original tags. Those realities mean campaign clicks, measured sessions and confirmed inquiries will not always match.
Report them as separate measures. Add the relevant date range, reporting timezone and data freshness. A useful conclusion might be: “The newsletter generated measured visits to this guide, and three designated test paths passed.” It should not become “everyone who clicked is ready to book.”
UTMs give you a cleaner starting point. Operational outcomes and careful interpretation complete the picture.
Put this into practice
Choose one upcoming campaign. Register its links, run the preflight and compare the resulting sources before scaling the system across every channel.
Sources & Further Reading
Source guidance reviewed November 2026. Platform features can change. Examples and worksheets are practical recommendations, not promised results.





