When you run paid ads across multiple channels, knowing which campaigns actually drive pipeline and revenue is the difference between scaling what works and wasting budget on what does not. Campaign tracking parameters are the foundation of that visibility. They are the UTM tags and custom parameters you append to your URLs that tell your analytics platform exactly where each visitor came from, which ad they clicked, and what campaign brought them to your site.
Without them, your attribution data is incomplete, your reporting is unreliable, and your growth decisions are based on guesswork. Sound familiar? Many B2B SaaS marketing teams are running campaigns across Google, Meta, LinkedIn, email, and organic social simultaneously, yet their analytics platform shows a frustrating mix of "direct" and "none" traffic that tells them almost nothing about what is actually working.
This guide walks you through the exact steps to build, implement, and validate a campaign tracking parameter system that captures every touchpoint across your paid, organic, email, and social channels. Whether you are setting this up for the first time or cleaning up an inconsistent tagging structure that has been creating data gaps, these steps will give you a clean, scalable framework.
By the end, you will have a documented naming convention, a working URL builder process, a validation workflow, and a clear understanding of how to connect your tracked data to revenue attribution inside a platform like Cometly. Let's get into it.
Step 1: Understand the Five Core UTM Parameters
Before you build anything, you need to know exactly what you are building with. UTM stands for Urchin Tracking Module, a name that traces back to Urchin Software, which Google acquired as the foundation for Google Analytics. Today, UTM parameters are the universal standard for campaign tracking across virtually every analytics platform.
There are five standard parameters, and each one captures a different dimension of your traffic data. Here is what each one does:
utm_source: Identifies the origin of your traffic. This is the platform or publisher that sent the visitor to your site. Examples include google, facebook, linkedin, newsletter, or a specific partner name.
utm_medium: Identifies the marketing channel or method. This is broader than the source and describes the type of traffic. Common values include cpc, email, organic-social, paid-social, or display.
utm_campaign: Identifies the specific campaign. This should map directly to a campaign name in your ad platform or email tool so you can cross-reference performance. Examples include q2-brand-awareness or trial-signup-retargeting.
utm_term: Captures the keyword that triggered the ad, primarily used in paid search campaigns. For example, marketing-attribution-software or b2b-saas-analytics.
utm_content: Differentiates between multiple ads, links, or creatives within the same campaign. This is useful for A/B testing or when you have multiple calls to action in a single email. Examples include hero-banner or text-link-footer.
Of these five, utm_source, utm_medium, and utm_campaign are required for meaningful attribution. utm_term and utm_content are optional but highly valuable when you need granular visibility into ad-level or keyword-level performance.
Here is what a fully tagged URL looks like in practice:
https://www.yoursite.com/pricing?utm_source=google&utm_medium=cpc&utm_campaign=brand-awareness&utm_term=marketing-attribution-software&utm_content=headline-ad-v2
The parameters begin after the question mark, and each additional parameter is separated by an ampersand. Your analytics platform reads this string on page load and attributes the session accordingly.
One critical detail: UTM parameters are case-sensitive. "Google" and "google" are treated as two completely different sources. This is why naming conventions matter so much, which brings us to the next step. If you want a deeper dive into how UTM tracking works, UTM tracking and its marketing benefits are covered in detail elsewhere on this site.
Success indicator: You can look at any of your five parameters and immediately articulate what it should contain before writing a single URL.
Step 2: Build a Naming Convention That Scales
Here is where most teams run into trouble. The UTM parameters themselves are straightforward. The real challenge is getting every person on your team, and every agency or contractor you work with, to use them consistently. Inconsistent naming is the single biggest cause of fragmented attribution data.
Think about what happens when one team member tags a campaign with utm_source=Google, another uses utm_source=google-ads, and a third uses utm_source=GoogleAds. Your analytics platform treats these as three separate traffic sources. Your paid search data is now split across multiple rows, your totals are wrong, and any attribution model you apply is working with corrupted inputs.
The fix is a documented naming convention that everyone follows before any campaign goes live. Here is a practical baseline to start with:
Use lowercase for everything. No exceptions. Lowercase prevents case-sensitivity issues and keeps your data consistent regardless of who builds the URL.
Use hyphens instead of spaces or underscores. Spaces in URLs get encoded as %20, which can cause display issues in some tools. Hyphens are clean, readable, and universally supported.
Keep values descriptive but concise. A value like q2-2026-trial-retargeting is better than q2retargetingtrialcampaignjune because it is readable and still maps back to your campaign structure.
For utm_source, define a fixed list of approved values by channel type. A clean taxonomy might look like this:
google for Google Ads traffic
facebook or meta for Meta Ads traffic
linkedin for LinkedIn Campaign Manager traffic
tiktok for TikTok Ads traffic
newsletter or a specific email platform name for email sends
partner-name for affiliate or co-marketing links
For utm_medium, align your values with how you want traffic grouped in your attribution reports. Common values include cpc, email, paid-social, organic-social, and display. These medium values become the categories your attribution model uses to assign credit, so they need to be consistent and logical.
For utm_campaign, mirror the campaign names you use in your ad platforms. If your Google Ads campaign is called "Brand - Exact Match - US", your utm_campaign might be brand-exact-us. The goal is that you can look at a UTM value and immediately find the corresponding campaign in your ad account without guessing.
Once you have defined these values, put them in a shared document or spreadsheet. This is not optional. A naming convention that lives only in someone's head will drift the moment a new team member or agency starts running campaigns. A marketing campaign tracking spreadsheet is one of the most practical tools for keeping your entire team aligned on naming standards.
Success indicator: A naming convention document exists, is accessible to everyone running campaigns, and has been reviewed and approved by the team before any new campaign launches.
Step 3: Use a URL Builder to Create Consistent Tagged Links
Manual URL tagging is a trap. When people type parameters by hand, typos happen. A single misplaced character, an extra space, or a capitalized letter can corrupt your data in ways that are difficult to catch until you are already looking at broken reports.
The solution is to always generate tagged URLs through a builder, never by typing them manually.
Start with Google's Campaign URL Builder. It is free, straightforward, and a good starting point for teams new to UTM tagging. You enter your destination URL and fill in each parameter field. The tool generates the complete tagged URL, which you can then copy and use in your campaigns. You can find it by searching "Google Campaign URL Builder" in your browser.
Here is how to use it step by step:
1. Enter the full destination URL, including https://, in the Website URL field.
2. Fill in the Campaign Source field with your utm_source value, following your naming convention.
3. Fill in the Campaign Medium field with your utm_medium value.
4. Fill in the Campaign Name field with your utm_campaign value.
5. Optionally fill in Campaign Term and Campaign Content if you need that level of granularity.
6. Copy the generated URL from the output field and paste it directly into your ad platform or email tool.
For paid search and paid social campaigns at scale, manual URL building becomes impractical. This is where dynamic parameters become essential. In Google Ads, ValueTrack parameters auto-populate ad-level details at click time. For example, {keyword} inserts the keyword that triggered the ad, {matchtype} inserts the match type, and {adgroupid} inserts the ad group ID. You build the URL template once and Google fills in the values automatically for every click.
Meta Ads has its own dynamic parameter syntax. Using {{campaign.name}} and {{adset.name}} in the URL Parameters field of your ad settings auto-populates those values without manual management for each ad.
For teams managing many campaigns across multiple channels, build a master URL tracking spreadsheet. Include columns for the destination URL, each UTM parameter, the final tagged URL, the channel, the campaign launch date, and the team member who created it. Using a campaign tracker template as your starting point can save significant setup time and ensure you capture all the right fields from day one.
Success indicator: Every campaign URL in your tracking spreadsheet was generated through a consistent process, and no one is typing parameters by hand into ad platforms.
Step 4: Implement Parameters Across Every Active Channel
A tracking parameter system is only as strong as its coverage. If you are tagging your Google Ads campaigns but leaving your email links, LinkedIn ads, and partner URLs untagged, you are still missing significant attribution data. The goal is full-funnel coverage across every channel that drives traffic to your site.
Here is how to approach implementation by channel:
Paid Search (Google Ads and Bing Ads): Apply your tagged URL in the Final URL field at the ad level. Use ValueTrack parameters to capture keyword, match type, ad group, and placement data dynamically. This gives you ad-level granularity without creating a separate URL for every keyword combination.
Paid Social (Meta, LinkedIn, TikTok): In Meta Ads Manager, add your UTM parameters in the URL Parameters field within the ad settings. LinkedIn Campaign Manager has a URL tracking field at both the campaign and ad level. TikTok Ads supports UTM parameters in the URL parameters field as well. Apply parameters at the individual ad level rather than the campaign level so you can track performance by creative. For a deeper look at how this works specifically within Meta, Facebook campaign tracking covers the setup process in detail.
Email Campaigns: Every link inside every email send should be tagged. Use utm_source to identify the sending platform or list, utm_medium=email as the standard convention, and utm_campaign to reflect the specific send or nurture sequence. If you have multiple links in a single email, use utm_content to differentiate them so you can see which links are driving clicks.
Organic Social: This one is often overlooked. When you share links in your LinkedIn bio, Instagram bio, Twitter posts, or other social profiles, tag them with utm_source values that identify the platform and utm_medium=organic-social. This separates organic social traffic from paid social traffic in your reports, which is critical for accurate attribution. Without this distinction, organic and paid social blend together and neither is measured accurately.
Partner and Affiliate Links: Use utm_source to identify each individual partner. If you have five co-marketing partners sending traffic to your site, each one should have a unique source value. This lets you measure the contribution of each partner relationship separately rather than lumping them all into a generic "partner" bucket.
One important rule: never apply UTM parameters to internal links on your own website. When a visitor clicks an internally tagged link, your analytics platform resets the session attribution and assigns credit to the internal source rather than the original campaign. This is one of the most common ways UTM data gets corrupted.
Success indicator: Every active channel that drives traffic to your site has tagged URLs live, and your analytics platform is categorizing traffic from each channel under the correct source and medium values.
Step 5: Validate That Parameters Are Firing and Passing Data Correctly
Setting up parameters is one thing. Confirming they are working end-to-end is another. Many teams skip validation and only discover problems weeks later when they notice gaps or anomalies in their reports. A quick validation process after each campaign launch saves you from that situation.
Here is how to validate your tracking setup:
Test the URL directly. Copy your tagged URL and open it in a browser. You should land on the correct destination page without any errors. If the page does not load or the URL looks malformed, check for encoding issues, extra spaces, or missing ampersands between parameters.
Check real-time reports in your analytics platform. In Google Analytics 4, navigate to the real-time report while your test session is active. Look for your session under the traffic source breakdown. You should see the correct source and medium values appearing within seconds of clicking the URL. If the session shows as "direct" or "none," the parameters are not being read correctly.
Look for broken parameters. Common issues include spaces in parameter values (which should be hyphens), missing values where a parameter is present but empty, and encoding errors where special characters have been converted into symbols that break the string. Filter your analytics traffic reports for sessions where utm_source is empty to identify untagged or broken links that are falling through as direct traffic. Understanding event tracking in Google Analytics can help you set up additional validation checks that catch parameter failures before they compound into larger data gaps.
Confirm parameters are passing through to your CRM. This is the step most teams miss. If your UTM data stops at the analytics platform and never reaches your CRM, you cannot connect marketing source to leads, opportunities, or revenue. Many B2B SaaS teams pass UTM values into hidden form fields so that when a visitor converts, the parameter data is captured alongside the lead record. Check your CRM to confirm that new leads created through your test click are carrying the correct UTM values.
Validate inside your attribution platform. In Cometly, check that the test session appears in the customer journey view with the correct touchpoint data. You should see the source, medium, and campaign values associated with the session, confirming that the parameter data is flowing from click through to your attribution layer.
Make validation a standard part of your campaign launch checklist, not an afterthought. A five-minute check before a campaign goes live is far less costly than discovering broken tracking after weeks of ad spend.
Success indicator: A test click on your tagged URL shows the correct source, medium, and campaign values in both your analytics platform and your attribution tool, and the lead record in your CRM carries the UTM data.
Step 6: Connect Tracking Parameters to Revenue Attribution in Cometly
Here is the honest truth about UTM parameters on their own: they tell you about clicks and sessions. They do not tell you which campaigns are generating pipeline, which ones are closing deals, or what your actual return on ad spend looks like when you trace it all the way to closed revenue. That connection requires an attribution layer.
This is where Cometly comes in. Cometly ingests your UTM parameter data from your website alongside CRM events and ad platform data to build a complete, unified customer journey view. Every touchpoint a prospect has with your campaigns, from the first paid search click to the email that drove them to book a demo, is mapped against the UTM parameters you set up in the previous steps.
When a lead converts and eventually becomes a closed deal in your CRM, Cometly traces that revenue back through the customer journey and assigns attribution credit to each touchpoint based on the attribution model you select. Your UTM structure becomes the backbone of this process. Clean, consistent parameter values mean accurate attribution. Fragmented or inconsistent values mean the model cannot reliably assign credit across the funnel. Understanding how to attribute revenue to specific campaigns gives you a practical framework for making this connection work reliably.
Cometly's multi-touch attribution models use your UTM structure to distribute credit across first touch, last touch, linear, time decay, or position-based models. You can compare models side by side to understand how different perspectives on the customer journey change which campaigns appear most valuable. This is particularly important in B2B SaaS, where the sales cycle often spans weeks or months and involves many touchpoints before a deal closes. Choosing the right approach is covered in depth in this guide to attribution models for optimizing ad campaigns.
Server-side tracking and Cometly's Conversion API integration add another layer of reliability. Browser-side tracking is increasingly limited by ad blockers and browser privacy restrictions, which means some UTM data never makes it into client-side analytics. Cometly's server-side approach captures parameter data even when browser restrictions would otherwise cause it to be lost, giving you a more complete picture of your campaign performance.
Cometly's AI ads manager takes this further by using your enriched touchpoint data to surface which campaigns and parameter combinations are tied to the highest-value conversions. Rather than optimizing toward clicks or sessions, you can optimize toward the campaigns that are actually driving revenue, with the UTM parameters you built in steps one through five providing the data foundation that makes this possible.
Success indicator: Campaigns tagged with your UTM parameters are visible in Cometly's attribution reports with pipeline and revenue values attached, not just session counts.
Keeping Your Parameter System Clean Over Time
A tracking parameter system is not a one-time setup. It requires ongoing governance to stay accurate as your team grows, campaigns evolve, and new channels are added. Here is how to keep it clean.
Schedule a monthly audit. Review your analytics reports for new source or medium values that do not match your approved naming convention. These are signals that someone introduced a new tagging format without following the standard. Catch them early before the inconsistency accumulates.
Use your shared tracking spreadsheet as the single source of truth. Every active tagged URL should live in this spreadsheet. If a URL is not in the spreadsheet, it should not be live in a campaign.
Set a governance rule: no campaign goes live without a tagged URL. Make this part of your campaign launch checklist. The tagged URL should be reviewed against the naming convention before the campaign is approved to run.
Handle rebrands and campaign restructures carefully. When you rename campaigns or change your naming convention, do not retroactively change historical parameter values. Changing past values breaks your historical attribution data. Instead, document the change and apply the new convention to all future campaigns while leaving historical data intact.
Here is your full setup checklist to confirm you have covered every step:
1. Naming convention is documented, lowercase, hyphen-separated, and accessible to the full team.
2. A URL builder process is in place and no one is typing parameters manually.
3. All active channels including paid search, paid social, email, organic social, and partner links have tagged URLs live.
4. Parameters have been validated end-to-end from click to CRM.
5. UTM data is flowing into Cometly and campaigns are visible in attribution reports with revenue values attached.
With these five elements in place, your campaign tracking parameter system is built to scale.
Turning UTM Data Into Revenue Intelligence
Campaign tracking parameters are the foundation of every meaningful marketing decision you will make. Without them, you are navigating with incomplete information. With them, properly structured and consistently applied, you can see exactly which campaigns are generating pipeline, which channels are driving the highest-value customers, and where your next dollar of ad spend will have the most impact.
The steps in this guide give you everything you need to build that foundation: a clear understanding of the five core parameters, a naming convention that prevents data fragmentation, a URL builder process that eliminates manual errors, full-channel implementation, end-to-end validation, and a direct connection between your UTM data and revenue attribution.
But UTM parameters alone only take you so far. The real value comes when that data is connected to pipeline and revenue inside an attribution platform that can show you the complete customer journey. That is exactly what Cometly is built to do. It connects your ad platforms, CRM, and website tracking into a single source of truth, so every tagged touchpoint you capture feeds into attribution models that tie your campaigns directly to closed revenue.
If you are ready to move beyond session-level analytics and start making decisions based on actual revenue attribution, Get your free demo today and see how Cometly turns your tracking parameter data into the revenue intelligence your growth decisions deserve.





