Back to basics – props, eVars and events
telleston | December 26, 2010
One of the fundamental things you need to understand about Omniture SiteCatalyst is the difference between an s.prop and an eVar, and just what events are and when to set them. They are at the heart of the product and provide the ability to customise it to suit your business needs.
If you don’t understand the difference, you’re going to be in a world of pain, and left dazed and confused.
This is, understandably, the most confusing thing to new SiteCatalyst users, and they take a bit of getting used to, especially when you start to combine them all together, but once you understand them, you’ll be on your way to generating custom ones that can really provide insight.
The clickable illustration on the right started as a Sunday afternoon musing, but then extended into a somewhat chaotic depiction of props, evars, events, campaigns, products and so forth – of which I’ve tried to explain a little more simply below.
s.prop definition
These are custom traffic variables. They are used to count the number of times that certain values are sent into SiteCatalyst. With the latest release of SiteCatalyst, you get 75 custom traffic variables to play with.
They are not persistent – meaning that once they get counted in SiteCatalyst they get forgotten. Nothing else can get attributed to them.
Traffic data includes visits, visitors, page views, sections, sub sections, internal search terms, user type (segments) etc. You can also enable pathing on these custom variables to understand the path that users take from prop to prop.
If you want to breakdown two traffic variables by one another, such as Pages by Browsers, then you must ensure that both variables are set on the same page. The correlation report only shows instances where two things occurred at the same time.
If you wanted to understand internal search terms that eventually get the user to a form, traffic props are not the way to go. For that, you need to use an eVar. And in many cases, when you set a custom traffic prop, you’ll also want to set a custom eVar too.
Mostly you’ll just pass a single value into an s.prop…maybe the name of the sub section, or the name of a tool, or the type of user currently logged in, or the category of content etc. There’s another type of s.prop, which is called a list s.prop. List props take a delimited list of values, and then they’re split out into separate line items in SiteCatalyst.
Bear in mind that list props cannot be correlated…despite the fact they’re broken out by SiteCatalyst into their individual elements.
eVar definition
These are called conversion variables and are generally set on different pages. Again, you get 75 of these too.
They are usually used to tie success events back to the last value that was stored in the eVar. By definition, these are persistent, and you control, through the admin, how long they remain persistent (visit or timeframe or when something happens like a success event), and how to allocate a success event to them (most recent value is the most common setting).
eVar relationships
eVars can be related (or broken down) by one another. There are two ways to achieve this – basic subrelations and full subrelations:
- Full subrelations can be broken down by any other eVar that has either full or basic subrelations enabled.
- Basic subrelations can only be broken down by an eVar that has full subrelations enabled.
- The third type is no subrelations and they cannot be broken down by anything.
By default, campaigns and products are enabled with full subrelations out of the box.
Consider this:
If you want to know which internal search terms lead to the most form submissions, and which search terms lead to tool usage on your site, then Search Terms needs to have Full Sub Relations enabled on it. That way you can break down Search Terms by any eVar, and the other eVars (such as Form Name and Tool Name) can also be broken down by Search Term.
Crossing eVars with sProps
You can’t. You just, plain, can’t. Accept this and move on.
You cannot cross traffic values with conversion values. They don’t mix. As soon as you remember that, and plan for that, you’re doing ok. That’s one of the reasons you generally set an eVar every time you set a traffic prop. You can correlate two traffic props together (browser and subsection for exmaple), and you can subrelate two conversion variables together, but in SiteCatalyst, you can’t cross props and eVars.
If you’ve got Discover, well that’s a different story. You can pretty much cross anything you like with anything you like, against segments and times on the fly, to your hearts content! Seriously, if you don’t have Discover, get in touch with your account manager for a demo – you will NOT look back. And if you have a lot of eVars that you want full subrelations on, then you’re a prime candidate for Discover, not to mention if you’re using ASI slots for segmentation reasons – or you just can’t get that report that you’re looking for. Discover will do it for you. Period.
Events
Success events are counts of specific things that occur on your site, usually things like a form view, or a registration, or a login, or an application. Success events are set and tied to an eVar. Your reports will show the number of times that success events have been set against the specific values on the eVars.
Normal success events, such as when a registration form is viewed and then completed, takes two success events, one for the view and the other for the completion.
So, let’s assume you have a registration form. You want to know how many people view the form and how many people submit the form.
On the registration form page, you’d set the following:
s.events = "event1"; // this is your form view event
s.eVar1 = "Registration Form"; // this is the name of the form
Then, on the thank you page, you’d set the following:
s.events = "event2"; // this is your form complete event
s.eVar1 = "Registration Form"; // this is the name of the form
Notice that eVar1 is set to the same name in both instances, but has different success events set.
In SiteCatalyst, you’d create eVar1, named something like “Forms” which will automatically create a new report for you called Forms. You’d view the Custom Conversion > Forms report, being eVar1, add in the metrics Form Views and Form Completes, and it will show you how many form views have happened (event1) and how many form completes have happened (event2) during the specified time period.
Special Events
Then there are special events; product views, shopping cart view, open, add, remove and checkout, and finally a purchase. These are generally used for measuring products purchased and shopping cart activity.
A product example
So let’s assume that you are a financial institution and have information on various credit cards as well as an application form for each type of card. You want to know how many times the card information has been viewed, as well as applications started and submitted, across a multi-page application process. Additionally, you want to track the credit limit applied for on the card application.
On the credit card information page, you set the special event prodView (and it’s also best practice to set another success event as the prodView event is only available within the product reports).
So, you could use the following:
s.events = "prodView,event3"; // product view and a success event
s.products = ";Credit Card XYZ"; // this is the name of the product
s.eVar2 = "Credit Card XYZ";
The product string usually takes many more parameters, but as we’re only setting it for a product view, we only need to set the name of the product in the product string.
The other parameters, that are required when something is purchased, are as follows:
- Category (legacy – leave blank so that you can use Classifications to better group products)
- Product Name
- Number of Units
- Total Revenue from Units
- Events and eVars (but we’ll save those as they’re more complicated but can be used for things like tracking shipping costs or discounts etc)
Note that you MUST start the product string with a semi-colon if you are not using the category. You don’t generally use the first parameter, Category, because the best way to do that is to use classifications to group products together.
So, now you’ve got the product views measured, each time someone goes to the product page, event3 will be set against eVar2, and prodView will be set against the product Credit Card XYZ. ProdView is one of those special event counters.
To get the Application Start metric, on the first page of the application you set the following:
s.events = "event4"; // application start event
s.eVar2 = "Credit Card XYZ";
To get the product purchase, the revenue, the amount and the successful submission, on the application thank you page you’d set the following:
s.events = "purchase,event5"; // purchase and application submitted event
s.eVar2 = "Credit Card XYZ";
s.products = ";Credit Card XYZ;1;10000"; // product;units;total revenue
s.purchaseID = "123456789"; // unique application code
The events set include the special event “purchase” and event5, in this case, the application submitted event.
eVar2 is the name of the product for the conversion reports.
Products lists the name of the product, the number of units sold (1) and the revenue (10000 – in this case its the credit limit applied for).
The purchaseID would need to be a unique identifier, possibly the application number, so that SiteCatalyst can de-dupe any entries.
Now you have your product reports populated with the number of units sold and the total credit limits applied for, being the revenue amount (if that’s how you track revenue).
To sum it up
Props are traffic variables. eVars are conversion variables. Events are things that happen on your site and are tied to conversion variables. You can’t cross the two together, but can cross props and you can subrelate eVars. Oh, and you need to get Discover (‘coz it rocks). Did I mention that already?
Related Posts
- Time spent by Traffic Source
- Flowplayer and SiteCatalyst v15
- Success Event Pathing
- Brightcove Video in SiteCatalyst 15
- What are our members doing?
- Hello 15!
- Elusive engagement – Part II – Visitor scoring
- Deeper internal search insights that’ll help with content needs
- Moving beyond business-based segmentation
- Migration frustration – SiteCatalyst 15

