In ear­lier posts, I described the three types of Omni­ture Site­Cat­a­lyst vari­ables which are Traf­fic Vari­able (also known as sProps), Suc­cess Events and Con­ver­sion Vari­ables (also known as eVars).   There is, how­ever, one vari­able type that is a bit unique and that is the Prod­ucts vari­able.  In this post, I will explain how the Prod­ucts vari­able is dif­fer­ent and share some inter­est­ing ways it can be used (even if your web­site doesn’t pro­mote Products!).

Under­stand­ing The Prod­ucts Vari­able
As its name implies, the pri­mary use of the Prod­ucts vari­able is to store the name of the Prod­uct for which a web­site action is tak­ing place.  For exam­ple, if you man­age a retail web­site and a vis­i­tor views a Prod­uct Detail page, you might choose to set a Prod­uct View Suc­cess Event so you can see how many Prod­uct Views your web­site had each day, week, month, etc…  But if you want to see which Prod­ucts vis­i­tors were look­ing at, you would need to cap­ture the Prod­uct name or a Prod­uct ID# in a vari­able so that you can break down the Prod­uct Views Suc­cess Event met­ric by Prod­uct.  For those who have read pre­vi­ous posts, your first instinct should be to use an Con­ver­sion vari­able (eVar) to cap­ture the Prod­uct Name, since eVars are used to break down Suc­cess Events.  While you could cer­tainly do that, Omni­ture has assumed that many web­sites will have Prod­ucts so it has cre­ated a spe­cial Prod­ucts vari­able for this exact pur­pose.  There­fore, it is rec­om­mended that you cap­ture the Prod­uct name or ID# in the Prod­ucts vari­able (s.products).

What is the dif­fer­ence between an eVar and the Prod­ucts vari­able?” is the next ques­tion I get from clients (which is why I am writ­ing this post!).  There are some sub­tle dif­fer­ences between the Prod­ucts vari­able and Con­ver­sion Vari­ables (eVars) that you need to under­stand.  They are as follows:

Mul­ti­ple Val­ues
The Prod­ucts vari­able allows you to pass mul­ti­ple val­ues to it whereas eVars are lim­ited to one value.  The impor­tance of this can­not be under­stated.  When a Suc­cess Event is set in con­junc­tion with an eVar, what­ever value is passed to the eVar gets credit for the Suc­cess Event.  But if mul­ti­ple Prod­ucts are passed to the Prod­ucts vari­able at the same time that a Suc­cess Event is set, each value passed to the Prod­ucts vari­able will get credit for the Suc­cess Event.

Not Per­sis­tent
Another way in which the Prod­ucts Vari­able is dif­fer­ent from Con­ver­sion Vari­ables is that it is not per­sis­tent, mean­ing that it does not retain its value from one page to the next.  In this respect, it is some­what sim­i­lar to Traf­fic Vari­ables.  For this rea­son, if you need to asso­ciate mul­ti­ple Suc­cess Events with spe­cific Prod­ucts, you must set the Prod­ucts vari­able every time you set Suc­cess Events.  For exam­ple, if a vis­i­tor adds three prod­ucts to the shop­ping cart, you would pass all three to the Prod­ucts vari­able when you set the Cart Add Suc­cess Event, but if later the vis­i­tor pur­chases one of those prod­ucts, you need to pass that prod­uct to the Prod­ucts vari­able again when you set the Pur­chase Suc­cess Event.

Spe­cial Para­me­ters
Unlike Con­ver­sion Vari­ables, the Prod­ucts vari­able allows you to set some spe­cial para­me­ters at the same time the Prod­uct value is set.  While this can be a bit con­fus­ing for newer Site­Cat­a­lyst users, I will do my best to explain this in non-technical terms.  To begin, it is impor­tant to see the full Prod­ucts Vari­able String with all of the poten­tial para­me­ters that can be set:

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

The fol­low­ing will describe each:

[Cat­e­gory] — This rep­re­sents the Prod­uct Cat­e­gory.  It is not rec­om­mended that you use this para­me­ter due to the fact that it ties the Prod­uct to the first Cat­e­gory that it is asso­ci­ated with and it can­not be changed.  There are now bet­ter ways to assign Prod­ucts to Prod­uct Cat­e­gories so this para­me­ter is nor­mally not set and remains pri­mar­ily for his­tor­i­cal purposes.

[Prod­uct] — This rep­re­sents the name or ID of the Prod­uct.  If you pass an ID, you can always use Clas­si­fi­ca­tions to upload friendly names and roll prod­ucts into Cat­e­gories.  If you will be pass­ing a lot of Prod­ucts at one time, it is rec­om­mended that you use ID’s instead of full prod­uct names to limit the length of the over­all prod­uct string so you do not exceed browser char­ac­ter limits.

[Quan­tity] — When used with the Pur­chase Suc­cess Event, this rep­re­sents the quan­tity of the Prod­uct being pur­chased (i.e. vis­i­tor is buy­ing two mem­ory cards)

[Total Price] — When used with the Pur­chase Suc­cess Event, this rep­re­sents the total price for the Prod­uct being pur­chased (i.e. two mem­ory cards total $200 for both)

