UTM Parameters
Chapter 4 β Additional & Custom UTM Parameters (utm_id and more)
GA4 includes new UTM fields that make your channel and creative analysis more accurate. You should use the utm_id parameter as the primary label to connect your campaign data across different platforms. Only add custom UTM parameters if they answer specific, recurring questions and your team can use them consistently.
GA4 adds fields that remove ambiguity in channel and creative analysis
Support for these parameters evolves. Confirm availability in your GA4 property and wire them to custom dimensions if needed.
| Parameter | What it captures | GA4 availability (2026) | Example values |
|---|---|---|---|
utm_id |
Durable campaign identifier used for joins/imports | Populates Campaign ID; available for non-Google cost import and as a dimension | cmp-2026-013, lnkd-abm-t1-042 |
utm_source_platform |
The actual platform/vendor within a channel | Custom dimension; may not appear in default Acquisition | linkedin, meta, dv360, tiktok, hubspot-email |
utm_creative_format |
Creative format taxonomy | Custom dimension; best in Explorations/BigQuery | single_image, carousel, video, native, ctv |
utm_marketing_tactic |
Strategy label across buys | Custom dimension; not in all canned reports | abm, retargeting, prospecting, webinar, content_syndication |
Notes:
- These fields complement the five standard UTMs. Deep GA4 reporting specifics live in Chapter 14.
- Some platforms auto-append tags. If you standardize on these GA4 additions, include them explicitly in final URLs.
Campaign ID (utm_id) is the single reliable join key
utm_id is a unique, durable identifier. GA4 stores it as Campaign ID and uses it as the join key for imported datasets such as LinkedIn, programmatic, or offline cost files.
Why it pays off in B2B:
- Cross-vendor spend joins: Different exports, one key.
utm_idkeeps campaigns aligned across LinkedIn, content syndication, and programmatic when you import costs. - Offline-to-online stitching: Use the same
utm_idon tradeshow QR codes and the surrounding digital campaign to roll up performance. - Safe experiments: Run multiple creative variants under the same campaign name while separating them with distinct
utm_idvalues to avoid collisions in imports and reporting.
Implementation snapshot (parameter mechanics only):
- Pick a consistent ID pattern you can generate reliably (for example, cmp-YYYY-SEQ).
- Append
utm_idto every campaign URL. Match the same value in cost/import files. - Maintain a lookup for
utm_idβ campaign attributes in your warehouse or BI. Keeputm_campaignhuman-friendly; letutm_idcarry the joins.
Consider a Q3 ABM push running on LinkedIn and a syndication vendor. Both use utm_id=cmp-2026-045. Weekly cost files reference cmp-2026-045. GA4 merges spend with sessions on that ID instead of fragile name-matching.
utm_campaign as your βcampaign IDβ breaks cost joins. GA4 uses
utm_id as the Campaign ID for joining imported data. Keep utm_campaign human-readable; let utm_id be the stable, unique key.Disambiguate platform, creative, and tactic without polluting standard fields
utm_source_platformclarifies the vendor when you standardize source for channel mapping. If you useutm_source=paid_socialto keep channel grouping clean, addutm_source_platform=linkedinto compare LinkedIn vs. other social buys without breaking channel rules.utm_creative_formatcaptures the creative type without stuffing values intoutm_contentorutm_term. For a whitepaper launch, tag single-image and carousel variants and inspect CTR and CVR in Explorations.utm_marketing_tacticlabels the strategy behind the click. For mid-funnel sequences, use retargeting; for Tier 1 account outreach, use abm. This enables funnel velocity analysis later without renaming campaigns.
Sample URL:
https://example-b2b.com/pricing?utm_source=paid_social&utm_medium=paid&utm_campaign=q3_abm_t1&utm_id=cmp-2026-013&utm_source_platform=linkedin&utm_creative_format=carousel&utm_marketing_tactic=abm
Custom UTM parameters reflect your operating model
Analytics tools do not auto-capture custom utm_* fields. Plan to map them to custom dimensions or route them into your data pipeline.
Common B2B parameters that earn their keep:
| UTM | Possible Value/s | Purpose |
|---|---|---|
utm_region |
na / emea / apac | Route performance by geo program. Example: Compare APAC webinar ROI vs EMEA field event ROI under the same core campaign. |
utm_persona |
cfo / ciso / vp_it | Track how messaging performs by buying role without embedding roles into campaign names. |
utm_segment |
abm_tier1 / abm_tier2 / smb | Separate account tiers or market segments for pipeline analysis. |
utm_industry |
finserv / healthcare / manufacturing | Attribute content resonance by vertical when running verticalized landing pages. |
utm_partner_id |
pnr-019 | Attribute partner-sourced clicks in co-marketing initiatives. |
utm_content_theme |
zero_trust / genai_security | Group content families across dozens of assets. |
Capturing custom parameters (focused on mechanics):
- In GA4, create custom definitions that match the parameter name without the utm_ prefix (for
utm_persona, define βpersonaβ). Use session scope for session-level reporting; use event scope for hit-level analysis. - Validate in Realtime, then confirm population in standard reports, Explorations, or BigQuery export.
- If you use a non-GA4 stack, create equivalent custom dimensions/event properties to ingest these parameters.
An ABM team can tag utm_persona=cfo and utm_segment=abm_tier1, register both as session-scoped dimensions, then review demo rate by persona within Tier 1 accounts to guide creative refresh.
Only add custom parameters that will survive your next planning cycle
Use them when:
- A recurring reporting question cannot be answered with standard UTMs.
- Values can be standardized and enforced by the team.
- The parameter will stay stable for months or quarters to protect historical reporting.
- The dimension is useful across multiple channels or vendors.
Keep the parameter layer lean to prevent reporting noise
- Keep parameter names short and consistent (
utm_persona, notutmTargetPersonaRole). - Use controlled lists for values (naming rigor is in Chapter 8; apply only the final lists here).
- Do not include personally identifiable information in any UTM value.
Quick reference: configurations to get inspired from
| Use case | Parameter(s) | Capture method | B2B payoff |
|---|---|---|---|
| Cross-channel cost joins | utm_id |
Native Campaign ID + cost import | Clean spend-to-session attribution across vendors |
| Vendor granularity within a channel | utm_source_platform |
Custom dimension | Compare platform efficiency while preserving channel groupings |
| Creative testing | utm_creative_format |
Custom dimension | Fast, readable views of creative impact |
| Strategy/tactic labeling | utm_marketing_tactic |
Custom dimension | Separate ABM, retargeting, prospecting outcomes |
| Audience/region insights | utm_persona, utm_region, utm_segment |
Custom dimensions | Reliable breakdowns by role, geo, and segment |
A campaign dictionary turns utm_id into a universal key
Maintain a simple campaign dictionary outside your analytics tool, keyed by utm_id. Map attributes you care about: readable campaign name, product line, budget, segment, region, tactic, and flight dates.
- You can change naming conventions later without breaking joins.
- GA4 imports, BI models, and your warehouse all reference the same immutable key.
- Your link builder can auto-fill
utm_source_platform,utm_creative_format, andutm_marketing_tacticfrom the dictionary to cut tagging errors.
utm_source for stable channel mapping and push vendor detail into utm_source_platform. This keeps channel groupings intact while giving you head-to-head platform comparisons in Explorations and BigQuery.Build a 60-second GA4-ready URL and validate capture:
1) Pick any public page of your site. Append:
utm_source=paid_socialutm_medium=paidutm_campaign=q3_abm_t1utm_id=cmp-2026-999utm_source_platform=linkedinutm_creative_format=carouselutm_marketing_tactic=abm
?utm_source=paid_social&utm_medium=paid&utm_campaign=q3_abm_t1&utm_id=cmp-2026-999&utm_source_platform=linkedin&utm_creative_format=carousel&utm_marketing_tactic=abm
2) Open the URL in a fresh browser session.
3) In GA4 Realtime, confirm:
- Session campaign ID shows cmp-2026-999.
- Your custom dimensions (if configured) populate for source_platform, creative_format, and marketing_tactic.
If Realtime does not show custom fields, create matching custom definitions and retry.
Test your knowledge
Loading quiz questions...