Before: ad-hoc UTM strings and governance debt
- Each teammate assembles UTM strings independently from memory or a shared spreadsheet - utm_campaign ends up as spring_launch, Spring Launch, and spring-launch across different placements for the same campaign.
- A different long URL is created for each channel, meaning a destination change requires updating every placement separately.
- Typos and casing differences create phantom campaign dimensions in GA4, splitting attributed traffic and making channel reporting unreliable.
- No way to tell which UTM values are in use across the link library without opening each link individually.
- Post-campaign audits require manually correcting reporting data or rebuilding campaign views to account for naming drift.
After: shared presets, consistent tags, and one branded link per placement
- A UTM preset captures the agreed-upon values for the campaign once. All teammates apply the same preset, so spring_launch_2026 stays spring_launch_2026 everywhere.
- One branded short link is distributed across every channel. The referrer dimension separates placements in reporting without a separate link per channel.
- Standard UTM keys are normalized to lowercase automatically and blank values are dropped, so canonicalization happens at creation time rather than in a post-processing step.
- Preset names in the library make it easy to see which campaign conventions are in use workspace-wide and to update them for the next campaign.
- For internal grouping, tags and spaces organize links alongside attribution metadata without interfering with campaign dimensions in external analytics tools.
Consistent UTM naming enforced at creation time, one branded link per placement, and clean campaign dimensions in downstream reporting.