Why Marketing Agencies need this
Many agencies name winning clients as their hardest job, and the work that follows is proving it: one client's monthly report shows "direct" traffic that should have been email, another lumps paid social and organic social together, and nobody remembers whether the last freelancer wrote Facebook, facebook or fb. Manual rank reports can already take a couple of hours per client, and messy campaign tags add a second cleanup pass before anything reaches the client call. Tagging links is simple. Tagging them the same way across twelve accounts and four people is where agencies slip. The UTM Campaign URL Builder handles the mechanical part: you type the destination URL, source, medium and campaign name, with optional term and content, and it returns one finished link with the parameters in a fixed order and the values encoded. It does not decide your naming scheme, change case, or remember a client's rules. So the useful question for a marketing agency is what to agree on first, then how to build each link without breaking that agreement. The sections below cover that, plus three illustrative cases and the mistakes that split one campaign into separate rows.
Marketing Agencies specific guidance
Agree the vocabulary before you build a link
Before anyone opens the builder, write a one-page naming sheet, either per client or one shared sheet for the agency. List the allowed utm_source values (google, meta, newsletter), the allowed utm_medium values (cpc, email, social, referral) and the pattern for utm_campaign, such as yyyy-mm_offer_audience. You can set this up in ten minutes in a shared spreadsheet. The builder does not lowercase anything, replace spaces or keep presets, so "Facebook Ads" stays utm_source=Facebook+Ads and analytics will count it as a different source from facebook. The sheet is your process; the tool only types out what you give it. It also does not prove that your values match the channel grouping a client's analytics uses, so open the acquisition report after the first live clicks and confirm the traffic landed where you expected.
Build each link, then read it left to right
Paste the full landing page, such as https://client.example/collections/summer-sale, then fill Campaign Source, Campaign Medium and Campaign Name, and add Term or Content only when you need them. The result appears under Your Campaign URL with a Copy URL button. Existing parameters are kept, new ones are joined with ? or &, and the order is always source, medium, campaign, term, content. Check that spaces appear as + and that an ampersand or slash you typed became %26 or %2F. The tool never opens the destination, so a typo in the path still produces a tidy link to a 404. Click the finished link once in a browser before it goes into an ad or email. One run makes one link, so a launch with forty ads means forty runs; plan the batch in your sheet first.
Fix a split report in this order
When a report looks split, start with the cheapest cause: case and spelling drift. Filter the campaign or source column for variants of the same name and note who built them. Next, look for links that already carried utm_ parameters, because the builder does not detect existing ones and will append a second set; open the final URL and search for utm_source twice. Last, keep tagged links off navigation, banners and buttons on the client's own site, since tags on an internal click can overwrite the visit's original source and misattribute it in reports. A tidy URL does not prove the click was counted, the campaign performed, or the channel grouping is right; it only shows the link was assembled correctly. Analytics does not rewrite rows already collected, so correct the sheet and tag new links properly.
Example scenarios
1. Three people tag the same newsletter
- Situation
- Illustrative example: an account manager, a freelancer and an intern each build the spring newsletter link for a client over two weeks, typing the values from memory, and the monthly report ends up with 3 spellings across 1 send of 8,000 subscribers.
- Input
- Website URL:
https://client.example/blog/spring-checklist| Source: Newsletter | Medium: Email | Campaign: Spring Sale - Reading the result
- The result would typically be https://client.example/blog/spring-checklist?utm_source=Newsletter&utm_medium=Email&utm_campaign=Spring+Sale. Case is kept as typed, so if a colleague used newsletter and email, analytics shows 2 rows for one send. Retype the 3 fields in lowercase from the naming sheet before copying.
2. Paid social link on a product page with a variant
- Situation
- Illustrative example: a retargeting ad for a Black Friday offer points to a product URL that already has 1 variant parameter, and the creative has 2 video versions.
- Input
- Website URL:
https://client.example/products/trail-shoes?variant=42| Source: meta | Medium: paid_social | Campaign: 2026-11_bf_retargeting | Content: video_a - Reading the result
- Expect https://client.example/products/trail-shoes?variant=42&utm_source=meta&utm_medium=paid_social&utm_campaign=2026-11_bf_retargeting&utm_content=video_a. The variant stays and the tags are joined with &. Build a second link with video_b so the two creatives separate in reports.
3. A copied link that is already tagged
- Situation
- Illustrative example: a colleague copies a partner-tagged pricing link from a browser bar and asks you to turn it into a paid search link with 1 keyword, which would leave 2 utm_source values in the final URL.
- Input
- Website URL:
https://client.example/pricing?utm_source=partner#plans| Source: google | Medium: cpc | Campaign: brand_search | Term: running shoes - Reading the result
- The output would show utm_source=partner&utm_source=google followed by the other tags, utm_term=running+shoes, and the #plans anchor at the very end. The tags sit before the fragment, which is correct, but the duplicate source is not detected. Delete the old utm_source from the input and rebuild.
Common mistakes
- Letting every team member invent values. Without a shared sheet, one client ends up with email, Email and e-mail as three mediums. Fix the vocabulary first and build links second.
- Trusting the tool to normalise case. The builder keeps what you type, only trimming spaces at the ends. Lowercase and replace spaces yourself before you copy the link.
- Tagging internal links. Putting UTMs on a client's own menu or banner links can overwrite the real source of the visit in reports. Use tags on outbound campaign links only.
- Re-tagging a link that already has UTMs. The builder does not spot existing utm_ parameters, so a copied tagged URL gets a second set. Open the final link and look for repeated parameter names.
- Skipping a click test. The tool does not open the destination, so it cannot tell you the page exists. Click each new link once before the ad or email goes live.
Frequently asked questions
Does the UTM builder keep naming conventions per client?
No. It builds one link per run from whatever you type, with no presets, saved campaigns, history or client folders. Values are not lowercased or checked against a list either. Keep the convention in a shared spreadsheet or your project tool, give every account manager the same source and medium vocabulary, and paste values from that sheet into the Campaign Source, Campaign Medium and Campaign Name fields. Treat the sheet as the source of truth and the builder as the typing aid.
Can I build UTM links for a whole campaign at once?
Not here. Each run produces a single link and there is no CSV import or export, so a campaign with thirty ads takes thirty runs. The anonymous runner also allows five runs per ten seconds and twenty per minute, so pace yourself. For large launches, many agencies generate the bulk in a spreadsheet and use the builder for one-off links or to see how a tricky value gets encoded.
Do UTM parameters hurt SEO for client sites?
UTMs are meant for campaign links, not for SEO. The risk is that tagged addresses get linked internally or shared widely and show up as duplicate variants of the clean page. Keep tags off internal links and check that the client's pages carry a self-referencing canonical pointing at the clean address. The builder does not verify canonicals or indexing, so check the page source or Search Console.
Should UTM values be lowercase in client reports?
Yes, as a house rule, because analytics treats Email and email as separate values and your report ends up with two rows for one channel. The builder will not change case for you; it keeps exactly what you type, apart from trimming spaces at the ends. Decide on lowercase, and underscores or hyphens instead of spaces, then write it into the naming sheet so freelancers and new hires follow the same pattern.
Does the builder track clicks or show campaign results?
No. It only assembles the URL. It does not connect to Google Analytics or GA4, count clicks, shorten links or create QR codes. Results appear in the analytics account where the tagged link is eventually opened, so pull numbers from the client's analytics by campaign name. Also note that the Website URL you enter is written to the SeoMods usage log, so avoid pasting links with private tokens or unreleased client pages.
Reference: The hours lost to manual rank reporting, and why clients worry about normal fluctuations, are described in this agency guide to search engine ranking reports.