[Incre­men­tor] — This is an advanced topic which I will be cov­er­ing in the future, but in gen­eral, you can set an Incre­men­tor Suc­cess Event such that you man­u­ally pass a cur­rency amount or num­ber to it.  For example, you charge $2.50 ship­ping for a prod­uct and want to show that sep­a­rate from Rev­enue, you can devote a Suc­cess Event to “Ship­ping Costs” and pass “2.5″ in this part of the Prod­uct String to add $2.50 with each purchase.

[Mer­chan­dis­ing] — This is another advanced topic which I will cover later, but in gen­eral, you can use this para­me­ter to bind Prod­ucts to dif­fer­ent eVar val­ues for each Prod­uct instead of tying all Prod­ucts to one eVar value.  This is often used to cap­ture which prod­uct cat­e­gory the vis­i­tor used to find the Product.

So in a sce­nario where a vis­i­tor is buy­ing two XYZ mem­ory cards at $100 each, has to pay $2.50 ship­ping and found the mem­ory card prod­uct through the “Sale” sec­tion of the site, the Prod­uct string might look like this:

s.products=”;XYZ Mem­ory Card;2;200;event18=2.5;eVar12=Sale”

Impor­tant Things To Know About The Prod­ucts Vari­able
The fol­low­ing are some impor­tant things to know about the Prod­ucts variable:

  1. The Prod­ucts vari­able has full sub­re­la­tions so any con­ver­sion vari­able report can be bro­ken down by Prod­ucts and any Clas­si­fi­ca­tions of Products.
  2. If the Prod­ucts vari­able is set with no cor­re­spond­ing Suc­cess Event, the “prodView” Success Event will be used by default.  This will appear in Site­Cat­a­lyst as the Prod­uct Views met­ric and only appears in Prod­ucts reports.  How­ever, if Prod­uct Views is some­thing that is impor­tant to your orga­ni­za­tion, it is a best prac­tice to use a Cus­tom Suc­cess Event to track Prod­uct Views.
  3. The Rev­enue and Unit para­me­ters are only valid when used in com­bi­na­tion with the Pur­chase Suc­cess Event.  They will be ignored in all other cases.

Real-World Exam­ple
In this week’s real-world exam­ple, I will illus­trate a non-traditional way to use the Prod­ucts vari­able.  In this sce­nario, a sub­sidiary of Greco Inc. would like to track the effec­tive­ness of inter­nal pro­mo­tion ban­ners on their site.  They use these inter­nal pro­mo­tional ban­ners to pro­mote spe­cific prod­ucts and for cross-sell.  To do this, they would like to see how many impres­sions each inter­nal ban­ner received and then how many clicks each received so they can cal­cu­late an “Inter­nal Pro­mo­tion Click-through Rate.”  How­ever, this can be a bit tricky since one page on their site could have mul­ti­ple inter­nal pro­mo­tion ban­ners.  While we might nor­mally think about using an eVar to cap­ture the inter­nal pro­mo­tion codes, since there are mul­ti­ple codes passed on one page, this becomes prob­lem­atic.  The best an eVar can do is to con­cate­nate the val­ues into one string, which is not the eas­i­est way to ana­lyze this data.  There­fore, let’s see how they can use the Prod­ucts vari­able to accom­plish this.

To start, they would need to assign a unique ID# to each ver­sion of each inter­nal pro­mo­tion ban­ner.  When the page loads, they would cap­ture the ID num­bers of all ban­ners that appear on the page in the Prod­ucts vari­able and set an “Impres­sions” Suc­cess Event.  The tag­ging might look like this:

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

Doing this would pro­duce a report that looks like this:

If a vis­i­tor clicks on one of the inter­nal pro­mo­tions (say ID# 174), they would set a “Inter­nal Pro­mo­tion Clicks” Suc­cess Event and cap­ture the clicked inter­nal pro­mo­tion in the Prod­ucts vari­able again with tag­ging that looks like this:

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

Then they would cre­ate a cal­cu­lated met­ric that divides Suc­cess Event 16 by Suc­cess Event 15 and then they can see a report that looks like this:

As more inter­nal pro­mo­tions are shown and clicked, this report would receive more and more data so that over time, they could see which inter­nal pro­mo­tions are clicked the most.  In this sit­u­a­tion, I started each prod­uct value with the phrase “promo:” since in many cases you will use the Prod­ucts vari­able for sev­eral things and hav­ing this pre­fix allows you to eas­ily iden­tify which val­ues in the Prod­ucts report are actual prod­ucts and which ones are inter­nal promotions.

Finally, it is impor­tant to note that if they wanted to see which inter­nal pro­mo­tion clicks later led to vis­i­tors com­plet­ing Suc­cess Events on the site (i.e. pur­chases, sign-ups, etc…), the Prod­ucts vari­able would not be ideal since it is not per­sis­tent like a Con­ver­sion Vari­able.  For this rea­son, you might choose to cap­ture the inter­nal pro­mo­tion code ID# that is clicked in an eVar (as shown above) so that you can see what inter­nal pro­mo­tions led to future success.

 

Have a ques­tion about any­thing related to Omni­ture Site­Cat­a­lyst?  Is there some­thing on your web­site that you would like to report on, but don’t know how?  Do you have any tips or best prac­tices you want to share?  If so, please leave a com­ment 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 every­one can learn! (Don’t worry — I won’t use your name or com­pany name!).  If you are on Twit­ter, you can fol­low me at http://​twit​ter​.com/​O​m​n​i​_​man.

Learn more about Omni­ture Consulting
Learn more about Omni­ture 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.