How to Set up UTM to Maximize Visibility into Focused High Intent Traffic
UTM parameters are short tags added to the end of a link. They tell Bread & Butter where a visit came from: which platform, which channel, which campaign and which keyword. With them in place, the Attribution report can show which campaigns bring serious buyers, not just clicks. Without them, a paid visit can look like any other visit.

In short: Tag every campaign link with utm_source, utm_medium and utm_campaign, and add utm_term and utm_content for search ads. In Google Ads, paste one template into the account's Final URL suffix and every ad is tagged from then on. Google can only send IDs, not names, so connect your Google Ads account: Bread & Butter turns those numbers into campaign and ad group names, and matches every Google Ads visit to its click, so a visit lands under the right campaign and keyword even when its tags are missing or wrong. Keep tags lowercase, use underscores instead of spaces, and test one link before you rely on it.
The five UTM parameters
| Parameter | What it records | Example |
|---|---|---|
utm_source |
The platform the click came from | google, linkedin, mailchimp |
utm_medium |
The type of channel | cpc, paidsocial, email, referral |
utm_campaign |
The campaign | spring_sale, v3_launch |
utm_term |
The search keyword | lead_generation_software |
utm_content |
Which ad or link inside the campaign | blue_button, video_ad_v2 |
Source and medium go on every tagged link. Campaign groups everything from one marketing push. Term matters most for search ads, where it records the keyword that matched. Content tells similar ads or links apart.
Google Ads
Set the tags once, in Google Ads, and every ad carries them. Google fills in the values in curly brackets (called ValueTrack parameters) automatically on each click.
Recommended: one template for the whole account. In Google Ads, go to Admin, then Account settings, then Tracking, and paste this into Final URL suffix:
utm_source=google&utm_medium=cpc&utm_campaign={campaignid}&utm_content={adgroupid}&utm_term={keyword}
Every campaign, current and future, is tagged with no further work.
Alternative: one campaign at a time. In the campaign's Settings, open Campaign URL options and paste this into Final URL suffix. Replace your_campaign_name with a readable name:
utm_source=google&utm_medium=cpc&utm_campaign=your_campaign_name&utm_content={adgroupid}&utm_term={keyword}
Use this when you want readable campaign names without connecting Google Ads. You'll need to repeat it for every new campaign.
Connect Google Ads to turn numbers into names. Google can only send IDs in a link, never names. So with the account-level template, your campaign and ad group show up as long numbers, such as 189993294432 . That's normal. Connect your Google Ads account and Bread & Butter shows the real campaign and ad group names everywhere, past visits included. It also brings in your spend, so you can see your cost per click, your cost per 1,000 impressions and what each Focused visitor really costs. It takes a minute, with no developer token or Customer ID. See Connect Google Ads.
Connected, every Google Ads visit is placed by its click. Every click on a Google ad carries a click ID, even when the UTM tags are missing or name the wrong campaign. Once Google Ads is connected, Bread & Butter matches each visit to Google's own record of that click and places it under its campaign, ad group and keyword. When the click and the tags disagree, the click wins in your reports, and your tags stay on the visit exactly as they were typed. On the day you connect, it goes back through the last 90 days of Google Ads visits, as far as Google keeps click details.
So with Google Ads connected, your tags are a backup rather than the only record. Keep the template in place anyway: some visits arrive without a click ID (some clicks on iPhones, for example), and those are placed by the campaign ID in the link, then by your tags. The tags also keep the visit readable in every other tool you use.
When the tags miss. The Ads Spend report counts the Google Ads visits whose tags were missing or wrong, and says why. There are three usual reasons, each with its fix in Google Ads:
- No UTM tags at all. The account has no template in its Final URL suffix, or a campaign overrides it with its own empty one. Paste the recommended template above into the account's Final URL suffix, once.
- The wrong campaign. An ad or a campaign was copied with its tags typed in, so the tag still names the campaign it was copied from. Use
{campaignid}instead of a typed name, and Bread & Butter turns the ID into the name. - No keyword.
utm_term={keyword}isn't in the suffix. Add it.
Things that are normal with Google Ads:
- Changes take 24 to 48 hours. Google takes that long to apply a new tracking template to live ads.
- Blank values happen. Google leaves a value empty when it has nothing to insert. If you use AI Max for Search, keyword-less matches arrive with an empty
{keyword}. - Test before you rely on it. In Google Ads, use Test next to the Final URL suffix, or click one of your own ads and check that the tags appear in the address bar.
Meta (Facebook and Instagram)
At the ad level, paste this into the URL parameters field under Tracking:
utm_source=facebook&utm_medium=paidsocial&utm_campaign={{campaign.name}}&utm_content={{ad.name}}
Meta fills in the names. Note that Meta uses the name the campaign or ad had when it was first published, so a later rename won't show up.
Add the tags to the end of each ad's destination URL:
?utm_source=linkedin&utm_medium=paidsocial&utm_campaign=q1_prospecting
Change the campaign value for each campaign. If the URL already has a ? in it, start the tags with & instead.
Mailchimp. In each campaign's settings, turn on Google Analytics link tracking. Mailchimp adds the UTM tags to every link in the email.
HubSpot. Go to Settings, then Marketing, then Email, then the Tracking tab, and turn on source tracking.
Rules that keep your data clean
Lowercase everything. Google and google show up as two different sources.
Use underscores instead of spaces. spring_sale , not spring sale .
Use the same names every time. Pick cpc or ppc for paid search and stick to it. One spelling per source and medium keeps the reports together.
Check the link still works. After adding tags, click through once to make sure the page loads and the tags are in the address bar. A private browser window gives you a clean test.
Mind each platform's brackets. Google uses single curly brackets, {keyword} . Meta uses double, {{ad.name}} . A typo leaves the literal text in your links.
Where your UTM data shows up
Focused Tab. Each serious visitor shows the source, campaign and keyword that brought them.
Attribution report. Sources, campaigns and keywords are ranked by the Focused visitors and Engaged Leads they bring.
Ads Spend report. With Google Ads connected, every campaign and keyword shows what a click costs against what a Focused visitor costs, with its verdict, and the visits your tags missed. See Ads Spend report.
Filters and saved funnels. Filter any view by source, medium, campaign or keyword, then save it as its own funnel.
Nurture Action Queue. Each Engaged Lead in the queue carries the campaign and keyword that brought them, so a rep knows the context before reaching out.
Journey Summary and Intelligence Brief. Each lead arrives with the campaign and keyword that started their journey.