The Basics of Marketing Tracking Parameters



One of the simplest ways for analysts to assess the success and failure of their marketing is through the analysis of marketing tracking parameters. These are often called query string parameters, query parameters, landing page parameters, link decorations, UTM codes, Campaign IDs, and probably a half-dozen more. What's key is understanding how they work, how they are captured, when they are blocked, and how they can be analyzed. So let's dig in!

One of the simplest ways for analysts to assess the success and failure of their marketing is through the analysis of marketing tracking parameters. These are often called query string parameters, query parameters, landing page parameters, link decorations, UTM codes, Campaign IDs, and probably a half-dozen more. What's key is understanding how they work, how they are captured, when they are blocked, and how they can be analyzed. So let's dig in!
How Tracking Parameters Work
Before we dive too deep into how to use them, let's quickly discuss what they are. Tracking parameters are all about distinguishing referrals to your website. These parameters, in coordination with the referring domain, are used to bucket visits into a marketing channel. For example: Direct, Email, Referrer, Display, Organic Search, Paid Search, Organic Social, Paid Social, and more. These are standards that work the same regardless of your digital analytics tool: Adobe Analytics, Adobe Customer Journey Analytics, Adobe Product Analytics, Google Analytics 4, or others. They all rely on the same basic logic, though some use hard-coded, specific query parameters.

