In earlier posts, I described the three types of Omniture SiteCatalyst variables which are Traffic Variable (also known as sProps), Success Events and Conversion Variables (also known as eVars).   There is, however, one variable type that is a bit unique and that is the Products variable.  In this post, I will explain how the Products variable is different and share some interesting ways it can be used (even if your website doesn’t promote Products!).

Understanding The Products Variable
As its name implies, the primary use of the Products variable is to store the name of the Product for which a website action is taking place.  For example, if you manage a retail website and a visitor views a Product Detail page, you might choose to set a Product View Success Event so you can see how many Product Views your website had each day, week, month, etc…  But if you want to see which Products visitors were looking at, you would need to capture the Product name or a Product ID# in a variable so that you can break down the Product Views Success Event metric by Product.  For those who have read previous posts, your first instinct should be to use an Conversion variable (eVar) to capture the Product Name, since eVars are used to break down Success Events.  While you could certainly do that, Omniture has assumed that many websites will have Products so it has created a special Products variable for this exact purpose.  Therefore, it is recommended that you capture the Product name or ID# in the Products variable (s.products).

“What is the difference between an eVar and the Products variable?” is the next question I get from clients (which is why I am writing this post!).  There are some subtle differences between the Products variable and Conversion Variables (eVars) that you need to understand.  They are as follows:

Multiple Values
The Products variable allows you to pass multiple values to it whereas eVars are limited to one value.  The importance of this cannot be understated.  When a Success Event is set in conjunction with an eVar, whatever value is passed to the eVar gets credit for the Success Event.  But if multiple Products are passed to the Products variable at the same time that a Success Event is set, each value passed to the Products variable will get credit for the Success Event.

Not Persistent
Another way in which the Products Variable is different from Conversion Variables is that it is not persistent, meaning that it does not retain its value from one page to the next.  In this respect, it is somewhat similar to Traffic Variables.  For this reason, if you need to associate multiple Success Events with specific Products, you must set the Products variable every time you set Success Events.  For example, if a visitor adds three products to the shopping cart, you would pass all three to the Products variable when you set the Cart Add Success Event, but if later the visitor purchases one of those products, you need to pass that product to the Products variable again when you set the Purchase Success Event.

Special Parameters
Unlike Conversion Variables, the Products variable allows you to set some special parameters at the same time the Product value is set.  While this can be a bit confusing for newer SiteCatalyst users, I will do my best to explain this in non-technical terms.  To begin, it is important to see the full Products Variable String with all of the potential parameters that can be set:

s.products=[Category1];[Product1];[Quantity];[Total Price];[Incrementor];[Merchandising], [Category2];[Product2]; etc…

The following will describe each:

[Category] – This represents the Product Category.  It is not recommended that you use this parameter due to the fact that it ties the Product to the first Category that it is associated with and it cannot be changed.  There are now better ways to assign Products to Product Categories so this parameter is normally not set and remains primarily for historical purposes.

[Product] – This represents the name or ID of the Product.  If you pass an ID, you can always use Classifications to upload friendly names and roll products into Categories.  If you will be passing a lot of Products at one time, it is recommended that you use ID’s instead of full product names to limit the length of the overall product string so you do not exceed browser character limits.

[Quantity] – When used with the Purchase Success Event, this represents the quantity of the Product being purchased (i.e. visitor is buying two memory cards)

[Total Price] – When used with the Purchase Success Event, this represents the total price for the Product being purchased (i.e. two memory cards total $200 for both)

[Incrementor] – This is an advanced topic which I will be covering in the future, but in general, you can set an Incrementor Success Event such that you manually pass a currency amount or number to it.  For example, you charge $2.50 shipping for a product and want to show that separate from Revenue, you can devote a Success Event to “Shipping Costs” and pass “2.5” in this part of the Product String to add $2.50 with each purchase.

[Merchandising] – This is another advanced topic which I will cover later, but in general, you can use this parameter to bind Products to different eVar values for each Product instead of tying all Products to one eVar value.  This is often used to capture which product category the visitor used to find the Product.

So in a scenario where a visitor is buying two XYZ memory cards at $100 each, has to pay $2.50 shipping and found the memory card product through the “Sale” section of the site, the Product string might look like this:

s.products=”;XYZ Memory Card;2;200;event18=2.5;eVar12=Sale”

Important Things To Know About The Products Variable
The following are some important things to know about the Products variable:

  1. The Products variable has full subrelations so any conversion variable report can be broken down by Products and any Classifications of Products.
  2. If the Products variable is set with no corresponding Success Event, the “prodView” Success Event will be used by default.  This will appear in SiteCatalyst as the Product Views metric and only appears in Products reports.  However, if Product Views is something that is important to your organization, it is a best practice to use a Custom Success Event to track Product Views.
  3. The Revenue and Unit parameters are only valid when used in combination with the Purchase Success Event.  They will be ignored in all other cases.

Real-World Example
In this week’s real-world example, I will illustrate a non-traditional way to use the Products variable.  In this scenario, a subsidiary of Greco Inc. would like to track the effectiveness of internal promotion banners on their site.  They use these internal promotional banners to promote specific products and for cross-sell.  To do this, they would like to see how many impressions each internal banner received and then how many clicks each received so they can calculate an “Internal Promotion Click-through Rate.”  However, this can be a bit tricky since one page on their site could have multiple internal promotion banners.  While we might normally think about using an eVar to capture the internal promotion codes, since there are multiple codes passed on one page, this becomes problematic.  The best an eVar can do is to concatenate the values into one string, which is not the easiest way to analyze this data.  Therefore, let’s see how they can use the Products variable to accomplish this.

