Omniture SiteCatalyst 15: Context Variables & Processing Rules

A big deal was made at the Omniture Summit of the segmentation available in SiteCatalyst 15. While the advantage of this feature is obviosu to everyone, I do not consider this to be the most significant part of the upgrade of SiteCatalyst to version 15. I consider the greatest new feature of SiteCatalyst 15 to be two things, that when put together, could change how every implementation of SiteCatalyst is undertaken and managed on a regular basis. These two things are context variables and processing rules. Below, I will detail what context variables and the processing rules are, and then discuss how they can be used in conjuction to streamline a SiteCatlayst implementation.

Context Variables:

Those familiar with SiteCatalyst are aware of what events, props and eVars are. With the release of SiteCatalyst 15, there is a new type of variable, the context variable. Here’s what you need to know about context variables in general:

  1. There are an unlimited number of context variables
  2. There is no character limits on what you can place in a context variable
  3. You can name a context variable with any name you prefer (meaning that developers don’t need to worry about eVarX, propX, etc.)

To detail how a company might use a context variable, I will provide a code example of custom download measurement via traditional SiteCatalyst variables vs. context variables. The goal here is to track the name of the download, the URL of the download and a success event for the download.

Site Catalyst 14 and Prior (assume eVar1 and eVar2 are set by the implementation):

s.eVar1="download name"
if (s.eVar1){
s.prop1=”D=v1″
s.events=s.apl(s.events,’event1′,’,’,2)
}

s.eVar2="Download URL"
if (s.eVar2){
s.prop2="D=v2"
}

SiteCatalyst 15:

s.contextData['Download Name']="download name";
s.contextData['Download URL']="download url";

That’s it!

SiteCatalyst 15’s solution is a little simpler (at least in terms of coding), huh?! What makes this great is that giving direction to your developer for implementation is extremly straight forward, and anyone looking at these varibles in the code, should be able to easily determine what’s gonig on. Keep in mind that you can make the names of the context variables anything you like. So now that these context variables are in place, the developers are no longer needed in the implementation of SiteCatalyst (for downloads anyway!).

Next, Processing Rules will bridge the gap between the context variables and SiteCatalyst reporting. So below we will continue discussing the implementation of download measurement while using the context varialbes above with the new processing rules.

Processing Rules:

Many may be famailar with Omniture’s Marketing Channel Report and the processing rules that go along with that great feature (if not you should be!). Now, Omniture customers can create processing rules in a similar way that will allow them to set events and variables (as well as more advanced options) based on simple or complex rule sets. To demonstrate how this is done, we will assume that our developers have implemented the two “download” context variables above.

Now you can login to the admin console of SiteCatalyst and setup two easy rules:

  1. If “contextData[“Download Name”]” is set at anytime, move that value to eVar1 and prop1 as well as set event1
  2. If “contextData[“Download URL”]” is set at anytime, move that value to eVar2 and prop2

That’s all you have to do to implement custom download measurement once your context variables are in place.

Context Variable and Processing Rule Caveats:

This could warrant an entire other blog post, but here’s a brief summary of a few caveats of which to be aware when using context variables and processing rules:

  1. You will have to upgrade to the H23 version of the s_code (i.e. Omniture data collection code) in order to leverage context variables.
  2. While context variables can be unlimited in length, you will still need to be aware of the total 2080 character limite in Internet Explorer. Also, the props and eVars within the reporting itself still have their limits. The advantage of the unlimited length is that you could create a processing rule to evaluate the entire context variable’s value. Ex: if a campaign code contains “google” then set eVar3 as “Paid Search.”
  3. Don’t get your hopes up for SAINT here, the processing rules will not populate SAINT classifications.
  4. Context variables are not stored. Once they are captured and used in any processing rules, they are not maintained by Omniture. So, any processing rule (as should be expected) would not work on old context or other data.
  5. Obviously, the improper setup of a processing rule could compromise an entire SiteCatalyst implementation since processing rules are essentially a “VISTA Lite.”
  6. Debugging an implementation could be tricky using context variables. While you can see the context variables in a debugger, it is the eventual processing rules that would determine how a report is actually populated. This means that not only will you have to validate the site-side implementation, but you will also have to validate the setup of any processing rules. Here’s an example of what you might see in a debugger (easy to read, and no more c1, v1, etc…):
    SiteCatalyst 15 Context Variables in Debugger 

  7. The product string, cannot be set using context variables or processing rules. The product string is simply to complex. If advanced manipulation of the product variable is needed, then Omniture Engineering may need to be involved with an actual VISTA solution (unless you can do it on the code-side of course).