See, the more I read about this, and the more I look at the omniture reports, the less enthusiastic I am about props.
Looking through your post it struck me again; why, in the absence of Discover, would you actually use props for anything at all?
You can’t correlate the information to anything, and you end up setting and eVar when you set a prop anyway for anything useful. You can’t even breakdown props into a hierarchy (eg. sub-section must include section in the value, because section is completely independent to sub-section in reporting).
All you get is yet another page views style custom report. It’s just as bad as link tracking.
Your diagram mentions enabling pathing for props; even then, surely only a handful of your props are useful (site sections, perhaps?)
I’d be thrilled to see a blog post from you describing how props are actually useful…
Thanks for the comment Doug – I’ll put a post together to show how props are useful.
You are largely correct though, the majority of value comes from eVars and events. You can however correlate props together, breaking one down by another. They break down as a 1×1 or a 5×5 breakdown. You’ll need to set up the correlation in the admin section.
The other thing you might want to look at is the hier1-5 variables if you’re looking at drilldown reporting.
Enabling pathing on props…there’s a couple of interesting things you can get out of it. If you are concatenating values together, such as User Type (customer, non customer) + page name into a prop, or campaign name + pagename, or keyword + pagename etc, and enable pathing on the prop, you can see where users go, and, more importantly sometime, adding pathing to props enables other key metrics on custom traffic variables.
So, I’ll definitely put a post together about props…
The next post describes value from s.props, using them for segmentation purposes.
I’ve read some good stuff here. Definitely worth bookmarking for revisiting.
found your site on del.icio.us today and really liked it.. i bookmarked it and will be back to check it out some more later
Hi Tim,
I have a question about Success events. When I an event in a javascript function that is called by the onClick trigger . And i record the event using s.tl() and not s.t(). Do I need to set s.pageName again inside the function to know what page the button was clicked on?
For example, if i have a “Like” button on my website. i will set
s.events = event16 (assuming event16 is set for like by admin)
now do i need to set s.pageName = My article ? along with event16? or will the event be tied to the pagename set when the pagename was loaded?
I ask this because my javascript events seem to be reported for pages that don’t contain those buttons, i have no idea how ‘add to cart’ can happen on the homepage when there is no add to cart button on our homepage.
Hey Neha
Best thing for you to do is to set an eVar with the value of the pageName before setting the event and firing s.tl() – that way you should be able to apply the success event to the evar properly to see the correct values. I’m assuming that you want to see which pages were “liked” by your audiences… Don’t forget to set s.linkTrackVars and s.linkTrackEvents during the onClick – check out page 104 of the implementation guide as it has specific info on this type of measurement.
In terms of the buttons and add to cart question – when success events are applied across the Pages report, they are done so using linear allocation, which is why you’re getting data applied to those pages even though there is no ability to purchase from those pages – the purchase is still being “attributed” to those pages.
Hope that helps.
Tim
I am a trainee and it really helped me a lot. Thank you a lot.