To start, they would need to assign a unique ID# to each version of each internal promotion banner.  When the page loads, they would capture the ID numbers of all banners that appear on the page in the Products variable and set an “Impressions” Success Event.  The tagging might look like this:

s.events=event15;
s.products=”;promo:123,;promo:150,;promo:174″;

Doing this would produce a report that looks like this:

If a visitor clicks on one of the internal promotions (say ID# 174), they would set a “Internal Promotion Clicks” Success Event and capture the clicked internal promotion in the Products variable again with tagging that looks like this:

s.events=event16;
s.products=”;promo:174″;
s.eVar18=”promo:174″;

Then they would create a calculated metric that divides Success Event 16 by Success Event 15 and then they can see a report that looks like this:

As more internal promotions are shown and clicked, this report would receive more and more data so that over time, they could see which internal promotions are clicked the most.  In this situation, I started each product value with the phrase “promo:” since in many cases you will use the Products variable for several things and having this prefix allows you to easily identify which values in the Products report are actual products and which ones are internal promotions.

Finally, it is important to note that if they wanted to see which internal promotion clicks later led to visitors completing Success Events on the site (i.e. purchases, sign-ups, etc…), the Products variable would not be ideal since it is not persistent like a Conversion Variable.  For this reason, you might choose to capture the internal promotion code ID# that is clicked in an eVar (as shown above) so that you can see what internal promotions led to future success.

 

Have a question about anything related to Omniture SiteCatalyst?  Is there something on your website that you would like to report on, but don’t know how?  Do you have any tips or best practices you want to share?  If so, please leave a comment here or send me an e-mail at insidesitecatalyst@omniture.com and I will do my best to answer it right here on the blog so everyone can learn! (Don’t worry – I won’t use your name or company name!).  If you are on Twitter, you can follow me at http://twitter.com/Omni_man.

Learn more about Omniture Consulting
Learn more about Omniture University

 

11 comments
Neha
Neha

What is the syntax for the products variable in Java codes like App Measurement for Android?

Neha
Neha

Some questions about the example: 1. How do we implement the example without mixing up Product ID for product we sell and the banner IDs? 2. What exactly would trigger the clickthrough event? Is it onClick? Isn't it unsafe in terms of atomicity? 3. Is it possible to create other variable like s.products?

HaRsh V Kabra
HaRsh V Kabra

Excellent post Adam... I was never sure about why do we have s.product variable when same can be done using eVars but after reading through this post I am very clear on this part . Looking forward to get more insights on SiteCatalyst(Omniture). Regards, -Harsh V Kabra

Simon Pong
Simon Pong

Following your Memory Card example. If I have two different brands of memory cards for sale, what would be the best way to look at the sale by each different brands as well as the sales of memory card as a whole?

Ben Gaines
Ben Gaines

Ryan, I believe the reason "promo:174" is set in s.products a second time is simply to be able to pull "Internal Promotion Clicks" into the Products report and see the relationship between "Internal Promotion Impressions" and "Internal Promotion Clicks" side-by-side. This is can only happen if "promo:174" is in the s.products string when event16 (which represents "Internal Promotion Clicks") is present in s.events. Passing the value into the eVar at the same time allows you to tie that promo to any subsequent conversion that may happen since the eVar, unlike s.products, is persistent. Also, note that in your example from the second page view, having both event15 and event16 in s.events would cause an "Internal Promotion Click" (event16) to be tied to all three promos in s.products. This is probably not intended, since (at that point), they're just impressions; the user hasn't clicked any of those three promos (yet). Let me know if this is unclear, or if you have any additional questions. Thanks, Ben Gaines

Ryan Wheale
Ryan Wheale

Just a clarification... when a visitor clicks on promo #174, why do you need to set it in s.products again? Are you not capturing it in eVar18? And what happens when the destination page has more promos? It seems the scenario above should go more like this: s.events=event15; s.products=”;promo:123,;promo:150,;promo:174″; (User clicks on Promo #174) s.events=event15,event16; s.products=”;promo:123,;promo:182,;promo:183″; s.eVar18="promo:174"; Notice how there are some different promos on the second page. I want to capture those impressions... and most importantly, promo #174 is not on the page. Am I correct is saying this? Thanks. ~Ryan Wheale

Ben Gaines
Ben Gaines

Marilyn: The product-category relationship lasts until the end of the given month, not forever. What you're seeing in the Knowledge Base is correct. Apologies for any confusion this may have caused!

Marilyn
Marilyn

Adam, thanks for the very informative post. i am interested in your statement: "It is not recommended that you use this parameter due to the fact that it ties the Product to the first Category that it is associated with and it cannot be changed." I am wondering if this means that once Product A has been associated with Category B, it can never be re-associated with Category B (using product categories). I have heard that this is the case. However, I also found one entry in the knowledge base that says: "The first time the legacy Category field is set in a month with any event-even a product view-it is inextricably paired to that Product for the entire month, regardless of what pairing arrives in subsequent s.products values." This would suggest that at the end of the month the new association is made (and that the reporting errors would go away). I'd appreciate any clarification on this that you can provide about the issue with categories and the impact it has on the reports. Thank you!

Adam Covati
Adam Covati

Thanks Adam, this gave me just the insight I needed to understand what was going on with the Product variable. I'm glad I've stumbled across your blog.

Adam Greco
Adam Greco

Tim - Thanks for the great example!

Tim Elleston
Tim Elleston

Hey Adam, nice post. We're using a variation on this to track the most commonly used Portlets by Page within our portal. As our users have the ability to add in portlets, such as news, events, weather, quote of the day etc etc, on to their portal homepage, we wanted to know which are the most popular ones. By using the product variable, which we're also using for real product views as well, we're able to see the portal customization that is occurring. As long as we never pass a product ID with a portlet ID, we're ok.