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

 

Tagged with →  
  • http://www.murdoch.edu.au Tim Elle­ston

    Hey Adam, nice post.
    We’re using a vari­a­tion on this to track the most com­monly used Portlets by Page within our por­tal. As our users have the abil­ity to add in portlets, such as news, events, weather, quote of the day etc etc, on to their por­tal home­page, we wanted to know which are the most pop­u­lar ones. By using the prod­uct vari­able, which we’re also using for real prod­uct views as well, we’re able to see the por­tal cus­tomiza­tion that is occur­ring. As long as we never pass a prod­uct ID with a port­let ID, we’re ok.

  • http://blogs.omniture.com/author/agreco Adam Greco

    Tim -

    Thanks for the great example!

  • http://adamcovati.com Adam Covati

    Thanks Adam, this gave me just the insight I needed to under­stand what was going on with the Prod­uct vari­able. I’m glad I’ve stum­bled across your blog.

  • Mar­i­lyn

    Adam, thanks for the very infor­ma­tive post. i am inter­ested in your state­ment: “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.” I am won­der­ing if this means that once Prod­uct A has been asso­ci­ated with Cat­e­gory B, it can never be re-associated with Cat­e­gory B (using prod­uct cat­e­gories). I have heard that this is the case. How­ever, I also found one entry in the knowl­edge base that says: “The first time the legacy Cat­e­gory field is set in a month with any event-even a prod­uct view-it is inex­tri­ca­bly paired to that Prod­uct for the entire month, regard­less of what pair­ing arrives in sub­se­quent s.products val­ues.” This would sug­gest that at the end of the month the new asso­ci­a­tion is made (and that the report­ing errors would go away).

    I’d appre­ci­ate any clar­i­fi­ca­tion on this that you can pro­vide about the issue with cat­e­gories and the impact it has on the reports. Thank you!

  • http://blogs.omniture.com/author/bgaines Ben Gaines

    Mar­i­lyn: The product-category rela­tion­ship lasts until the end of the given month, not for­ever. What you’re see­ing in the Knowl­edge Base is cor­rect. Apolo­gies for any con­fu­sion this may have caused!

  • http://neteffectservices.com Ryan Wheale

    Just a clar­i­fi­ca­tion… when a vis­i­tor clicks on promo #174, why do you need to set it in s.products again? Are you not cap­tur­ing it in eVar18? And what hap­pens when the des­ti­na­tion page has more pro­mos? It seems the sce­nario 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 dif­fer­ent pro­mos on the sec­ond page. I want to cap­ture those impres­sions… and most impor­tantly, promo #174 is not on the page. Am I cor­rect is say­ing this? Thanks.

    ~Ryan Wheale

  • http://blogs.omniture.com/author/bgaines Ben Gaines

    Ryan,

    I believe the rea­son “promo:174″ is set in s.products a sec­ond time is sim­ply to be able to pull “Inter­nal Pro­mo­tion Clicks” into the Prod­ucts report and see the rela­tion­ship between “Inter­nal Pro­mo­tion Impres­sions” and “Inter­nal Pro­mo­tion Clicks” side-by-side. This is can only hap­pen if “promo:174″ is in the s.products string when event16 (which rep­re­sents “Inter­nal Pro­mo­tion Clicks”) is present in s.events.

    Pass­ing the value into the eVar at the same time allows you to tie that promo to any sub­se­quent con­ver­sion that may hap­pen since the eVar, unlike s.products, is persistent.

    Also, note that in your exam­ple from the sec­ond page view, hav­ing both event15 and event16 in s.events would cause an “Inter­nal Pro­mo­tion Click” (event16) to be tied to all three pro­mos in s.products. This is prob­a­bly not intended, since (at that point), they’re just impres­sions; the user hasn’t clicked any of those three pro­mos (yet).

    Let me know if this is unclear, or if you have any addi­tional questions.

    Thanks,
    Ben Gaines

  • Simon Pong

    Fol­low­ing your Mem­ory Card exam­ple. If I have two dif­fer­ent brands of mem­ory cards for sale, what would be the best way to look at the sale by each dif­fer­ent brands as well as the sales of mem­ory card as a whole?

  • HaRsh V Kabra

    Excel­lent post Adam… I was never sure about why do we have s.product vari­able when same can be done using eVars but after read­ing through this post I am very clear on this part . Look­ing for­ward to get more insights on SiteCatalyst(Omniture).
    Regards,
    –Harsh V Kabra

  • Neha

    Some ques­tions about the example:

    1. How do we imple­ment the exam­ple with­out mix­ing up Prod­uct ID for prod­uct we sell and the ban­ner IDs?
    2. What exactly would trig­ger the click­through event? Is it onClick? Isn’t it unsafe in terms of atom­ic­ity?
    3. Is it pos­si­ble to cre­ate other vari­able like s.products?

  • Neha

    What is the syn­tax for the prod­ucts vari­able in Java codes like App Mea­sure­ment for Android?