For any organization trying to understand the effectiveness of their marketing initiatives, one of biggest challenges they face is having the ability to segment campaign data, making it relevant to each level in the organization. This includes high level information for the CMO that wants to see conversions/revenue by all channels (not just online), Director-level information such as online channels (paid search, social media, direct traffic) and detailed information for the creative designer including version number, ad group and campaign ID. Independent of the web analytic tool(s) you’re using, the first step to accomplishing this goal is creating an effective campaign naming taxonomy to identify the important attributes about your campaign.
Before we get into the details around how to make this work in your business I’d like to talk about why using translation/lookup tables are not good enough. Many of the popular tools allow you to translate a cryptic campaign ID such as “29087590928” into a long list of attributes that give the detailed information you need such as channel, ad group, budget, etc. What isn’t always possible via these translation tables is the ability to segment other reports and dimensions by those attributes. Additionally, applying these translations after data collection makes it difficult to produce reports that show how users interact with different campaigns before converting (Ex: campaign1,campaign2,campaign3), because the string of multiple campaign values can’t be translated by the lookup table. Don’t get me wrong, I love translations tables; however, they cannot satisfy every requirement and should not be used to substitute a proper campaign naming strategy.
Step One: Come up with attributes that cater to all levels of the organization.
Depending on your role in a company, you may be responsible for optimizing specific campaigns for a single channel, managing multiple channels, or approving the yearly budget for all channels. The key is to document the attributes or fields important to each level of the chain. For example, upper management may only be interested in knowing which channel is yielding the highest ROI. The creative director may want to know what ad group is performing the best, and the ad creator is only interested in what version performed the best for a specific ad. Here are some of the most common attributes I hear from clients:
Campaign Name, Channel, Ad Group, Version Number, Date Range, Referring Domain and Campaign ID
Step Two: Naming rules for each attribute
The next step is to come up with naming rules for each of the attributes. For attributes that have a small list of possible values, it’s best to keep the value as short as possible. For example, if I was going to come up with guidelines for channels, I recommend creating short codes for each possible channel. Paid Search could be “PPC-”, banners “BNR-“, affiliates “AFL-“, and so on. You get the point. Do this for each attribute that has a small predetermined set of values.
Step Three: Putting the attributes together
Once you have identified the attributes that matter to your business, it’s time to put them in order. I generally recommend keeping them in a hierarchical order, but always start with the channel. This allows for easy identification when parsing through the names. If I was going to use Campaign Name, Channel, Ad Group, and campaign ID, I will order them like this:
I typically recommending using dashes (“-“) between attributes, and capitalizing the first letter in each word to replace spaces. Whatever you do, do not add spaces between words as they will corrupt the URL and results in the user setting a 404 error page.
Here is an example value for a bike safety campaign from a banner, version 2 under the ad group “Helmets”:
Here comes the tricky part, adding logic to your data collection file to find the campaign parameter and parse out the different attributes so they can be translated and passed accordingly. If you use SiteCatalyst, the Channel Manager plugin makes this easy. If you use any other tool, you may need to contact a developer to help you out. The point is to deconstruct the value and extrapolate any meaningful information you can. Using the example from step three, you know the visitor came from a banner because the value starts with “BNR-“. You can take this and translate this into the friendly name “Banner” and pass this in its own variable. Doing this allows you to create reports with conversion metrics for each attribute regardless of the tool you use. Can’t get your team to update your lookup file all the time? No problem. You now have a solution that works and gives you a much broader range of flexibility when reporting on your marketing efforts.
We’ve made this work for practically every tool in the space, so feel free to contact us t if you need help deciding how to implement this type of logic in your code or deciding what variables to use.
Step Five (And possibly the hardest): Getting your organization to follow the rules!
You’ve put a lot of thought into designing this syntax and putting it into place, now you need to make sure everyone follows it. For tips on how to make this more successful, see our post on “Process Creation
Now that you’re collecting your data in ways that allow you to create segmented reports based on your target audience, get cracking! I welcome any questions or comments about the importance of a great campaign naming strategy. Email us at firstname.lastname@example.org
or comment below!