UTM Tracking: Connect Campaign Links to Revenue

UTM tracking adds campaign labels to links so an analytics tool can report which sources, channels, and campaigns brought traffic to a website. Google’s campaign URL guide explains how those labels become campaign data.

cross-channel UTM tracking: a flat map pin, face-down phone, and stack of coins arranged left to right, target with dart, shopping cart, sealed envelope, closed notebook, and potted plant

A UTM link is a destination URL with campaign parameters attached; UTM is short for Urchin Tracking Module. Choose each label to describe where the link will be distributed.

A tagged URL still needs a working measurement setup. Google describes collection, processing, and reporting as separate steps: tracking code or an SDK collects campaign fields, Analytics processes them, and reports display the resulting dimensions. Creating a link is the start of that process.

What the UTM parameters mean

Google’s parameter reference defines these five commonly used fields:

ParameterWhat it identifiesSample value
utm_sourceReferrer or traffic originnewsletter
utm_mediumMarketing channel or methodemail
utm_campaignCampaign or promotionproduct_launch
utm_termPaid keywordrunning_shoes
utm_contentCreative or link variationfooter_link

For manual tagging, Google recommends source, medium, and campaign; add term or content for specific comparisons.

Begin with the destination URL and decide the source, medium, and campaign labels. Keep one campaign value across all links belonging to the same promotion, then change source, medium, or content to identify each distribution channel or placement.

A basic tagged URL has this form:

https://example.com/landing?utm_source=newsletter&utm_medium=email&utm_campaign=product_launch&utm_content=footer_link

The labels are sample parameter values. Replace the domain, path, and values with the actual destination and campaign labels before distributing a link.

The query-string syntax documented by MDN starts with ? and separates key/value pairs with &. For a destination that already contains a query string, append the UTM pairs with &; retain any existing parameters needed by the page. Put query parameters before a # fragment, which marks a separate part of the URL.

For repeatable link creation, use this sequence:

  1. Record the destination URL without campaign tags.
  2. Select the campaign name and the source and medium values.
  3. Add content or term values only for planned comparisons.
  4. Generate the tagged URL and check each parameter against the recorded values.
  5. Test the exact link that will be distributed, including its redirects.

Keep the naming consistent

UTM values are case sensitive, so newsletter and Newsletter can appear as different values. Adopt lowercase values and one separator for multiword labels, such as underscores. Keep the parameter names in their documented utm_ form.

Maintain a shared link register with the campaign definition, destination, approved labels, final URL, and distribution placement. Select labels from that register when producing additional links. Keep source for the origin, medium for the channel, and content for the individual variation. Record any naming change before using it in new links.

Check manual tagging against auto-tagging

Google Ads uses a separate mechanism: auto-tagging appends a Google Click Identifier, or GCLID, to an ad’s destination URL.

Google documents manual construction and URL builders for tagged links. Under its manual-and-auto-tagging rules, auto-tagged values supply source, medium, and other traffic-classification dimensions when both methods are used; manually supplied content and term values have their own dimensions.

Google also documents a fallback to UTM values when the GCLID or DCLID cannot be used as intended. Supply all relevant fields, especially source, medium, campaign, campaign ID, and source platform, following Google’s completeness recommendation; missing fields can produce (not set). Check the report dimension before changing tags.

Test UTM tracking before distribution

Test the complete link path, including email click redirects, shortened links, and the final landing page. Check that the destination is correct and the campaign parameters reach the URL collected by the analytics tag. For Google Ads, Google specifically requires redirects to pass the GCLID to the final landing page.

Use Google Tag Assistant or preview mode to enable debugging on the test device, then open Admin > Data display > DebugView to inspect collected events and parameters. Follow the tagged link and compare the collected page URL with the intended campaign URL.

For a session-level test, begin without an existing session. Google explains that new campaign values collected during an active session can affect event attribution without starting a new session or changing that session’s traffic source. Test each intended session source separately.

When events are absent, inspect the tag and consent setup. Google’s DebugView guidance notes that client-side privacy controls and denied Analytics cookie consent can prevent events from appearing. Test the configured consent behavior alongside collection.

Finally, check the processed acquisition report. DebugView performs limited attribution analysis; it is useful for collection checks, while acquisition reports provide the more accurate attribution view. Google says data processing can take 24–48 hours, and reported values may change during that period.

