Starting a Code Syntax from Scratch

No Single Answer is Right for Everybody
This is the fifth time I’ve tried to write this blog post. It’s just really hard to talk in general terms about code structure, when that structure does (and should) vary greatly from one company to the next.
When Omniture released SAINT over a decade ago, they included a custom code generator which is still available in the tool today. Have you ever noticed it? It’s right under the SAINT Classifications link in SiteCatalyst’s Admin menu.
Omniture's Generic Campaign Management Tool
But even though it enjoys such a prominent placement, in all my years I’ve never encountered a company that actually uses it to generate their marketing codes. I believe that’s because they only offer two structural options: (numeric) Auto Assignment and Custom. That means either they’re just going to count up from 1 and make each code the next available number, or they’ll stiff you with the job of creating each and every tracking code yourself.
Now, it’s true that in a perfectly classified world, the tracking code syntax is irrelevant, so using an automatically assigned number shouldn’t hurt. If you’re one hundred percent sure that your SAINT tables are right, then you can ignore the Tracking Code report itself and wholly rely on the associated reports you’ve created. But bear in mind that things can change. You might wake up in the morning and find that there has been an influx of new campaign traffic using codes that were never classified. If they all start with “EM”, you can begin your investigation with the email team. But if there’s no relationship between the code and the initiative it stands for, then you don’t have any clues to follow.
Best Practices for Code Structures
I have examined hundreds of different tracking code styles, and the ones that seem to work the best are a combination of group indicators and numeric assignments. Remember that you won’t be able to tell one numeric assignment from the next, so you should save that part for most trivial aspects of the initiatives you’re tracking.
In a small to medium-sized business, codes usually begin with a marketing channel indicator, such as PPC or EM. In the enterprise space, there is often one or two preceding elements, such as Division or even an Internal vs External indicator. You should only add identifiers, however, to attributes that will be placed alongside one another in the same report. If, for example, you have one dedicated variable for External Campaigns (such as banner ads), and another one for Internal Campaigns (such as onsite promos), then you don’t need the Internal vs. External identifier in the tracking code. But if you have a variable that captures both internal and external values, then such an identifier might be useful.
A consistent delimiter breaking up the different sections is also a best practice, such as the pipe symbol, colon, dash or underscore. Here are a few common patterns that I’ve seen:
Channel:Publisher:Number (e.g., PPC:Google:6738, EM:MailChimp:312, etc.)
CampaignName:Date:Initiative (e.g., Fun-in-the-Fall:2012/11/24:Adidas-Banner-Horiz-v12)
Remember, you can have much more rich information about each tracking code in the SAINT classification tables, while keeping the tracking code elements simple (though still unique). Simply ask yourself: will I ever need to filter out all of the _______ tracking codes? A phrase like “Paid Search Channel” might make sense. But if you fill in the blank with a word that’s too granular, then it probably should not have a dedicated spot in your code architecture.
Help Us Help You
The final reason for striking a balance in your code architecture is that doing so will let you get the most out of Claravine. If your job today is to create a bunch of links for an email you’re pushing out on Friday, and you start the process by selecting a pattern like this:
Then we can help you fill out the SAINT tables with correlating values in the tables you’ve uploaded in the past that follow this same pattern. We might, for instance, Pre-fill the Media Type report and Email Distributor reports with “Email” and “Direct Target”. We might also hide all of the Social Media and Search-specific columns in your SAINT table because they’re not relevant. And of course we would take a look at your previous codes of this type to ensure you’re getting a unique number appended to the end of the code.

Based on records in the SAINT file which match this code pattern, Claravine hides inappropriate columns, presets some fields, and offers guidance for others.

The whole point is to make the process of getting new codes so simple that anybody in your organization can do it on their own, and do it right. A well-considered code structure greatly enhances our ability to succeed in that goal.

Related Content