So, while segmentation is a great feature (maybe even the one that most users will value), the above features will enable Omniture customers to more easily manage implementations. The post above only scratches the surface of what can be done with context variables and processing rules. If you have any other questions,  leave me a comment below!

Omniture SiteCatalyst Plug-ins

Omniture SiteCatalyst is without a doubt one of the best Web analytics solutions out there. However, like all analytics solutions it be can difficult to implement when you are not a dedicated programmer or you do not have the available programming resources at your disposal. Many times Web analytics and other people that are responsible for the Web analytics function within a company will also not have access to server-side code to implement better page names and to set events and variables when you need to in certain circumstances. And this is where the Omniture SiteCatalyst plug-ins enter the equation.

The primary advantage of the SiteCatalyst plug-ins is that they allow you to implement SiteCatalyst and its more advanced features without the need to touch the server-side code. It should be noted thought that editing server-side code to pass dynamic data to SiteCatalyst is almost always the preferred avenue if it is available to you. That being said, Omniture has created many plug-ins that allow data to be sent to SiteCatalyst so that you can implement by only touching your basic “s_code.js” file that is a part of the implementation. Some of the more useful plug-ins (my opinion of course) include:

  • Append List (s.apl)
    • This function is one of the most useful and versatile for someone without easy access to source code. As an example of how this function might be used, assume that you have a registration confirmation page that needs a success event fired. By using the “s.apl” function, you can write some very simple JavaScript that will detect the Omniture page name and if it is a match, this plug-in will fire your success event. All being coded from directly within the Omniture JavaScript file.
  • Link Handler (there are 3 of these)
    • There are three flavors of the link handler plug-in. One controls clicks on regular links, another controls exit links and the last controls download links. The “s.downloadLinkHandler” plug-in is especially helpful if you want to track all of the PDFs on your site by setting a specific custom event for only clicks on PDFs, while at the same time sending the URL of the PDF into a commerce variable (a.k.a. an eVar). By using these three plug-ins, you can easily begin tracking the clicks of select links on your site.
  • New vs. Repeat Visitors (s.getNewRepeat)
    • The name of this plug-in says it all. By using this one, you will be able to segment all of your visitors and their interactions with your site into behavioral groups for new and return visitors. Very useful when the Omniture prop and/or eVar is correlated or fully subrelated, respectively.
  • Query Parameter (s.getQueryParam)
    • This might be the most basic plug-in, and is a part of almost every Omniture SiteCatalyst implementation that I’ve ever seen. While simple, it is extremely useful. Using this plugin, you can capture the value of any query string parameter and send that value to an eVar or prop. When you couple this plug-in with one like “s.apl” you have an easy way to capture your internal search phrases while at the same time setting a custom success event for internal searches.

These are but a few of the many plug-ins offered by Omniture. There are also more advanced ones such as:

  • Channel Manager (advanced tracking of your campaign data)
  • Cross Visit Participation (provides an understanding of campaign impact across visits)
  • Form Analysis (enables reporting on form errors, abandonment, etc.)

This last few are more difficult to implement in most cases, and you might consider contacting a consultant here.

The plug-ins are one of the most useful features of a SiteCatalyst implementation but are often overlooked. I think that a session on a few of the more advanced plug-ins would be an excellent idea for an Omniture Summit session, don’t you?