How-to guide

How to set up UTM tracking that does not corrupt your reporting

UTM tracking goes wrong because the implementation lives in nineteen different spreadsheets owned by nineteen different teams. The fix is taxonomy, validation at intake, and a single source of truth.

Steps

  1. 1

    Define the taxonomy

    Finite set of allowed values for source, medium, and campaign. Lowercase, no spaces, hyphens not underscores. Document and publish where every team that builds links can find it.

  2. 2

    Build a campaign builder

    Spreadsheet, internal tool, or HubSpot tracking URL builder. Anything that prevents free-text entry. Validation at intake is significantly cheaper than cleanup downstream.

  3. 3

    Lock down the campaign field

    Campaign names should follow a structured pattern (year-quarter-channel-program-asset, for example). The structure makes downstream parsing and rollup possible.

  4. 4

    Validate at the destination

    Build an alerting query that surfaces malformed UTMs entering your analytics platform. Fix the source within 24 hours; do not let bad data accumulate in the report layer.

  5. 5

    Reconcile to lead source

    Lead source in the CRM should be derived from the first-touch UTM, not entered manually. The derivation logic lives in marketing automation; the CRM consumes the result.

Common pitfalls

  • !Free-text UTMs across the team. Every typo is a new dimension in the report.
  • !Not standardizing case. Source=LinkedIn and Source=linkedin become two reporting buckets.
  • !Manual lead source entry overriding the derived first-touch attribution.

Frequently asked questions

QShould we standardize on lowercase or title case?+
Lowercase. Most analytics platforms are case-sensitive on dimension values, and consistent lowercase eliminates the most common reporting fragmentation.
QDo UTMs work on internal links?+
No. UTMs on internal links overwrite the original campaign attribution and break first-touch reporting. Use a different mechanism for internal click tracking.
Apply this in practice

Need senior help applying this in your environment?

Reading the guide is one thing. Translating it into the live system you actually have to operate on Monday is another. That's where the conversation usually starts.