Where to find UTM data in GA4

Find Google’s Traffic acquisition report under Reports > Acquisition > Traffic acquisition. It provides session campaign, source, medium, and source / medium dimensions, plus Sessions, Key events, and Total revenue. An editor can restore the report to navigation when it is absent.

To review a campaign:

  1. Set the reporting date range.
  2. Find the label using Session campaign.
  3. Break down the campaign by Session source / medium.
  4. Compare Sessions, relevant Key events, and configured revenue metrics.

Select dimensions that match the question. Google distinguishes three traffic-source scopes:

ScopeWhat it describes
First userHow a user was originally acquired
SessionWhat brought a user into a particular session
EventAttribution credit for a key event

Google’s scope guidance also states that changing the reporting attribution model affects event-scoped dimensions, while user- and session-scoped dimensions remain unaffected. Record the scope and model when comparing results.

Connect campaign traffic to revenue

Choose the revenue workflow that matches where sales are recorded: website purchases or closed deals in a CRM.

Measure website purchases in GA4

Google’s purchase-event setup guide shows how to send a purchase event with a transaction ID, value, currency, and item data. Transaction IDs help prevent duplicate purchases from being counted, and the guide documents DebugView checks for the event and its parameters.

Validate completed purchase events before reviewing campaign revenue. Check the transaction ID, amount, currency, and items against the actual transaction. Then review the revenue metric using the chosen campaign dimension.

The Total revenue metric includes purchases, in-app purchases, subscriptions, and ad revenue, minus refunds. Google also specifies that a purchase event needs both value and currency for purchase data to appear in that metric. Use its full definition when labeling the report.

Measure closed-deal revenue in a CRM

HubSpot documents a concrete route through Deal Revenue Attribution, available in Marketing Hub Enterprise. Its UTM dimensions assign credit using the parameters present in the URL where a recorded interaction occurred.

Before creating the report, check HubSpot’s revenue-attribution prerequisites:

  • The deal is in a closed-won stage.
  • At least one contact is associated with the deal.
  • Amount, Create date, and Close date have known values.
  • External campaign links lead to a page with the HubSpot tracking code so the interactions can be captured.

In the attribution report builder, select the revenue data source, UTM dimensions, attribution model, and deal close-date range, following HubSpot’s report configuration instructions. Use UTM Campaign to group the promotion, then source or medium to examine its distribution channels.

HubSpot’s supported attribution models include First Touch, Last Touch, and Linear, which assign credit differently. Keep the model and date filters alongside the reported amount. For missing revenue, inspect purchase values or deal and contact associations before revising the tags.

Troubleshoot missing or fragmented campaign data

Work through collection before interpretation:

  • No page-view event: inspect the analytics tag and the consent behavior in DebugView.
  • Parameters disappear during the link journey: inspect each redirect and the URL available when the tag collects the page view.
  • One campaign has several labels: compare capitalization and spelling against the link register.
  • Campaign fields show (not set): check the supplied UTM fields and any auto-tagging fallback.
  • Traffic appears but revenue is missing: validate purchase-event values or the CRM’s deal and contact prerequisites.
  • Reports disagree: compare dimension scope, attribution model, date range, and processing status.

Keep campaign values free of personal identifiers. Google’s PII guidance explicitly prohibits names, email addresses, and similar personally identifiable information in custom campaign parameters. Use labels for marketing activity, and manage contact identity within the appropriate measurement system.

Frequently asked questions

Why are UTMs absent from Landing page + query string in GA4?

Google excludes UTMs from Landing page + query string and Page path + query string, instead populating them in Page location. Use campaign dimensions to analyze the labels.

Should UTM tags be added to internal navigation links?

Reserve UTM labels for incoming campaign traffic and use separate click events to measure internal navigation. Google explains that campaign values collected during a session can affect event-based attribution while leaving the existing session source unchanged.

Is a UTM link enough to report revenue?

Revenue reporting also needs the commercial outcome to be recorded. GA4 uses purchase-event data; HubSpot’s deal revenue attribution requires eligible closed-won deals and associated contacts. UTM values provide campaign labels for those reporting workflows.

One person. A whole marketing team.

Invite only