The Tool Landscape
Named examples for each of the tool map's six stages, from making links to reading reports, with the vendor specifics the chapters moved out: which UTM values each product reads, where it keeps them, and the date each line was checked.
On this page
The chapters teach each stage of the tool map by its mechanism and name only a few examples. This page holds more examples per stage, and the vendor specifics: what a named product does with UTM values today, each line with its source and the date it was checked against the vendor’s own documentation. Products change with every release. When a line here disagrees with the product in front of you, the product wins, and the date tells you how old the line is.
Examples are listed in no order, and naming one isn’t a recommendation. One product can sit at more than one stage; each appears under the stage its line is about.
Before stage 1: where campaigns are planned
Not a stage, a note. A campaign is often planned before anyone makes a link: in a project management tool such as Asana or Workfront, in a brief or a wiki, or as a campaign record in a CRM. Salesforce calls its campaign “a folder or a container for related marketing efforts” (Trailhead, Campaign Basics, checked 2026-10-06). That’s where the campaign value starts, whether links are then made in one stage or two (Chapter 9).
Stage 1: plan and make links
Three categories: URL builders (Google’s Campaign URL Builder), shared sheets (Google Sheets, Microsoft Excel) and governance platforms (Terminus, ours).
A sheet’s dropdown can reject anything off its list or only warn, as its editor sets it. In Google Sheets that’s the data validation setting (Google, checked 2026-10-06); in Excel it’s the error alert’s style, where Stop refuses the entry and the other styles warn and let it through (Microsoft, checked 2026-10-06).
Terminus publishes this guide. Links are made in its forms, a grid, CSV import or the API, and checked against the published governance model. Approved records become the links teams launch (stage 2), are pushed to a data warehouse by connectors (stage 5), and are readable through the API and webhooks. Chapter 9 runs it through the same break test as every other tool.
What to look for in a tool at this stage (the ladder, read by what each rung makes impossible), the five breaks that test a tool, and the choice between one stage and two (in two, the campaign field offers only campaigns defined first) are in Chapter 9.
Stage 2: distribute
Four categories: ad platforms (Google Ads, Meta Ads, LinkedIn Ads), email platforms (Mailchimp, Klaviyo), social schedulers (Hootsuite), and print and QR. Who writes the final link at this stage, and what can change it on the way, is Chapter 5; where to click in each ad and email platform is in the Cheat Sheet.
The ad platform specifics the chapters rest on:
- Google Ads auto-tagging adds a
gclidto the click. When a click carries agclidand UTMs, GA4 builds source, medium and campaign from the auto-tagging, and the manualutm_contentandutm_termgo to its Manual ad content and Manual term dimensions (Google, checked 2026-10-06). - Google Ads can write its campaign ID onto a link with
{campaignid}, and has no ValueTrack parameter for the campaign name (Google, checked 2026-10-06). - The URL settings live on the ad or the campaign, not in the spend rows: Meta’s
url_tagson the ad creative, Google Ads’ tracking template and final URL suffix (Meta ad creative, Google Ads campaign, checked 2026-10-06). - Meta Ads Manager has a name template feature (Meta, checked 2026-10-06).
How the names become the join key is Chapter 6.
Stage 3: land and record
Three categories: web analytics (GA4, Adobe Analytics, Matomo), tag managers (Google Tag Manager) and consent managers (OneTrust). For an app, a mobile measurement partner records the install (below).
GA4’s dimensions, scopes, channel rules and limits are in GA4 Field Notes.
Matomo detects UTM-tagged URLs. By default it offers two campaign dimensions: a campaign name, filled by utm_campaign, utm_medium or utm_source, and a campaign keyword, filled by utm_term. Its Marketing Campaigns Reporting plugin tracks six: name, source, medium, keyword, content and campaign ID (Matomo, checked 2026-10-06).
Google Tag Manager’s URL variable exposes one part of the page’s address to its tags: the full URL, protocol, hostname, port, path, filename extension, query or fragment (Google, checked 2026-10-06).
Apps: mobile measurement partners
When a campaign drives app installs, a mobile measurement partner records the install, under its own parameter names. Your taxonomy still supplies the values; each partner’s names are where they go.
Branch
- Its own parameters: analytics tags such as
~campaign,~channeland~feature. - Where UTMs come in: when Branch redirects to a web page, it passes
~campaignasutm_campaign,~channelasutm_sourceand~featureasutm_medium, and doesn’t overwrite UTMs already on the page’s URL. This is on by default (Branch, checked 2026-10-06).
AppsFlyer
- Its own parameters:
pid(media source) andc(campaign). - Where UTMs come in: on website landing pages, each field falls back to the UTM value only when AppsFlyer’s own is missing (
pidbeforeutm_source,cbeforeutm_campaign). For OneLink, its Smart Script can be set to copy incomingutm_sourceandutm_campaignonto the link’s media source and campaign (AppsFlyer web, AppsFlyer Smart Script, checked 2026-10-06).
Adjust
- Its own parameters:
campaign,adgroupandcreative. - Where UTMs come in: Smart Scripts can be set to copy incoming parameters onto them (
utm_campaignontocampaign, for example). A separate setting, in early access and off by default, writes Adjust’s structure out as UTMs on the destination URL (channelasutm_source,campaignasutm_campaign,adgroupasutm_term,creativeasutm_content), without overwriting existing ones (Adjust link parameters, Adjust Smart Scripts, Adjust UTM output, checked 2026-10-06).
Stage 4: capture and connect
Three categories: forms, CRMs (HubSpot, Salesforce) and marketing automation (Marketo Engage, Account Engagement, ActiveCampaign, and HubSpot again). Chapter 7 explains the two ways values reach a lead: hidden fields you add, or a CRM’s own tracking script, which files the visit into the CRM’s categories. The hidden-field recipe is in the Cheat Sheet. Here is what each product does.
HubSpot
Its own tracking sets a contact’s Original Traffic Source and Latest Traffic Source from the contact’s interactions, such as website visits and marketing email clicks. The values are HubSpot’s categories, not yours: Organic search, Paid search, Email marketing, Organic social, Referrals, AI Referrals, Other campaigns, Direct traffic, Paid social and Offline sources. For Paid social, drill-down 1 holds the social site and drill-down 2 the campaign name, taken from utm_campaign (HubSpot). Offline sources covers records created through imports, integrations, the API or by hand in the CRM, as well as untracked origins (HubSpot traffic sources, checked 2026-10-06).
To keep your own values as well, HubSpot forms fill fields, hidden ones included, from the page address’s query string, so custom UTM properties can be filled from the link’s UTM parameters (HubSpot). A workflow’s Edit record action can copy one property’s value into another, on the same record or an associated one (HubSpot workflows, checked 2026-10-06).
Salesforce
- Custom fields on the Lead object, one per value and per touch, are created under Fields & Relationships in Object Manager (Salesforce, checked 2026-10-06).
- Each custom lead field can be mapped to a custom account, contact or opportunity field, filled when the lead is converted. This is how the deal inherits the lead’s values (Salesforce). Many field types map only to a field of the same type, (Salesforce mapping guidelines), and converting into an existing account or contact fills only its empty fields, never overwriting a value already there (Salesforce converting leads, checked 2026-10-06).
- Campaign Member is the object that links a lead or contact to a Salesforce Campaign. A record-triggered Flow on Lead that creates a Campaign Member adds each new lead to a campaign (Salesforce object reference, Salesforce, checked 2026-10-06).
- Customizable Campaign Influence links open opportunities to the active campaigns whose members hold a contact role on them (Salesforce, checked 2026-10-06).
Marketo Engage
- Its own tracking: Munchkin logs each page view as a Visit Web Page activity, with a Query Parameters attribute (Marketo lead tracking, Marketo activities, checked 2026-10-06).
- Hidden fields: a hidden form field’s value can come from a default value, a URL parameter, a cookie value or a parameter on the referring page’s URL (Marketo hidden fields, checked 2026-10-06).
- Keeping a first value: blocking updates to a field lets it be written once and keep its original value for the life of the record (Marketo, checked 2026-10-06).
Account Engagement (Pardot)
- Its own tracking: the Google Analytics connector fills a prospect’s Google Analytics fields, such as Source and Campaign, only when the tagged link is the prospect’s first touch. An existing prospect who clicks a tagged link isn’t updated, and values over 50 characters are truncated (Account Engagement, Account Engagement FAQ, checked 2026-10-06).
- Hidden fields: for any touch after the first, add your own fields (Cheat Sheet).
ActiveCampaign
- Its own tracking: with site tracking installed, a contact’s visit to a URL carrying any of the five UTM parameters is recorded as a touchpoint (ActiveCampaign attribution, ActiveCampaign touchpoints, checked 2026-10-06).
- Hidden fields: a hidden field takes a UTM parameter when its personalization tag matches the parameter’s name, and hidden fields work on inline forms only (ActiveCampaign hidden fields, checked 2026-10-06).
Stage 5: store and model
Three categories: data warehouses (BigQuery, Snowflake, Amazon Redshift), data pipelines (Fivetran) and modeling (dbt). Examples checked 2026-10-06.
Each system’s data arrives here keyed by its own values: ad spend by the platform’s campaign names, visits by the UTM values, leads by whatever their fields hold. The join on the campaign value is in Chapter 6 and Chapter 7. GA4’s export fields are in GA4 Field Notes, and the model every report reads is in For Data Teams.
Stage 6: read
Two categories: BI (Looker, Tableau, Power BI) and attribution. GA4 and Adobe Analytics record the visit at stage 3 and also offer attribution reports, read here. Chapter 11 defines the models without naming a tool; GA4’s menu and defaults are in GA4 Field Notes.
Adobe Analytics
Attribution in Analysis Workspace offers eleven models (Adobe, checked 2026-10-06):
| Model | Credit |
|---|---|
| Last Touch | 100% to the most recent touch before the conversion |
| First Touch | 100% to the first touch in the lookback window |
| Same Touch | 100% to the event where the conversion happened |
| Linear | equal credit to every touch |
| Participation | 100% to every unique touch |
| U Shaped | 40% first, 40% last, 20% divided among the touches between |
| J Curve | 60% last, 20% first, 20% divided between |
| Inverse J | 60% first, 20% last, 20% divided between |
| Time Decay | more to touches near the conversion: a touch’s credit halves for every half-life further back; the half-life is a setting, seven days by default |
| Custom | weights you set for first, last and the touches between |
| Algorithmic | credit set by statistical techniques from cooperative game theory |