UTM parameters are captured from the query string of the first pageview of a session (aka the landing page) and are stored as session-level properties. This means if a UTM parameter appears on another pageview within the same session, it won’t update any of the built-in UTM properties, though it will be captured within the query property.
The UTM properties that are autocaptured by Heap are utm_source, utm_medium, utm_term, utm_content, and utm_campaign. Any additional or custom parameters added to a query string will still be autocaptured but they will be stored within the Query property. See our Autocaptured Data reference guide for more information about these properties.
If you are missing UTM data in Heap, it is important to verify the following:
- That the UTM Parameters are present on the landing page.
- That the UTM Parameters in the URL follow the best practices for setting UTM parameters.
Redirects are a common cause of missing UTM data, since they may strip UTM parameters from the URL before Heap has a chance to load.