SAINT Classifications

The topic today is slightly removed from your typical developer day-to-day activity, but it’s nevertheless important in the context of Adobe Analytics.

Think of a report that shows tracking codes, like so:

Campaign Tracking Codes Report
Apart from the person responsible for those codes, no one will ever be able to read this report. Even that person might have to look up the values.

[In the voice of Ian McKellen] Pointless, really.

For that report to be useful we need to turn those campaign IDs into something readable. Campaign names might be a good first step.

Let’s do that:

Campaign Names
The report now looks like this:

Campaign Names Report
Now most people in the company might understand the report, at least most people in marketing, i.e. those who a) know what a campaign is and b) care about how they perform. So far so good.

At a slightly higher level, the report is still useless. If someone asks your friendly colleague in marketing about the general performance of email campaigns versus paid keywords, this report won’t help.

We need to aggregate!

Your friendly marketer was planning ahead and kept to a strict schema when assigning new campaign IDs, which makes it easy to just add up the numbers. As an example, all those tracking codes starting with “EML” are definitely email campaigns.

If we add them up and also aggregate the others, like so:

Campaign Types
We get this report:

Campaign Type Report
That is a useful report! And if you look closely at the tracking codes above, there seems to be more information encoded.

It is up to the marketing department to figure out a good schema for their tracking codes. Here’s a couple of ideas:

  • Use three letters to designate the campaign channel or type, like email or PPC.
  • Assign 6 digits for year and month. That can be aggregated into years, months, or seasons!
  • Reserve a couple of letters for the initials of the person responsible for the campaign. Aggregating that would give us a direct comparison between people working with campaigns.
  • Finish the code with some digits that increment, per channel or person.

Each of these aggregations can be modeled in Adobe Analytics using SAINT Classifications.

In essence, SAINT creates new reports based on existing ones. It does that by aggregating the data when the report is requested. In a sense, the Classifications created using SAINT are similar to the View in the database world. A very powerful tool, and one that is not nearly used enough by most marketers!


Use cases for SAINT Classifications: making data readable (examples would be tracking codes or numerical dimensions like ‘number of visits’), aggregating and therefore abstracting data (like the Campaign Channels we mentioned above, email, PPC, etc.), correcting typos (“Homepgae”). I’m sure there’s more.

So how do you add the meta data into Analytics?

Well, the tool is called SAINT and it has four entry points for meta data, so to speak.

The Manual Way

You basically upload a CSV file that looks almost like the list above, with just some headers added:

CSV file for import into SAINT

While this is so easy that even a non-technical person can learn how to do it, the manual way obviously doesn’t scale very well.

SAINT Bernard

Our colleagues in Engineering Services have created a tool called SAINT Bernard that partly automates the process of creating and uploading classifications for campaign tracking.

Most marketers are easily able to work with that tool, but since it is done by Engineering Services, it comes at a cost.


Yup, there’s an API that let’s you automate the whole process! You can use the SAINT API to upload data straight into SiteCatalyst and no one has to do anything manually.

This is great for companies that use some sort of a campaign management tool. The data in that tool can simply be pushed into Adobe Analytics and no further work is required.

The obvious downside is that someone needs to develop the code that collects the data and pushes it into SiteCatalyst.

From you point of view as a developer, that might not be a downside, of course.

Auto Classifications

Currently in beta, but hopefully we will soon have auto classifications within Analytics. When the time comes we shall write about them. Let’s just leave it for now with one little teaser: they’ll support regular expressions.


14 thoughts on “SAINT Classifications

  1. Dear Jan, Many thanks for writing some of the most useful and enlightening articles on Adobe Analytics. There is one article that it seems nobody has written – and that is how Classifications work with Allocation and Expiry on eVars and Participation for s.props. For example if we have s.campaign set to Last Touch allocation, and a 30 day expiry period > will all our classifications inherit this allocation and expiry?
    If we have a traffic variable with Classifications, will the classifications inherit the setting for Participation Metrics? I have searched high and low and not found any documentation, post or article making this explicit. I know that pathing is not possible, what happens with all these other settings?


    1. Hi Leigh,

      It’s a good question, and it has a surprisingly easy answer.

      Classifications are applied only at the moment when you load a report.

      The system reads the underlying report data, then maps values according to how they are classified. It then removes duplicates for the Visits and Visitors metric, and that’s it.

      All of the settings of your eVars and props apply as they always would.

      Does that make sense?


      1. Hi Jan, Many thanks for getting back to me. One of the reasons that I was asking is because I’ve seen a non-standard implementation where the s.campaign and the s.products variable were being classified, but no values were being passed directly to the variables – only to classifications. From your answer, I can know that the settings will still apply to all of the classification values. This is very helpful.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.