I've organized the table above purposefully - the difference between each row is the Referring Domain and the Query Parameter. Direct and Email look the same, but if there is a query parameter in the landing page, then you know that the user clicked through on an email. Organic Search and Paid Search both come from Known Search Engines, but only Paid Search will have the Query Parameter.
How Tracking Parameters Are Blocked/Lost
Tracking Parameters are far from infallible. There are many reasons that they may be missing from your data, so if you happen to be drilling down into your data and see something that doesn't make sense, don't sweat too much. It's very possible that the query parameters were stripped along the way. Query parameters are finicky because it's possible that any of the below could happen:
- Browser removed them automatically (see Cory Underwood's fantastic article that describes this in detail)
- Browser extension automatically removes them (I think I've heard that Ghostery can be set to do this)
- Ad Agency forgot to include them (or applied the wrong query parameter)
- Visitor clicked from the landing page before the initial tag was called and the query parameter was never sent to the analytics product
- And more..
There are a myriad of reasons why query parameters will never be perfect. The Internet isn't perfect, so don't ever expect your data to be perfect.
How Tracking Parameters Are Captured and Analyzed
Well now comes the fun part - how these finicky, yet amazing, parameters are captured and used for analysis. As with so many things in digital analysis, there are many ways to skin a cat. So I'll do my best to focus on the most important questions and answers. Here's a table to help you differentiate many of the key analytics products:

Adobe Analytics - Adobe Analytics is often set to use the s.campaign variable to capture query parameters used for marketing attribution. Data from this variable is tied to the Tracking Code dimension, which customers can then classify and use in their Marketing Channels setup within the Analytics Admin Console. Since Adobe can handle any query parameter, customers that are already using UTM codes can continue to use them. These tracking parameters are usually captured using a tag management system, but Processing Rules in the Admin Console can also be used to pull them into variables server-side. If an Adobe customer is using multiple campaign parameters (like multiple UTM codes), they will use these methods to concatenate them into a single variable for simplicity. Adobe Analytics customers can apply 10+ attribution models to virtually any metric using Attribution IQ, Adobe's suite of features that can be applied to metrics in Freeform Tables, Calculated Metrics, and in an Attribution-specific Panel. These models utilize custom lookback windows to really hone the touchpoints that are provided credit for attribution.
Adobe Customer Journey Analytics - Adobe Customer Journey Analytics is even more flexible than Adobe Analytics. Tracking Parameters can be set to any value, like UTM codes, CID, or something custom and specific to the customer. Similar to Adobe Analytics, query parameters can be pulled into XDM Fields by tag management systems. If using the Adobe Web SDK, customers will oftentimes continue to use the same fields for CJA as they'd have used in Adobe Analytics, which would be marketing.trackingCode, which is mapped to the Tracking Code dimension in Adobe Analytics. Marketing Channels in Customer Journey Analytics are set up using Derived Fields. This CJA feature is fully destructible and retroactive, which means logic can be used to fill in any gaps that are discovered in parameter capture. Adobe provides an out-of-the-box template for Marketing Channels which can be customized based on any query string parameter.
Here's an example of the initial steps for building this Derived Field:

Interestingly, CJA customers don't even have to manually use their tag manager to extract parameters. In addition to Derived Fields, CJA Data Views provide out-of-the-box URL parsing capabilities, where any query string can be extracted from any URL, retroactively and destructibly. If an Adobe customer is using multiple campaign parameters (like multiple UTM codes), they will use these methods to concatenate them into a single variable for simplicity. Just like in Adobe Analytics, Customer Journey Analytics customers can apply 10+ attribution models to virtually any metric using Attribution IQ, Adobe's suite of features that can be applied to metrics in Freeform Tables, Calculated Metrics, and in an Attribution-specific Panel. These models utilize custom lookback windows to really hone the touchpoints that are provided credit for attribution.
Google Analytics 4 - (warning, I work for Adobe. So my knowledge here has some gaps, but I'll do my best and update as people correct my mistakes). Google has done a great job standardizing the concept of Tracking Parameters in the industry. When an analyst says "UTM Codes" we instantly know what they're talking about: utm_source, utm_medium, utm_campaign... and some new ones: utm_source_platform, utm_id, and others. Each of these are automatically linked to pre-built Dimensions in the GA4 interfaces (Reports and Explore, as well as exports to BigQuery). Hard-coding these variables is a bit of a blessing and a curse. Standardization is wonderful as it means consultants can easily go from one brand to another and understand where data is captured, plus blogs like these can all reference utm_source, and every single GA user has the exact same definition for it. However, this results in inflexibility; which means it's difficult to fix issues based on lost or fat-fingered parameters, or if you're moving from one analytics tool to GA, you may have to change the query parameters to UTM if you weren't previously using them. Finally, GA4 doesn't provide analysts with many options when it comes to adjusting the attribution models. First Touch, Last Touch, and a Data-Driven/Algorithmic model are the standards. For further attribution analysis, you'll want to send the data into BigQuery and utilize SQL.
How Tracking Parameters Are Captured In Mobile Apps
If you've spoken to anyone that has been around the analytics or development industry for a little while, you'll probably have heard them tell you how Mobile apps are a completely different animal. From an analysis perspective, they're different, but not all that different. All the analytics features mentioned above apply equally to both website data and mobile app data. So what's so unique about mobile apps? No JavaScript, which means no real tag manager, which means no referring domain or query parameters. That means Adobe and Google customers no longer have the option to use simple logic to define the marketing channel. Instead, mobile app acquisition-specific vendors are required. Companies like AppsFlyer are recommended by Adobe as a Platinum Technology Partner for app acquisition, as well as Branch and Singular.
Each of these technologies seem to work in similar ways: when an ad for a mobile app is tapped, the ad links the user through a redirect via the mobile app acquisition technology vendor. Usually, a Device ID is captured and saved by the vendor. The user is then redirected to the App Store (iOS/Android Play) where they can install the app. Once installed, the user loads the app, and the acquisition technology vendor's SDK sends the Device ID, which then attributes the installation back to the ad. There are all sorts of reasons this can break, so it's worth spending a significant amount of time reviewing the technology before signing any contracts. I personally found this help article from AppsFlyer to really help clarify all the different ways they attribute across iOS and Google.
Note that these technologies are not helpful for attributing organic app discovery. If your app is found via an unpaid link (either in the App Store or elsewhere), it will not be properly attributed.
And that's it! Much more than the Basics that I initially promised to you, so hopefully you learned something!