Adobe Analytics has similar functionality, but it works slightly differently.
Adobe Analytics has a pre-defined variable called s.campaign which is reserved for campaign tracking. However, the URL parameter that sends data to s.campaign is NOT pre-defined. As is usually the case with Adobe Analytics, it’s customizable and you can choose your own query string parameter. My clients often use “cid” or “cmpid” or “camp,” but you can use whatever you want.
In order to map data from that query string parameter to s.campaign, you’ll either need to:
- Implement the getQueryParam plugin.
- Specify the parameter and map it to s.campaign in your tag management tool.
In Google Analytics, there are five dimensions related to campaign tracking: utm_source, utm_medium, utm_term, utm_content, utm_campaign. Adobe Analytics was designed to use only one dimension / campaign ID, and then to supplement that unique campaign ID using classifications (formerly known as SAINT). These classifications add supplemental data into Adobe Analytics using that campaign ID as a key, and can be accomplished by either uploading a lookup table, or using Classification Rule Builder to write logical/conditional rules to automatically generate the classifications on the fly.
One benefit of Adobe’s method is that it gives you far more campaign-related dimensions. With Google Analytics you get five, but in Adobe Analytics you can have up to 30 classifications. I typically see classifications for Channel (paid search, display, social, email, etc.) and Campaign Name at a minimum. But it’s completely customizable and you can use it for whatever makes sense for your company: the Campaign Manager responsible for a campaign, what day of the week / time of day an email was sent, ad placement size, ad network, etc.
Another benefit of the classification method is that you can retroactively add or modify the supplemental data. If a campaign manager accidentally passed the wrong values to any of the utm campaign tracking parameters in Google Analytics, the data will be incorrect in the reporting. (It would be possible to write some transformation filters to correct it, but it would be a pain and not scalable.) In Adobe Analytics it would be a simple matter of either correcting/re-uploading the lookup table, or correcting the rules in Classification Rule Builder.
As far as what values to pass to s.campaign, here are the two most common and effective ways to handle:
- Using a obfuscated campaign ID – The value in the query string parameter would be some value like “234987423,” and then all the details about that ID would be captured elsewhere, i.e. in a simple spreadsheet, within campaign planning software, or in a tool like . Then the supplemental data would be exported from that other tool and imported into Adobe Analytics.
- Using a concatenated series of values – The value in the query string parameter would be a delimited, concatenated series of values like “soc:111:555,” where “soc” is a reference to the channel being Social, “111” is Campaign = Memorial Day, and “555” is Partner = Facebook. Using Classification Rule Builder you can parse those three delimited values apart using regex, and dynamically populate “soc,” “111,” and “555” into their respective classifications.
If you wanted to get fancy, you could also use sub-classifications (a classification on a classification) to give a friendlier name to the other values so instead of seeing “111” as a line item in the Campaign report, it would say “Memorial Day.”
So while Adobe Analytics doesn’t work exactly like Google Analytics, it does have similar (and arguably more sophisticated) campaign tracking functionality. The difference is that there is a lot more upfront configuration work to set up Adobe Analytics campaign tracking, whereas Google Analytics campaign tracking is ready to go out of the box. But on the flipside there is a lot more flexibility and ability to customize the data in Adobe Analytics, where you’re just stuck with the default in Google Analytics.
And honestly you can extend that observation to any feature that exists in both tools!