Vote For Omniman!

As those in the digital analytics industry who are members of the DAA will see, I have been nominated for a board member position within the Digital Analytics Association (DAA) for 2015-2016. I am honored to be in consideration with such a distinguished list of nominees. Since there are only two seats on the board available, I am not sure I have much of a shot, but am honored by the nomination and would be excited to serve if given the opportunity.

In my web analytics career, I have always tried to help the DAA out when I could by attending meetings, agreeing to do webcasts and the like but, in all honesty, I haven’t “jumped in with both feet,” so to speak, and devoted a massive amount of time to the DAA.  This has mainly been due to the hectic nature of my work/travel schedule over the years, and because I am the type of person who doesn’t like to do things half-ass! In 2015, however, I have proactively reduced my consulting client load (and travel) so that I can have more time for both personal and professional endeavors such as this.

Having followed the DAA closely throughout the years, I really like how it has evolved and especially like some of the things that have happened in the most recent years. Whether it is the new website, the local symposia events or community-building discussion groups, I feel like the DAA has become more focused on doing what it should be doing – building a web analytics community.  If I were to be added to the DAA board, my goal would be to push as many community initiatives as possible and, at times, raise the idea of having the DAA do fewer things, but doing those things really well.  Just because the association has always done program XYZ in the past, doesn’t mean that it should continue to do the programs in the future if they are not producing the desired results.  I think this mindset is important to a primarily volunteer-based organization. While I don’t have a specific agenda or list of things I would hope to change, I am a fairly opinionated person and think that my voice on key issues would add to the discussions in a positive way.

In terms of my personal qualifications, over the past two decades, I have been a web analyst (Chicago Mercantile Exchange), worked for a leading web analytics vendor (Omniture), directed a web analytics team ( and been a web analytics consultant (Web Analytics Demystified).  I have been fortunate to see all aspects of the web analytics industry, from junior to senior and from vendor to practitioner. I think this variety gives me the ability to represent lots of different constituencies if I were to be on the DAA board.  As evidenced in my career, I believe in giving back in any way that I can, since I have benefited so much from being part of this industry. Whether it takes the form of blog posts, Beyond Web Analytics podcasts, speaking at eMetrics, writing a book or simply answering questions from folks via e-mail, I have always tried to share what I know with those who are newer to the industry. In the same way, I feel like serving on the board of the DAA is a great way to pay things forward and give back to the industry of which I am lucky enough to belong.

However, those who know me, know that I am not a politician by any stretch, so this post is the extent of my campaigning for the DAA board member position. All I can promise is that I have absolutely no ulterior motive for being a DAA board member.  I have no software product to sell, no methodologies to promote, no need for additional consulting work and no job positions to fill! If I am fortunate enough to be elected to the board, I will do my best to provide leadership, devote the time required to attend calls/meetings and try to make the DAA the best organization it can be. So if you’d like to see me on the DAA board, cast your vote for Omniman!  Thanks!


Published on April 29, 2015 under Uncategorized

Speaking Tour 2015

Happy new year!  I hope 2015 has gotten off to a great start for you. I must admit that after a way too busy 2014, I have been taking some needed time off to spend time with family and re-charge my batteries! But now that we are over a month into the year, it is time for me to get back to work! In 2014 I logged my most miles ever on the road so I was unable to do much public speaking, but one of my new year’s resolutions is to get back in front of folks in 2015. I find that sharing my experiences with others is a great way to give back to the community, especially for us “old timers” who have been doing this for a while. Below are some of the venues and places that I will be speaking over the next few months in case you want to meet up and/or share web analytics stories…

DAA Thought Leadership Conversation

This year, the DAA has started a new member-only benefit in the form of live sessions with folks in the digital analytics industry. These hour-long sessions are open to all DAA members and are hosted by the esteemed Jim Sterne. In the past, Jim has interviewed Gary Angel and Pelin Thorogood and on Feb 18th (at 12:00 EST), I am the next victim! Since the event is unscripted, who knows what we will talk about, but it should be fun! If you would like to attend, click here to learn more and register.

Adobe Summit 2015

It is hard to believe, but in under a month the next Adobe Summit conference will be here! I am pleased to announce that, after a few year presenting hiatus, I will one again be presenting at this year’s Adobe Summit! This will be my 12th (maybe 13th) Summit (not including non-US Summits!) and I have presented at about 10 of those events. This year, I will be sharing my advice and strategies for re-energizing your web analytics program and will explore the concepts I posited in my 2014 white paper on the subject. In addition, I will share my latest Adobe Analytics tips and tricks, similar to those found in the last section of my Adobe SiteCatalyst book. The session will be on the first day of the conference (Tuesday) at 4:00 MST and is Session S321 if you want to pre-register.

Tealium Digital Velocity 2015

Last year, I had the pleasure of working with some great folks over at Hyatt Hotels ( to help them improve their Adobe Analytics implementation. As part of this project, Hyatt began managing their tags using Tealium’s tag management suite. At Tealium’s Digital Velocity conference, I will be joining my client from Hyatt to share the before and after of this large project and show how the combination of a good implementation/training strategy and good technology can help move an organization forward. I will be co-presenting on the first day of the main conference (April 15th). So if you would like to learn more (and enjoy some great weather!), here is a link to their conference where you can learn more.

eMetrics Chicago

When eMetrics hits my home town of Chicago, it’s always a great excuse to come hang out with the web analytics community. This year, Jim Sterne has asked me to conduct a keynote address for the conference, which I am excited about. Since it is my ten year anniversary in the analytics space this year, I decided that I would use the time to share the most important things I have learned over the years, in hopes that it may help those newer to the field. Since there is never a good time to “reinvent the wheel,” I will do my best to share what I have seen work and sometimes fail in our industry during this session. The conference will take place the week of June 8th (

Published on February 11, 2015 under General Implementation

Slack Demystified

Those of you who follow my blog have come to know that when I learn a product (like Adobe SiteCatalyst), I really get to know it and evangelize it. Back in the 90′s I learned the Lotus Notes enterprise collaboration software and soon became one of the most proficient Lotus Notes developers in the world, building most of Arthur Andersen’s global internal Lotus Notes apps. In the 2000′s, I came across Omniture SiteCatalyst, and after a while had published hundreds of blog posts on Omniture’s (Adobe’s) website and my own and eventually a book! One of my favorite pastimes is finding creative ways to apply a technology to solve everyday problems or to make life easier.

That being said, this post has to do with my new favorite technology - Slack. Admittedly, this post has very little to do with web analytics or Adobe Analytics, so if that is what you are interested in, you can stop reading now. But I suggest that you continue reading, as it may give you a heads-up on one of the most interesting technologies I have seen in a while, and maybe you will get as addicted to it as I am…

What is Slack?

If you have not yet heard of Slack – you will soon.  It is one of the hottest technologies out there right now (started almost by accident), and has the potential to change the way business gets done. Slack is a tool that allows teams to collaborate around pre-defined topics (channels) and private groups. It also provides direct messaging between team members and integrations with other technologies. I think of it as a team message board, instant messaging, a file repository and private group discussions all in one place. That sounds deceptively simple (like its interface), but it is extremely powerful. Most people work with a finite number of folks on a daily basis. Those interactions take place in face-to-face meetings, e-mails, file sharing on dropbox, phone calls and often times instant message interactions. Unfortunately, this means that you have to constantly jump between your phone, your e-mail client, your IM client, your dropbox account, etc… Sometimes you may feel like you spend a good chunk of your day just looking for stuff instead of doing real work! The beauty of Slack is that you can push almost all of these interactions and content into one centralized tool and that tool can be accessed from a webpage, a [great] mobile app or a desktop app (I use the Mac client). In addition the integrations Slack provides with other tools like Dropbox, WordPress, Twitter ZenDesk, etc… allow you to push even more things into the Slack interface so you have even fewer places to go and find stuff.

At our consultancy, we have seen a massive adoption of Slack and our use of e-mail has decreased by at least 75%. If you have kids like mine, who never bother to open an e-mail, but live for text messages, you can imagine that this trend will only continue as the younger generation enters the workforce. The business world moves too fast these days and I think the millennials will flock to tools like Slack in the future. So…in this post, I am going to do what I always do – share cool ways to use technology and share what I have done with it. Please bear with me as I put web analytics on hold for one post!


The first way our firm uses Slack is by taking advantage of the “channel” feature. Channels are like bulletin boards with a pre-defined topic. For example, some people at our firm are interested in Adobe Analytics products, while others are interested in Google Analytics products (or both). By creating a channel for each of these, anyone can post an article, share a file, ask a question or share something they learned in the appropriate channel. Everyone within the team has the choice as to whether they want to “join” the channel. If you join the channel, you can see all of the stuff posted there and set your notifications accordingly (determine if you want desktop or mobile notifications- more on this later). You can leave a channel at any time and re-join at any time, and there are no limits on the number of channels you can create (as far as I know).

As an example, here you can see some questions posed within our Adobe channel and how easy it was for our team members to get answers that might have otherwise sat buried in e-mail:

Keep in mind that in addition to text replies, users could have inserted images, files, links or videos into the above thread. Also remember that some of these replies could have come from the mobile app while folks are on the road.

Private Groups

If you want to have a private channel, with just a few folks, you can create a Private Group. Private Groups are like group instant message threads, but can also contain files, images, etc. We use Private Groups for client projects in which multiple team members are involved. In the Private Group, any questions or updates related to THAT client are shared with only those team members who are involved in the project (instead of everyone publicly). Just the other day, we had a client encounter a minor emergency, and immediately our team began discussing options on Slack, came to a resolution and implemented some patch code to fix the client issue. In the past, it would have taken us hours to schedule a meeting, review the issue and figure out a solution, but with Slack the entire process was done in under ten minutes and the client was blown away!

Another great use for Private Groups is tele-conference calls. We use this as a “backchannel” when on client calls to chat with each other during calls to make sure we are all on the same page with our responses.

File Sharing

Many of us spend our lives making and editing files. Whether they be spreadsheets, presentations, etc… To store these files, many companies use Dropbox or something similar. As you would expect, Slack has a tight integration with these tools. Since we use Dropbox, I’ll use that as an example. I have connected my Dropbox account to Slack so when I choose to import a file, I see Dropbox as one of the options:

From there, I find the file I am looking for…

…and then I add it to Slack:

This process only takes a few seconds, but the cool part is that the entire document I have uploaded will be indexed and be searchable from now on:

Another thing that has frustrated me in the past related to file sharing, is not knowing when my co-workers are creating great new documents. Unless you are continuously reviewing Dropbox notifications (which are way to numerous), a lot of this activity can slip through the cracks. Luckily, there is another cool feature in Slack that can come to the rescue! This feature is found within the Notifications area. Within this area there is a “Highlight Words” box that allows you to list out specific phrases that you want to be alerted about. In this example, I have listed three specific words for which I want Slack to notify me about whenever they occur within a document, channel discussion or private group that I have access to see:

As you can see below, my designated words are highlighted and I will see an unread count for any items that match my criteria:

In addition to highlighting keywords, you can also use one of my favorites tools – IFTTT (or Zapier) to be alerted when a new file has hit your file tool of choice. Hopefully you are already familiar with these great tools that allow you to connect different technologies. But Slack + IFTTT/Zapier = :-) in my opinion! Let’s look at one practical example. Imagine that I want to know anytime one of my partners has created a new proposal and added it to our shared dropbox folder. Since they may not have remembered that they should always include my services in their proposal, I like to gently remind them! To do this, I can have IFTTT/Zapier monitor our “Proposal” dropbox folder for new files and post a link to new proposals to a Private Group or Public Channel so we are all aware of each other’s proposals. For example, let’s say that I see a new proposal come in from one of my partners for XYZ Company and I know the CIO there. Having visibility into this activity allows me to help and takes no extra work for my partner. Here is an example of the Zapier recipe I might use:

This recipe will automatically post any new files in the proposals dropbox folder to the “proposals” channel, which any of my co-workers can follow if they choose:

As you can see, there are tons of ways to share files and be alerted when your co-workers are adding files that might be of interest to you and most of them integrate into Slack automatically.

Slack – Twitter Integration

If you are into Twitter, you probably spend time tweeting, following people or monitoring hashtags. To do this, you may use the Twitter site or App (old Tweetdeck app). For me, there are only a few things I really care about when it comes to Twitter:

  • Is someone talking about me or re-tweeting my stuff?
  • Are my business partners tweeting?
  • Is there anything going on in the hashtags I care about (though these are becoming SPAM so I care less about this these days!)?

The good news is that I can now monitor all of this in Slack, again using IFTTT (or Zapier). So let’s see how this integration would be setup. First, let’s get all of my Twitter mentions into Slack. To do this, I would simply create a recipe in IFTTT that connects Twitter to Slack using the following:


In this case, I have decided to post my Twitter mentions to a private channel called “adam-twitter-mentions” that only I see. I could have alternatively posted them to my personal “Slackbot” area (which is like your own personal notepad within Slack), but I didn’t want to clutter that with Twitter mentions (since I have some cool uses for that coming later). Once this rule is active, any time I am mentioned on Twitter, a copy of the Tweet will be automatically imported into my private Slack group and I will see a new “unread” item as seen here:

Next, I want to know if any of my co-workers are tweeting, since I may want to be a good partner and re-tweet their stuff to my personal network. To do this, I create a different IFTTT recipe that looks for their Twitter handles. I am lucky to work with a small group of folks, but you can add as many of your co-workers as you want and also include your company’s Twitter account as well:

This recipe will run every fifteen minutes or so and push tweets from these accounts to a public “tweets-demystified” channel. My co-workers then have the option to subscribe to this channel or not:

Finally, if I want to follow a specific Twitter hashtag, I can create a recipe for that. As an example, if I want to follow the #Measure hashtag (used by the web analytics industry), I can push in all of those tweets into Slack using this recipe:

In this example, I am pushing #Measure tweets to my personal “Slackbot” just for illustrative purposes, but in reality, I would probably create a private group or channel for this given that a LOT of data will end up here:

As you can see, I now have the things I care the most about in Twitter in the same tool that I am using to collaborate with my co-workers, clients and conduct instant messages. This helps me by reducing the number of tools I have to interact with, but there are other reasons to do this as well. First, The tweets in Slack can be commented on by my partners, which can lead to fun and interesting discussions. But my favorite reason for doing this is that everything imported into Slack is 100% searchable. In this case, this means that I can search amongst all of my tweets and my co-workers’ tweets from today on, and don’t have to go to different tools to do it. Let’s say I am doing some research on “Visitor Engagement” for a client. I can now go to Slack and search for “Visitor Engagement,” and know that I will find any discussions, files and tweets that mention “Visitor Engagement” within my company (and if I include the hashtag tweets, I can also see if anyone else in the world has written about it!).  That is extremely powerful!

Slack – Blog Integration

Another thing I may want to be aware of, is when my co-workers release new blog posts. Our firm uses both WordPress and Tumblr, which can both be integrated with Slack. This integration is pretty straight-forward in that it simply posts a link to Slack whenever each of us posts something new. To do this, we created a blog channel and I created an IFTTT rule to push new posts into the channel using this recipe:

This will result in the following in Slack:

Slack – Pocket Integration

While on the subject of sharing blog posts, another one of my favorite Slack integrations uses Pocket to move blogs and articles into Slack. If you are not familiar with Pocket, it is a handy tool that allows you to save web pages that you want to read later and apply tags to them. For example, if I see an article on Twitter that I like and want to read later or share with a co-worker, I can save it to my Pocket list and then retrieve it in the future through the Pocket mobile app or website. But using Pocket with Slack takes this to a new level. In IFTTT, I have created a series of recipes that map Pocket tags to channels in our Slack implementation. For example, if I want to share a blog post I liked with my co-workers, all I need to do is save it to Pocket and tag it with the tag “blog” and within fifteen minutes, a link to it will be posted in the previously shown “industry-news-blogs” channel. Here is what the recipe looks like:

Once again, my partners can comment on it and the article text is fully searchable from now on. In my case, I have set-up several of these recipes, such that if I find a good article about Adobe technology, it will be posted to our “Adobe” channel and likewise for Google.

Slack – Email Integration

Another type of content that I may want to push into Slack is e-mail. While Slack does reduce e-mail usage, e-mail will probably never go away. The Slack pricing page states that more e-mail to Slack functionality is coming soon, but in the meantime, I found another way to use IFTTT to send specific e-mails into Slack. Before I show how to do this, let’s consider why sending e-mails into Slack could be worthwhile. In general, I wouldn’t want to clutter my Slack implementation with ALL of my e-mail, but there are times when an important e-mail comes through that may be useful in the future. Perhaps it is a key project status update or approval from your client or boss that you want to save in case the s#%t hits the fan one day! Another reason might be to take advantage of the full-text searching capabilities of Slack so that future searches will include key e-mail messages.

Regardless of your reason, here is an example of how I push e-mails from my work Gmail account into Slack. First, I create a Gmail label that I will use to tell IFTTT which e-mails should be sent. In my case, I simply made a label named “Slack” (keep in mind it is case-sensitive) using normal Gmail label functionality. Next, I created the following recipe in IFTTT:

Once this is active, all I need to do is apply the label of “Slack” to any e-mail and it will be sent to Slack:

In this case, I am pushing e-mails to my personal “Slackbot” since I don’t plan to do this very often and it is an easy, private place to keep these messages. Of course, I could have just as easily pushed these e-mails into a private group, but for now Slackbot will meet my needs.

Slack – Task Management Integration

If your company uses a task/work management tool like Asana, Wunderlist, etc., you can push new task starts and completions into project channels. This allows all team members to see progress being made and to ask questions about tasks via the reply feature in Slack:

Guest & Restrictred Access

If you work in a business where you need to share discussions and files with people outside of your organization, you use the paid version of Slack to create special accounts that allow you to grant limited Slack access to external users:

We use this feature to add clients to private groups for projects. This gives is a direct line to our clients and an easy way for them to post project questions and files. Instead of sending an e-mail and copying tons of people, clients can post a query to the Slack group and know that one of the team members will get back to them in short order. This feature also helps us get around limitations associated with sending large files over e-mail or the need to send secure messages via Dropbox.


Through Slack’s highly customizable notifications area, you can determine how often you want Slack to bug you about activity in each of your channels and groups. For example, you can see below, that while I am working during the day, I have notifications turned off on my desktop for many of my channels. This means that my Mac won’t pop-up stuff and distract me from my work, but I can still tab over to Slack anytime I want and see how much new activity is there. But if something is posted in the “all-demystified” channel, I will get a mobile alert, since that tends to be more important stuff (per our internal policy). I often get many questions in the “Adobe” channel, so if my name is mentioned there, I will also get alerted on my mobile device:


As you can see, I have had a lot of fun using Slack at our company and pushing all sorts of content into it so it becomes our primary focal point for communication. Unfortunately, due to client restrictions, I can’t show some of the coolest ways we have used the tool, but my hope is that this post helps you see how a seemingly simple tool can do many powerful things when thought of as a central repository for knowledge for yourself and your company. Since Slack is a young company, I am sure that more features and integrations will be forthcoming, but I highly recommend that you check it out (this link includes a $100 credit in case you ever want the paid version) by finding a group of people at your company who need to collaborate on a regular basis or on a specific project. The best part is that you can start with Slack for free and then graduate to the paid version once you are as addicted as I am!

If you want to stay up to date on the latest Slack features and enhancements, subscribe to this IFTTT recipe…

…and this recipe which shares periodic tips:

Internally, I have created a public channel for both of these items so our team can learn more about Slack

Finally, if you are a Slack user and have found other super-cool things you can do with it, please share those here…Thanks!

Published on November 17, 2014 under 3rd Party Integrations

Profile Website Visitors via Campaign Codes and More

One of the things customers ask me about is the ability to profile website visitors. Unfortunately, most visitors to websites are anonymous, so you don’t know if they are young, old, rich, poor, etc. If you are lucky enough to have authentication or a login on your website, you may have some of this information, but for most of my clients the “known” percentage is relatively low. In this post, I’ll share some things you can do to increase your visitor profiling by using advertising campaigns and other tools.

Advertising Campaign Tracking Codes

If you have been using Adobe Analytics (or Google Analytics) for any length of time, you are probably already capturing campaign tracking codes when visitors reach your website. In Adobe Analytics, this is done via the s.campaigns variable. While this data is valuable to see which campaign codes are working to get you conversions, it can also be used to profile your visitors if used strategically.

Let’s look at an example. Imagine that your advertising team is looking to reach 18-21 year old males. To do this, they can work with an agency to identify the most likely places to reach this audience through publishers like Facebook or display advertising targeted at sites geared towards this demographic. If you embed campaign tracking codes in those sites that have a high probability of targeting 18-21 males, you can assume that many visits to your website from these campaign codes will be from this demographic. Therefore, you can use SAINT Classifications to classify these codes into a segment profile. If the following tracking codes all came from this targeted campaign, you might classify it like this:

Once you have classified the codes by demographic, you can use segmentation to isolate Visits (and Visitors) who came from these codes. While this may not be a large population, you can segment the data and treat it as a sample size to see how that demographic is performing vs. your general population or other demographics. Keep in mind that you may get some false positives since ad targeting isn’t an exact science, but if your advertising is well targeted, you should have a decent amount of confidence in your segment. In fact, there may be cases in which the sole purpose of spending a small amount on advertising is to test out how a different target demographic uses your website.

Business to Business via Demandbase

If you work for a Business to Business (B2B) company, in addition to using campaign codes to profile visitors, you can also use tools like Demandbase to identify anonymous visitors (companies) to your website. I have used this in the past when I worked for and in my current role at B2B clients. It is amazing how much information you can gather at the company level including Company, Industry, Size, etc. This information can be embedded into your web analytics implementation so that you can segment on it along with your other eVars and sProps:

This allows you to build segments on this data:

And you can see reports like this:

Here is a brief video I did a few years back on this integration:


As you can see, whether you are a B2C or B2B company, there are some quick wins you can achieve by adding meta-data to campaign tracking codes and using other technologies to identify anonymous visitors. These short-term solutions can be augmented by more robust tools offered by Adobe, Google and others, but these ideas may be a way to get started and build a case for more advanced visitor profiling. If you have other techniques you have used, feel free to leave a comment here.

Published on November 14, 2014 under 3rd Party Integrations, Campaigns, SAINT Classifications, Segmentation

Creating Conversion Funnels via Segmentation

Regardless of what type of website you manage, it is bound to have some sort of conversion funnel. If you are an online retailer, your funnel may consist of people looking at products, selecting products, and then buying products. If you are a B2B company, your funnel may be higher-level like acquisition, research, trial and then form completion. Many of my clients want to model their conversion funnels in Adobe Analytics (SiteCatalyst) so they can se where visitors fall, in what percentages and how these buckets change over time. Unfortunately, this isn’t one of Adobe Analytics’ strong suits. In this post, I will share why the out-of-box conversion funnels are not ideal and how you can use segmentation to help build your conversion funnels.

Conversion Funnel Report

As I described in my old blog post on Conversion Funnels, the Conversion Funnel report is merely a graphical representation of whatever Success Events you happen to add to the report. This works if you have discrete Success Events related to each of your conversion funnel steps, but it does not show you what percent of your population is currently at each step of the funnel. For example, if I visit an online retail website, view a product, then add a product to cart (Cart Add Success Event is set) and then order a product (Purchase Success Event is set), the conversion funnel would have a value of “1″ for me in each of the rows of this conversion funnel report:

While this may be useful in the context of seeing what percent of visitors make it through each step of the funnel, what if my question is “What percent of my population reached a specific step in the overall conversion funnel this week or month versus last week or month?” In this situation, the out-of-the box conversion funnel report can show you a time-based comparison, but as I will show later, this doesn’t give you the full picture:

In the next section, I will show you how segmentation can be used to improve upon this…

Using Segments to Create Funnel Populations

To address the aforementioned questions in Adobe Analytics, it is best to use the segmentation features of the product. Using segmentation, you can place each website visit (or visitor) into one of your high-level conversion funnel buckets and then create a different type of funnel in Excel using the ReportBuilder tool. First, you have to identify what criteria you are going to use to determine if a visit is in bucket #1, #2, etc. In this case, let’s imagine that you work for a B2B company and that your first bucket is “Awareness” and it is defined as people who have come to your website, but never seen a product, attempted to download a trial of it or purchased it. The second conversion funnel bucket is “Researchers” and this includes visits where people have looked at one or more products (or clicked on demos/videos and other product-related actions), but have not added a product to the cart or purchased (or filled out a lead form if online purchase is not possible). The third conversion funnel bucket is “Interested” and this includes visits in which people have either added to cart of filled out a lead form, but have not purchased (if available online). Our last conversion funnel buckets is our “Buyers” who have successfully purchased a product or committed to the product in some way (if purchase is not available online).

With these four conversion funnel buckets in mind, your next step is to subdivide all of your visits (or visitors) into one of these four buckets. While this may seem easy, it is actually a bit tricky, because you have to make sure that the same visit is not present in more than one bucket. Doing this requires some fancy Adobe Analytics segmentation skills. To create the first conversion funnel bucket, you would want to create a Visit segment that excluded any visitors who had viewed products, added products to the cart or purchased:

Next, we want to create our Researchers segment for visits that viewed products (you can also add other research events here with an “OR” clause), but excluding visits where a cart addition or order took place:

Next, we want to create our Interested segment for visits that added products to cart (you can also add things like lead form completions here), but excluding visits where an order took place:

Finally, we have our Buyers segment to see visits where visitors completed an order:

If you add up the various Visit counts in the above segments, you can see that they are mutually exclusive and add up to the total 40,089,255 showing in the segment preview area. This is a quick way to verify that you have built your segments correctly.

Applying Conversion Funnel Segments

Now that you have your conversion funnel segments defined, there are many ways you can use them. First, you can apply each segment to see any report for visits at that stage of the conversion funnel. For example, you could look at what internal search phrases are used by Researchers vs. Awareness folks. You could view the different pathing behaviors by conversion funnel segment or see what campaign codes drove each type. But the most interesting thing you can do (in my opinion) is to create a conversion funnel report in Microsoft Excel using ReportBuilder. For example, if you were to build a Visits data block with the “Awareness” segment applied, you would be looking at Awareness visits for the specified date range. Then you could do the same thing for the other three segments and then trend the percentages over time. Once you have separate data blocks, you can use formulas to combine them into a percentage-based conversion funnel and see the progression over time like this:

In the preceding example, there is not much of a spread when it comes to the last two funnel steps, but if we use some different [fake] data, let’s see how cool the reporting of this might look:


What I like about this type of analysis, is that it provides an opportunity to see where YOUR website problems lie. Every website is different. Some websites are great at getting top of funnel visitors to get to stage three or four of the funnel, but then they struggle to get them across the finish line. Others are the opposite in that they don’t get many people to stage two or three, but when they do, they convert very well. Knowing where your website’s problems lie, allows you to identify practical ways to improve your funnel. This can be done by focusing your testing and design efforts in the right places, instead of wasting time in areas where your website is doing well. As you can see, this is a different type of approach to conversion funnel analysis, but one that I think can help your organization better understand how visitors are flowing through your conversion path at a high level and provide benchmarks of this over time. If you already have most of your key conversion funnel KPI’s set, then this solution requires no tagging, just the creation of some new segments, so there is no reason to not give it a try!

Published on October 27, 2014 under Conversion Funnels, ReportBuilder, Segmentation

When to Use Variables vs SAINT in Adobe Analytics

In one of my recent Adobe SiteCatalyst (Analytics) “Top Gun” training classes, a student asked me the following question:

When should you use a variable (i.e. eVar or sProp) vs. using SAINT Classifications?

This is an interesting question that comes up often, so I thought I would share my thoughts on this and my rules of thumb on the topic.

Background Information

As a refresher, SiteCatalyst variables like eVars and sProps are used to store values that break down Success Events and Traffic Metrics respectively. For example, if you have a metric for onsite searches, you should be setting a Success Event and if you want to see that Success Event broken down by onsite search phrase, you might use an eVar to see the number of onsite searches by search phrase. SAINT Classifications allow you to apply meta-data to eVars and sProps so you can collect additional data or group data values into buckets. For example, you might use SAINT Classifications to group onsite search phrases into buckets like “Product-related terms” or “SKU # terms,” etc…

However, there are many cases in which you have a choice to capture data in a variable (eVar or sProp) or to use a SAINT Classification. Let’s look at an example to illustrate this. Imagine that you have a website and many of your customers have a Login ID that they use prior to ordering products. You are passing the Login ID value to an eVar so you can see all of your Success Events (i.e. Searches, Orders, Revenue) by Login ID in your SiteCatalyst reports. One day your boss approaches you and says that she wants to see your website KPI’s by the City visitors live in and that City is one of the attributes your back-end folks have related to each Login ID. At this point, you have two choices, one is to have your IT folks pass in the City to a new eVar using the Login ID value (if they can’t do this in real-time you could also pass this to SiteCatalyst via DB VISTA). The other option is to upload the City value for each Login ID as a SAINT Classification of the existing Login ID eVar. Both of these options would meet the objective of your boss, but which one is the right approach?

If I were a betting man, I would guess that most of you mentally chose option#2 which treats City as a SAINT attribute of the Login ID eVar.  Does that sound right? Why not? It saves you tagging work and helps you avoid working with IT, which usually has delays associated with it. However, would it surprise you to know that I would NOT choose option #2 in this case, and instead would pass the City to a new eVar? Before I tell you why, let me review some of the things I consider when making a decision like this:

Advantages of SAINT Classifications

  • Conserves Variables – One of the key advantages of using SAINT Classifications is that they allow you conserve variables, especially eVars, which tend to run out before any others
  • No Tagging Required – SAINT Classifications don’t require additional tagging
  • Retroactive – SAINT Classifications are retroactive so if you mess up when assigning a value, you can always fix it later by simply updating the SAINT data or fixing your rules if using the SAINT Rule Builder. For example, if you incorrectly assign a campaign tracking code to a Campaign Name, you can easily updated this after the fact. If you had passed the campaign name to an eVar, there wouldn’t be much you could do to fix historical data. However, the retroactive nature of SAINT Classifications can also be a negative at times (more on this later)

Advantages of Variables

  • Data Stored Forever – Once you pass data into a variable (eVar or sProp), it is there forever (for better or worse). This is useful if you want to forever document the value at the time a KPI took place
  • sProp Pathing – If you are passing data to an sProp, you can enable Pathing on the variable to see the sequence in which values were collected. Unfortunately, Pathing is not available on SAINT Classifications in Adobe Analytics (though it is in Discover, now known as Ad Hoc Analysis)
  • Data Feeds – Many companies use Data Feeds to export Adobe SiteCatalyst data to other data warehouses and Data Feeds only contain data that is organically passed into SiteCatalyst, which excludes SAINT data

As you can see, there is more than meets the eye when it comes to deciding which approach you should use when collecting data. Do you need data in a Data Feed? Do you need Pathing? Do you need to be able to update values after the fact? For each situation, I find the preceding items to be a useful checklist to keep handy.

And Now Back To Our Story…

So now that you have seen my list of considerations, can you see why I suggested using a new eVar for City in our scenario? In this case, the item I focused on was the retroactive nature of SAINT Classifications. In this case, if you were to treat City as a SAINT Classification of Login ID, things would probably work out ok initially, but might have issues in the long run. Let’s say that Adam Greco visits your site, logs-in using ID#12345 and then completes an order for $200. At some point you have uploaded a SAINT file that correctly associates Adam’s Login ID with the city of Chicago. At this point, you can use the SAINT Classification “City” report to pivot the data and see an order of $200 for the city of Chicago. However, now let’s imagine that Adam decides to move to San Francisco (something I have done twice in my life!). Your back-end data would at some point learn that Adam has changed cities, and the next time you upload your SAINT file, Adam’s Login ID will be associated with San Francisco. Since SAINT Classifications are retroactive, this will have the impact of changing all activity associated with Adam’s Login ID to look like Adam has always lived in San Francisco, even though all of his KPI’s to date were done in Chicago. This means that your “City” report is inaccurate since it is inflating metrics for San Francisco and deflating metrics for Chicago (and for those who say that the answer is to use Date-Enabled SAINT Classifications, I wish you luck as I have never seen a company have the time to keep those updated!).

This scenario shows why it is so important to review my list of considerations above. While it is a shame to have to waste an eVar for City, in this case when you can make an association between Login ID and City, using a new variable may be the right thing to do if you want to see what City the Login ID was associated with at the time that the KPI took place and lock that value in forever. In my experience, the retroactive issue is the one that I see companies make the most mistakes with and many don’t even know that they have made a mistake until I point it out to them. Therefore, I will share another rule of thumb I have learned over the years:

Consider whether the data attribute is inherent to the eVar/sProp value or whether it can change. If meta-data is inherent to the value being classified or it can change and it won’t disrupt your data, use SAINT Classifications. Otherwise, use a new variable. When I say “inherent,” I mean that it will most likely not change. For example, if one attribute you have for Login ID is “Gender,” there is a strong likelihood that this can be a SAINT Classification, since it is unlikely that this value will change for each Login ID (outside of a very complicated surgical procedure!). Another example might be birth date which will never change for each Login ID. However, if you have a loyally program and treat different Login ID’s as Basic, Gold or Silver members, that can easily change over time, so that would be a candidate for a new variable so you are documenting their status at the time that the KPI took place.

As you think about how many attributes you may currently be incorrectly storing via SAINT (it happens to the best of us), you may wonder how you will have enough variables to capture all of these attributes. Keep in mind that just because I am suggesting that you set variables instead of using SAINT for data that is affected by retroactivity, it doesn’t mean that you need to store each of these data points in their own variable. For example, if you decide to capture Member Status, City and Zip Code as variables instead of SAINT Classifications of Login ID, if they are all available on the same page (server call), you can concatenate them into one eVar (i.e. Gold Member|Chicago|60603) and then apply SAINT Classifications to that eVar. In this case, you are still capturing the actual value you need to make sure you are not burned by the retroactive nature of SAINT Classifications, but you can conserve eVars by capturing multiple values in one eVar and splitting out the data using SAINT later. In fact, if you capture the data in a methodical manner, you can even use RegEx in the SAINT Classification Rule Builder to do this automatically.

Final Thoughts

So there you have it. Some things that you should consider when deciding whether you should use a new variable or SAINT Classifications when collecting new data attributes in your Adobe SiteCatalyst (Analytics) implementation. If you would like to learn more tips like this about Adobe SiteCatalyst, consider attending my next Adobe SiteCatalyst “Top Gun” training class at our ACCELERATE conference in Atlanta this September. Thanks!

Published on August 18, 2014 under Conversion Variables, SAINT Classifications

Advanced Conversion Syntax Merchandising

As I have mentioned in the past, one of the Adobe SiteCatalyst (Analytics) topics I loathe talking about is Product Merchandising. Product Merchandising is complicated and often leaves people scratching their heads in my “Top Gun” training classes. However, many people have mentioned to me that my previous post on Product Merchandising eVars helped them a lot so I am going to continue sharing information on this topic. In this post, I will delve into some more advanced concepts related to Product Merchandising. If you have not read my other Product Merchandising post, I suggest you do that before attempting to digest this one!

eVar Allocation

When it comes to Conversion Syntax Merchandising eVars, I see many clients make mistakes with allocation. As a refresher, allocation is an Admin Console setting in which you tell SiteCatalyst if the eVar should use the first value it receives or the most recent value it receives, if multiple values are present prior to a success event taking place. For traditional eVars, it is common to use “Most Recent” allocation as a way to ensure that the most recent value passed gets credit for all future success. However, Conversion Syntax Merchandising eVars are a bit different in that this allocation is set at the product level when the Merchandising eVar value is “bound” to the product at the specified binding event(s) dictated in the Admin Console. This means that the Allocation setting is not actually for the current eVar value, but rather, for the eVar value and product combination.

Since that can be confusing, let’s look at an example. Suppose that a visitor comes to your website and conducts an internal search for “books.” You have an internal search phrase Merchandising eVar so you can see which phrases lead to each product being purchased. So in this scenario, the visitor has searched for “books” and adds Product #100 to the cart. Now, if the same visitor searches for “novels” and adds a different product to the cart (say Product #200), it doesn’t really matter if you use “Original Value (First)” allocation or “Most Recent (Last)” allocation for the Conversion Syntax Merchandising eVar since there are two different products involved and allocation is tied to the binding event of products and eVar values. However, in the unique case in which the same visitor searches for “novels” and finds the same product #100 and decides to add it to the cart a second time, you have to tell SiteCatalyst which eVar value (“books” or “novels”) should be “bound” to Product #100. In this scenario (which admittedly may not happen too often), most clients have indicated that they would like to attribute success to the first search term for product #100 vs. the second search term that led to the same product, since it was the original way they discovered the product. The allocation setting you make (Original or Most Recent), will determine which eVar value gets credit for if the same product is used more than once (product #100 in this example). Therefore, most people decide to use “Original Value (First)” as the allocation method for Conversion Syntax Merchandising eVars.

Fake Products

The next tricky thing about Conversion Syntax Merchandising eVars has to do with non-Order/Revenue success events. As you would expect, since it is their primary purpose, Conversion Syntax Merchandising eVars do a great job of making sure that each product has its own eVar value when it comes time for the purchase event such that each eVar value is correctly associated with the right product. However, there are cases in which you will want to use eVars for more than just the purchase event (Orders, Revenue, Units). For example, if you think back to the preceding example of internal search, besides storing the internal search phrases to associate with products upon purchase, you may also want to see something more basic, like how many internal searches took place for each search phrase. In that case, you would set a success event each time an internal search takes place, and you would already be setting the Conversion Syntax Merchandising eVar with the search phrase (i.e. “books”). Naturally, you would expect that if you add the internal searches success event to the internal search phrase Merchandising eVar report, you would see the number of searches taking place by phrase. Unfortunately, you would be wrong. What you may not know, is that Conversion Syntax Merchandising eVars only associate values with success events when the Products Variable is set or when binding has already occurred. Of course, you can set the Merchandising eVar anytime you want, and it will store a value, but it will not associate that value with success events unless a product value is passed to the Products Variable. I believe the reasoning here was that Merchandising was meant for products, so the two go hand-in-hand.

So what do you do if you want to use the same Conversion Syntax Merchandising eVar to both associate eVar values to products and as a way to breakdown custom success events by its values (like a traditional eVar)? You have two choices. The first option is to set two eVars – one with Merchandising and one without. In this example, you would have two internal search phrase eVars and just have to label them correctly (i.e. Internal Search Phrases-Merchandising & Internal Search Phrases). The other option is to set what I call a “fake” product. By passing in a “fake” product when setting a custom success event, you can trick Adobe SiteCatalyst into associating an eVar value with the custom success event. The process of setting a “fake” product is not very difficult and can be automated using some basic JavaScript code. The key is to increment the fake product by one each time it is set, so that SiteCatalyst doesn’t see the same product twice for the same visitor.

This is best illustrated via an example. Let’s continue with our internal search example, only this time, in addition to seeing how many times each internal search phrase leads to orders & revenue, you want to have a custom internal searches success event and be able to break it down by internal search phrase. The way most companies attempt to accomplish this is by using a success event and eVar code like this:

However, doing this will yield some undesirable results. Here is what a report of this eVar might look like in SiteCatalyst:

You will notice an abnormally high “None” percent in this report, which represents cases in which there was no association between the eVar value and the Internal Searches success event. Since it should be impossible to have an internal search event with no internal search phrase, you would expect to have no values in the “None” row for the internal searches success event (since most companies will still populate a value of [blank search] or something similar if users search with no phrase). The “None” value for Orders is fine, since that represents cases in which no search phrase was used prior to the order.

To rectify this, you would add the “fake” product to your code so it looks like this:

Setting this “fake” product allows SiteCatalyst to set the Conversion Syntax Merchandising eVar value at the same time that event 10 (Internal Searches) is fired, so you can see one internal search for “books,” while still keeping the Merchandising eVar5 value ready to bind to a “real” product at the time of your selected binding events (normally Cart Addition and Product View). Using this code results in a more accurate report when viewed with the custom success event, which in this case is the internal searches success event:

You may also notice that the “fake” product used is a value and then a number. You can make the “fake” product any value you’d like, but most people tend to label it in a way that indicates what event was taking place. In this case, I named it “intsearch1″ since the “fake” product had to do with internal search. If the “fake” product had been done as a result of an internal campaign eVar, I might have named it “intcampaign1″ instead. However, it is important to note that you need to increment the “fake” product value (i.e. intsearch2, intsearch3, etc…) so that the same value is not used more than once by the same visitor. Using the same “fake” product value for all cases (every search term in this example) would negate the power of Merchandising, which is designed to attribute different values to different products. The only exception to this is a scenario in which the visitor intentionally uses the same value (i.e. searches on the same search keyword in this scenario), and in that case you would want to re-use the same “fake” product value whether the duplicate value happened sequentially or after another “fake” value has been passed. It is also important to remember to add the success event that you want to use this eVar with to the list of “Binding Events” in the Administration Console. In this case, you would add the Internal Search success event to the previous list of Binding Events (i.e. Cart Addition and Product View).

Note that this “fake” product workaround only has to be used when all of the following conditions are true:

  1. You are using a Conversion Syntax Merchandising eVar
  2. You want to see that Merchandising eVar’s value associated with a success event other than Orders, Revenue, Units
  3. You are not setting the Products variable with a value at the time the success event is being set (this is why none of this applies to Product Syntax Merchandising eVars)

This means that you only really need to worry about this in cases where you want the Conversion Syntax eVar to do double-duty. I have found that the following situations are the main times I need this work-around:

  • Internal Search Phrase eVar and Internal Searches success event
  • Navigation Element Clicked eVar and Navigation Link Clicks success event
  • Internal Campaign eVar and Internal Campaign Clicks success event
  • Product Filter Element eVar and Product Filter Clicks

Final Thoughts

As I mentioned at the outset, Product Merchandising is a bit tricky and the detailed items here around Conversion Syntax can be even trickier. I have learned that there are some things that you just have to memorize when it comes to Adobe SiteCatalyst and this post covers a few of them.

P.S. If you want to learn more about this and other SiteCatalyst tips and tricks, please join me for my Adobe SiteCatalyst “Top Gun” class in Atlanta this September as part of our ACCELERATE conference.

Published on August 4, 2014 under Conversion Variables, Merchandising, Products Variable

SiteCatalyst Unannounced Features

Lately, Adobe has been sneaking in some cool new features into the SiteCatalyst product and doing it without much fanfare. While I am sure these are buried somewhere in release notes, I thought I’d call out two of them that I really like, so you know that they are there.

Search Within Add Metrics Dialog Window

You can now use a search filter within the Add Metrics window to easily find the metrics you want to add to a conversion or traffic report. Simply enter the search area and begin typing:

Weekdays & Weekends in Metric Reports

A few years ago, Adobe added the ability to filter metric reports by Mondays, Tuesdays, etc. This allowed you to look at the same day (i.e. Monday) over the last few months to see how a metric changed on each subsequent day of the week. However, one gap that remained was the ability to filter by weekdays or weekends. I am pleased to report that Adobe has now added these as valid filters in metric reports as shown here:


Create Segment From Fallout Report

When Adobe added sequential segmentation to the Analytics product, another “unannounced” feature emerged related to the Fallout report. Now when you launch a Fallout report, you have the option (shown in red below) to generate a new sequential segment using the items currently in the Fallout report.

When you click on the link shown above, you will be taken to a screen that looks like this:

From here, all you need to do is make tweaks or save the segment.

I am guessing that there are a few more unknown new features so if you spot one, please leave a comment here so we can all enjoy! Thanks!

Published on July 28, 2014 under Fallout Reoprt, Feature Request, Segmentation

Competitor Pricing Analysis

One of my newest clients is in a highly competitive business in which they sell similar products as other retailers. These days, many online retailers have a hunch that they are being “Amazon-ed,” which they define as visitors finding products on their website and then going to see if they can get it cheaper/faster on This client was attempting to use time spent on page as a way to tell if/when visitors were leaving their site to go price shopping. Unfortunately, I am not a huge fan of time spent on page, since a page could have wide varieties of time spent on page due to many other reasons other than price shopping (i.e. working, going to the bathroom, yelling at kids-in my case, etc.). Because of this, I wanted to come up with an alternative way to see if price was a potential reason for lost business. However, before I share my idea, I want to add a disclaimer that there is no [legal] way to really know if people are leaving your site to buy something elsewhere due to price, but the technique I will show may shed some light on how pricing impacts your conversion rates.

Competitor Pricing – Step 1

The first part of my competitive pricing solution requires that for some or all of your products (SKU’s), you have detailed competitor pricing. Many of my clients have teams that are constantly monitoring competitive websites and documenting the current prices for some or all of their products. If your organization doesn’t have this, my solution will not work (so you can stop reading now!). If you do have this information, you will need to create a spreadsheet that has your product ID’s (values passed to the Products Variable) and your competitors’ price in the next column. If you have multiple competitors, you can add a new column for each one:

Next, you will have to talk with your Adobe Account Manager to create a new DB Vista Rule. As a refresher, a DB Vista Rule allows you to populate SiteCatalyst variables with values from a database lookup table stored on Adobe’s secure servers. This will allow you to pass in the competitor price for each product viewed and added to cart on your website via a server-side lookup. The Adobe Engineering Services team can walk you through how to upload the competitor prices to DB Vista and how to updated it over time. Keep in mind that you will need to have a process in place that updates competitors’ prices as they change, preferably within the hour so your data is accurate. This is often done by FTP’ing changes on an hourly basis. Creating a DB Vista Rule will cost you a one-time fee of a few thousand dollars, but that you can maintain it yourself thereafter. If you want to save some money, you can ask your internal developers if they can ping a similar competitor cost table in real-time as visitors are on your site, but in my experience, the work effort around that is much more than the cost of the DB Vista Rule.

Competitor Pricing – Step 2

Once you have a way to send competitor prices (by Product ID) into SiteCatalyst, where should it go? What I propose is that you pass the Product ID, your price and your competitors’ price, concatenated in a string to a new Conversion Variable (eVar). Since your visitors may view multiple products, you will also want to make this a Merchandising eVar using Product Syntax. I recommend that the data be passed when visitors view the product detail page or add a product to the shopping cart. For example, if a visitor views SKU # 10010100 and your price is $30.00 and your competitors’ price is $29.50, you would pass this:

In this case, the product ID is available on the page, as is your current price. The only data point you don’t have is your competitors’ price, which can be added to the string via the DB Vista Rule. This allows you to capture all of the key elements needed to do analysis. For example, if you add the Product Views success event to this new eVar report and filter for the above product ID, you will see all of the different pricing permutations between you and your competitor for the selected date range:

Next, you can add Cart Additions or Orders to the report to see how often each product converted with the given pricing spread:

In this fictitious example, you can see that Orders per Product View was up significantly when pricing was the same or better than the competitor for the product in question.

But there is even more information you can glean when we apply SAINT Classifications. For example, you can classify the product with just the pricing range difference to boil this data down to a finite number of rows in a way that is a tad easier to interpret:

Taking this concept one step further, you can apply another SAINT Classification that takes the Product ID out of the equation to see how the pricing spread impacts all products:

For those that really need things spelled out for them, you can use SAINT to create the highest level view of your pricing by boiling the data down to cases where you were higher, lower or the same with respect to pricing:

Obviously, the last few reports can still be viewed by Product by simply using the Products variable breakdown, but I think they show a good high-level view of pricing impact. Keep in mind that each of these rows can be trended over time in SiteCatalyst or ReportBuilder to see a long-term effect.

Product Margin

For those of you who like to kick things up a notch, you can also use the same DB Vista Rule to incorporate your product margin to the new eVar. If you upload your product costs to the DB Vista table, you can have the rule calculate the difference between your price and your cost and add the result as another parameter to the eVar. Then, via SAINT Classifications, you can split this out and see cases where your price is higher than your competitor broken down by your margin:

In this case, the product in question has a cost of $26.00 so the difference is passed as the last parameter to the eVar so we can include it in our analysis. This allows us to create new SAINT Classification where we can see Orders/Product View (or Cart Addition) for all products by the product margin amount:

Since all SAINT Classifications can be broken down by each other, this also allows us to see our conversion rates by price difference broken down by product margin amount:

Keep in mind that all SAINT Classifications are eligible for use in Segmentation, which means that you can now build a segment using pricing differential to competitors and product margin as criteria when doing web analysis! Also, if you want to learn how to add product costs as a new metric with which you can calculate product margin as a KPI, check out my old blog post from 2008 on how to do that.

Final Thoughts

As I stated early on, there is no way to make a direct connection between people looking at your site and then price shopping on another site, but my theory is that if you consistently under-perform when you are priced higher than your known competitor(s), this approach may give you some data to validate your theories. Obviously, there are other factors such as shipping, taxes, etc. that can have a major factor, but some of those can be included in this solution as well by simply adding additional parameters to the eVar shown above. Other ways to do similar competitive analysis include using Voice of Customer surveys to ask your visitors if they are price shopping, or moving all SiteCatalyst and competitive data into Adobe’s Data Workbench product. Either way, if you like the concept, you can give it a try or contact me if you want some assistance. If you have other ways to do this, feel free to leave a comment here. Thanks!


Published on July 21, 2014 under Conversion Variables, Products Variable, SAINT Classifications, Vista & DB Vista

Product Cart Addition Sequence

In working with a client recently, an interesting question arose around cart additions. This client wanted to know the order in which visitors were adding products to the shopping cart. Which products tended to be added first, second third, etc.? They also wanted to know which products were added after a specific product was added to the cart (i.e. if a visitor adds product A, what is the next product they tend to add?). Finally, they wondered which cart add product combinations most often lead to orders.

I had to admit that I was surprised that no one had asked me these questions in the past (a rarity for an old-timer like me!). However, I love getting new questions since it allows me to come up with cool ways to answer them. Therefore, in this post, I will share some of the ideas that I am proposing to this client in case your organization has similar questions.

Product Cart Order Sequence

To tackle the question of which products are added to the cart first, second, third, my first instinct was to try out the cool new sequential segmentation in Adobe Reports & Analytics (SiteCatalyst). This feature has been around in Ad Hoc Analysis (Discover) for a while, but is new to Adobe Reports and Analytics. However, the more I thought about this, the more I realized that sequential segmentation wouldn’t help very much. The only scenario in which I think it might help, is if you want to know exactly how often Product A was followed by Product B and then Product C and an order took place thereafter. If you know the sequence you are looking for, you can isolate it and look at any report (i.e. Visits, Orders) using sequential segmentation.

But my client is looking to do more exploration and find out which products are added first, second, third, etc. Therefore, my thoughts turned to my old friend Pathing. Pathing is a great way to see a sequence of anything happening on a website/app. In this case, the sequence I am looking to see is products added to cart. Therefore, a cool way to answer this question would be to create a new Traffic Variable (sProp) and pass the Product ID’s (or Names) of each product added to the shopping cart to the variable when a Cart Addition takes place. Once this is done, you can enable Pathing on this new “Products Added to Cart” sProp so you can see all of the available pathing reports. For example, you can open the Full Paths report to see the most popular product combinations added to the shopping cart. Obviously, the first batch of entries in this report will be cases with just one product added:

However, when you get deeper into the results, you will start to see multi-product combinations:

Of course, you can narrow these paths to a specific product in this report using the “Showing Paths containing” feature:

Or you could also use the next page flow report to see products added after a specific product (in this case an Exit means that no other products were added to the cart in the same visit):


Or you could see similar information using Pathfinder:


As you can see, by simply passing product ID’s (or names) to a new sProp, you can gain insight into which products are added the most and in which combinations.

If you have a Product Category SAINT Classifications for your Products variable, you can also see all of the above sports by Product Category in Discover (Ad Hoc Analysis) by using pathing on classifications. Or you could always pass in the Product Category to another sProp if it is known at the time as suggested in the comments by Jan Exner.

But What About Orders?

While the preceding concept may be interesting, it falls short of the original goal because it doesn’t show which of these cart addition sequences leads to orders. While you could segment on visits with an order and then look at the remaining paths, I prefer to visualize the actual paths and see exactly when the order took place. Therefore, to add this component, I suggest that you pass the phrase “order” to the same new traffic variable on the order confirmation page. By including this one new value, it will be included in the pathing reports and can be used in any of the reports above or the fall-out report. You can also use the previous page flow report beginning with the “order” value to see the most common cart addition product sequences (paths) that lead to success:

This is probably best done in Ad Hoc Analysis (Discover) where you can have unlimited branches in the report, but you can still extract value from this in Adobe Reports & Analytics.

Other Pathing Reports

While I haven’t had much time to play with this concept, I would imagine that you could also extract some useful information from the additional pathing reports that are enabled when you turn on pathing for this new “Products Added to Cart” sProp. For example, if you want the “411″ on a particular product being added to the cart, you can open the Summary report:

You could also see how often each product was the only product added to the cart or abandoned in the cart by using an Exit Rate formula (Exits/Visits).  Keep in mind that if a visitor adds another product to the cart, the product in question will no longer be an “exit” as far as this report is concerned, so the exit rate below is the combination of single carts + abandons per visit:

You may even be able to use the “Page Depth” (even though they really aren’t pages!) to see how often a particular product was the first one added to cart, second, etc… I say may, because this is what I think this report is showing, but I need Ben Gaines to verify this for me!

Lastly, if you care about Cart Removals (which is not something I normally care about since many people simply exit instead of removing products), you could also include them in this approach. To do this, you’d have to change the values you pass to the sProp to be “Add:[Product ID or Name]” and then use “Remove:[Product ID or Name]” instead of just passing in the product ID or name.

Final Thoughts

As those of you who have read my posts in the past know, sometimes, I come up with crazy ideas like this and they work out, but other times they don’t. If you think this concept is interesting, feel free to give it a try, but keep in mind that this is just a concept for now until I get some clients to do more experimentation…Enjoy!

Published on July 9, 2014 under Pathing, Products Variable, Shopping Cart


Recent Blog Posts

Is On-Demand Radio the Next Big Digital Channel?
Tim Wilson, Partner

No, I’m not referring to SecondLife (which, BTW, is still around and, apparently, still has life in it). I’m referring to the fact that podcasts just turned ten, and there are a lot of signs that they might be one of the "next big things" in digital. Earlier this year, when I wrote a post announcing the launch of the Digital Analytics Power Hour podcast, I listed three examples as to how it seemed like podcasts were making a comeback ...

Continue reading this article ... ... more from Tim Wilson

The Right Use for Real Time Data
Michele Kiss, Senior Partner

Vendors commonly pitch the need for “real-time” data and insights, without due consideration for the process, tools and support needed to act upon it. So when is real-time an advantage for an organization, and when does it serve as a distraction? And how should analysts respond to requests for real-time data and dashboards?

Continue reading this article ... ... more from Michele Kiss

Using Excel to Count Text Occurrences
Tim Wilson, Partner

I had this come up a couple of weeks ago with a client, and I realized it was something I’d done dozens of times…but had never written down the “how” on doing. So, here we go. This is a post about one very specific application of Excel, but it is also implicitly a post about how, with an intermediate level of knowledge of Excel, with a little bit of creativity, and a strong aversion to manually parsing/copying/pasting anything, a spreadsheet can accomplish a lot! And very quickly!

Continue reading this article ... ... more from Tim Wilson

The Curse of Bounce Rate and 'Easy' Metrics ...
Michele Kiss, Senior Partner

One of the benefits of having a number of friends in the analytics industry is the spirited (read: nerdy) debates we get in to. In one such recent discussion, we went back and forth over the merits of "bounce rate." I am (often vehemently) against the use of "bounce rate." However, when I stepped back, I realized you could summarize my argument against bounce rate quite simply ...

Continue reading this article ... ... more from Michele Kiss

Happy New Year from Web Analytics and Team Demystified
Eric T. Peterson, Senior Partner

Happy belated new year to everyone reading this blog — on behalf of everyone at Web Analytics Demystified and Team Demystified I sincerely hope you had a wonderful and relaxing holiday season and that you’re ready to wade back into the analytical and optimization fray! Since I last wrote a few cool things have happened ...

Continue reading this article ... ... more from Eric T. Peterson

Introducing the Digital Analytics Power Hour Podcast
Tim Wilson, Partner

Happy New Year! Reflecting on 2014, I have to give it high marks from a personal and professional fulfillment front, and I’m looking to outperform those results in 2015 ... by podcasting!

Continue reading this article ... ... more from Tim Wilson

Every Analyst Should Follow
Tim Wilson, Partner

I’ll admit it: I’m a Nate Silver fanboy. That fandom is rooted in my political junky-ism and dates back to the first iteration of back in 2008. Since then, Silver joined the New York Times, so migrated to be part of that media behemoth, and, more recently, Silver left the New York Times for ESPN — another media behemoth.

Continue reading this article ... ... more from Tim Wilson

Demystified's Data Governance Principles
John Lovett, Senior Partner

In digital analytics, "Governance" is a term that is used casually to mean many different things. In our experience at Web Analytics Demystified, every organization inherently recognizes that governance is an important component of their data strategy, yet every company has a different interpretation of what it means to govern their data. In an effort to dispel the misconceptions surrounding what it means to truly steward digital data, Web Analytics Demystified has developed seven data governance principles that all organizations collecting and using digital data should adhere to.

Continue reading this article ... ... more from John Lovett

Three Foundational Tips to Successfully Recruit in Analytics
Michele Kiss, Partner

Hiring in the competitive analytics industry is no easy feat. In most organizations, it can be hard enough to get headcount – let alone actually find the right person! These three foundational tips are drawn from successful hiring processes in a variety of verticals and organizations.

Continue reading this article ... ... more from Michele Kiss

Slack Demystified
Adam Greco, Senior Partner

Those of you who follow my blog have come to know that when I learn a product (like Adobe SiteCatalyst), I really get to know it and evangelize it. Back in the 90′s I learned the Lotus Notes enterprise collaboration software and soon became one of the most proficient Lotus Notes developers in the world, building most of Arthur Andersen’s global internal Lotus Notes apps. In the 2000′s, I came across Omniture SiteCatalyst, and after a while had published hundreds of blog posts on Omniture’s (Adobe’s) website and my own and eventually a book! One of my favorite pastimes is finding creative ways to apply a technology to solve everyday problems or to make life easier.

Continue reading this article ... ... more from Adam Greco

Profile Website Visitors via Campaign Codes and More
Adam Greco, Senior Partner

One of the things customers ask me about is the ability to profile website visitors. Unfortunately, most visitors to websites are anonymous, so you don't know if they are young, old, rich, poor, etc. If you are lucky enough to have authentication or a login on your website, you may have some of this information, but for most of my clients the "known" percentage is relatively low. In this post, I'll share some things you can do to increase your visitor profiling by using advertising campaigns and other tools.

Continue reading this article ... ... more from Adam Greco

A Primer on Cookies in Web Analytics
Josh West, Partner

Some of you may have noticed that I don't blog as much as some of my colleagues (not to mention any names, but this one, this one, or this one). The main reason is that I'm a total nerd (just ask my wife), but in a way that is different from most analytics professionals. I don't spend all day in the data - I spend all data writing code. And it's often hard to translate code into entertaining blog posts, especially for the folks that tend to spend a lot of time reading what my partners have to say.

Continue reading this article ... ... more from Josh West

Excel Dropdowns Done Right
Tim Wilson, Partner

Do you used in-cell dropdowns in your spreadsheets? I used them all the time. It's both an ease-of-use and a data quality maneuver: clicking a dropdown is faster than typing a value, and it's really hard to mis-type a value when you're not actually typing!

Continue reading this article ... ... more from Tim Wilson

The Downfall of Tesco and the Omniscience of Analytics
Michele Kiss, Partner

Yesterday, an article in the Harvard Business Review provided food for thought for the analytics industry. In Tesco's Downfall Is a Warning to Data-Driven Retailers, author Michael Schrage ponders how a darling of the "analytics as a competitive advantage" stories, British retailer Tesco, failed so spectacularly - despite a wealth of data and customer insight.

Continue reading this article ... ... more from Michele Kiss

Creating Conversion Funnels via Segmentation
Adam Greco, Senior Partner

Regardless of what type of website you manage, it is bound to have some sort of conversion funnel. If you are an online retailer, your funnel may consist of people looking at products, selecting products, and then buying products. If you are a B2B company, your funnel may be higher-level like acquisition, research, trial and then form completion.

Continue reading this article ... ... more from Adam Greco

10 Tips for Building a Dashboard in Excel
Tim Wilson, Partner

This post has an unintentionally link bait-y post title, I realize. But, I did a quick thought experiment a few weeks ago after walking a client through the structure of a dashboard I'd built for them to see if I could come up with ten discrete tips that I'd put to use when I built it. Turns out…I can!

Continue reading this article ... ... more from Tim Wilson

Exploring Optimal Post Timing ... Redux
Tim Wilson, Partner

Back in 2012, I developed an Excel worksheet that would take post-level data exported from Facebook Insights and do a little pivot tabling on it to generate some simple heat maps that would provide a visual way to explore when, for a given page, the optimal times of day and days of the week are for posting.

Continue reading this article ... ... more from Tim Wilson

What I Love: Adobe and Google Analytics*
Tim Wilson, Partner

While in Atlanta last week for ACCELERATE, I got into the age-old discussion of "Adobe Analytics vs. Google Analytics." I'm up to my elbows in both of them, and they're both gunning for each other, so this list is a lot shorter than it would have been a couple of years ago.

Continue reading this article ... ... more from Tim Wilson

Top 5 Metrics You're Measuring Incorrectly ... or Not
Eric T. Peterson, Senior Partner

Last night as I was casually perusing the days digital analytics news - yes, yes I really do that - I came across a headline and article that got my attention. While the article's title ("Top 5 Metrics You're Measuring Incorrectly") is the sort I am used to seeing in our Buzzfeed-ified world of pithy "made you click" headlines, it was the article's author that got my attention.

Continue reading this article ... ... more from Eric T. Peterson

Bulletproof Business Requirements
John Lovett, Senior Partner

As a digital analytics professional, you've probably been tasked with collecting business requirements for measuring a new website/app/feature/etc. This seems like a task that's easy enough, but all too often people get wrapped around the axle and fail to capture what's truly important from a business users' perspective. The result is typically a great deal of wasted time, frustrated business users, and a deep-seated distrust for analytics data.

Continue reading this article ... ... more from John Lovett

Welcome to Team Demystified: Nancy Koons and Elizabeth Eckels!
Eric T. Peterson, Senior Partner

I am delighted to announce that our Team Demystified business unit is continuing to expand with the addition of Nancy Koons and Elizabeth "Smalls" Eckels. Our Team Demystified efforts are exceeding all expectation and are allowing Web Analytics Demystified to provide truly world-class services to our Enterprise-class clients at an entirely new scale.

Continue reading this article ... ... more from Eric T. Peterson

When to Use Variables vs SAINT in Adobe Analytics
Adam Greco, Senior Partner

In one of my recent Adobe SiteCatalyst (Analytics) "Top Gun" training classes, a student asked me the following question: When should you use a variable (i.e. eVar or sProp) vs. using SAINT Classifications? This is an interesting question that comes up often, so I thought I would share my thoughts on this and my rules of thumb on the topic.

Continue reading this article ... ... more from Adam Greco

5 Tips for #ACCELERATE Exceptionalism
Tim Wilson, Partner

Next month's ACCELERATE conference in Atlanta on September 18th will be the fifth - FIFTH!!! - one. I wish I could say I'd attended every one, but, sadly, I missed Boston due to a recent job change at the time. I was there in San Francisco in 2010, I made a day trip to Chicago in 2011, and I personally scheduled fantastic weather for Columbus in 2013.

Continue reading this article ... ... more from Tim Wilson

I've Become Aware that Awareness Is a #measure Bugaboo
Tim Wilson, Partner

A Big Question that social and digital media marketers grapple with constantly, whether they realize it or not: Is "awareness" a valid objective for marketing activity?

I've gotten into more than a few heated debates that, at their core, center around this question. Some of those debates have been with myself (those are the ones where I most need a skilled moderator!).

Continue reading this article ... ... more from Tim Wilson

Advanced Conversion Syntax Merchandising
Adam Greco, Senior Partner

As I have mentioned in the past, one of the Adobe SiteCatalyst (Analytics) topics I loathe talking about is Product Merchandising. Product Merchandising is complicated and often leaves people scratching their heads in my "Top Gun" training classes. However, many people have mentioned to me that my previous post on Product Merchandising eVars helped them a lot so I am going to continue sharing information on this topic.

Continue reading this article ... ... more from Adam Greco

Team Demystified Update from Wendy Greco
Eric T. Peterson, Senior Partner

When Eric Peterson asked me to lead Team Demystified a year ago, I couldn't say no! Having seen how hard all of the Web Analytics Demystified partners work and that they are still not able to keep up with the demand of clients for their services, it made sense for Web Analytics Demystified to find another way to scale their services. Since the Demystified team knows all of the best people in our industry and has tons of great clients, it is not surprising that our new Team Demystified venture has taken off as quickly as it has.

Continue reading this article ... ... more from Eric T. Peterson

SiteCatalyst Unannounced Features
Adam Greco, Senior Partner

Lately, Adobe has been sneaking in some cool new features into the SiteCatalyst product and doing it without much fanfare. While I am sure these are buried somewhere in release notes, I thought I'd call out two of them that I really like, so you know that they are there.

Continue reading this article ... ... more from Adam Greco

Hello. I'm a Radical Analytics Pragmatist
Tim Wilson, Partner

I was reading a post last week by one of the Big Names in web analytics…and it royally pissed me off. I started to comment and then thought, "Why pick a fight?" We've had more than enough of those for our little industry over the past few years. So I let it go.

Except I didn't let it go.

Continue reading this article ... ... more from Tim Wilson

Competitor Pricing Analysis
Adam Greco, Senior Partner

One of my newest clients is in a highly competitive business in which they sell similar products as other retailers. These days, many online retailers have a hunch that they are being "Amazon-ed," which they define as visitors finding products on their website and then going to see if they can get it cheaper/faster on This client was attempting to use time spent on page as a way to tell if/when visitors were leaving their site to go price shopping.

Continue reading this article ... ... more from Adam Greco

How to Deliver Better Recommendations: Forecast the Impact!
Michele Kiss, Partner

One of the most valuable ways to be sure your recommendations are heard is to forecast the impact of your proposal. Consider what is more likely to be heard: "I think we should do X ..." vs "I think we should do X, and with a 2% increase in conversion, that would drive a $1MM increase in revenue ..."

Continue reading this article ... ... more from Michele Kiss

ACCELERATE 2014 "Advanced Analytics Education" Classes Posted
Eric T. Peterson, Senior Partner

I am delighted to share the news that our 2014 "Advanced Analytics Education" classes have been posted and are available for registration. We expanded our offering this year and will be offering four concurrent analytics and optimization training sessions from all of the Web Analytics Demystified Partners and Senior Partners on September 16th and 17th at the Cobb Galaria in Atlanta, Georgia.

Continue reading this article ... ... more from Eric T. Peterson

Product Cart Addition Sequence
Adam Greco, Senior Partner

In working with a client recently, an interesting question arose around cart additions. This client wanted to know the order in which visitors were adding products to the shopping cart. Which products tended to be added first, second third, etc.? They also wanted to know which products were added after a specific product was added to the cart (i.e. if a visitor adds product A, what is the next product they tend to add?). Finally, they wondered which cart add product combinations most often lead to orders.

Continue reading this article ... ... more from Adam Greco

7 Tips For Delivering Better Analytics Recommendations
Michele Kiss, Partner

As an analyst, your value is not just in the data you deliver, but in the insight and recommendations you can provide. But what is an analyst to do when those recommendations seem to fall on deaf ears?

Continue reading this article ... ... more from Michele Kiss

Overcoming The Analyst Curse: DON'T Show Your Math!
Michele Kiss, Partner

If I could give one piece of advice to an aspiring analyst, it would be this: Stop showing your "math". A tendency towards "TMI deliverables" is common, especially in newer analysts. However, while analysts typically do this in an attempt to demonstrate credibility ("See? I used all the right data and methods!") they do so at the expense of actually being heard.

Continue reading this article ... ... more from Michele Kiss

Making Tables of Numbers Comprehensible
Tim Wilson, Partner

I'm always amazed (read: dismayed) when I see the results of an analysis presented with a key set of the results delivered as a raw table of numbers. It is impossible to instantly comprehend a data table that has more than 3 or 4 rows and 3 or 4 columns. And, "instant comprehension" should be the goal of any presentation of information - it's the hook that gets your audience's brain wrapped around the material and ready to ponder it more deeply.

Continue reading this article ... ... more from Tim Wilson

Automating the Cleanup of Facebook Insights Exports
Tim Wilson, Partner

This post (the download, really - it's not much of a post) is about dealing with exports from Facebook Insights. If that's not something you do, skip it. Go back to Facebook and watch some cat videos. If you are in a situation where you get data about your Facebook page by exporting .csv or .xls files from the Facebook Insights web interface, then you probably sometimes think you need a 52" monitor to manage the horizontal scrolling.

Continue reading this article ... ... more from Tim Wilson

The Recent Forrester Wave on Web Analytics ... is Wrong
Eric T. Peterson, Senior Partner

Having worked as an industry analyst back in the day I still find myself interested in what the analyst community has to say about web analytics, especially when it comes to vendor evaluation. The evaluations are interesting because of the sheer amount of work that goes into them in an attempt to distill entire companies down into simple infographics, tables, and single paragraph summaries.

Continue reading this article ... ... more from Eric T. Peterson

Funnel Visualizations That Make Sense
Tim Wilson, Partner

Funnels, as a concept, make some sense (although someone once made a good argument that they make no sense, since, when the concept is applied by marketers, the funnel is really more a "very, very leaky funnel," which would be a worthless funnel - real-world funnels get all of a liquid from a wide opening through a smaller spout; but, let's not quibble).

Continue reading this article ... ... more from Tim Wilson

Reenergizing Your Web Analytics Program & Implementation
Adam Greco, Senior Partner

Those of you who have read my blog posts (and book) over the years, know that I have lots of opinions when it comes to web analytics, web analytics implementations and especially those using Adobe Analytics. Whenever possible, I try to impart lessons I have learned during my web analytics career so you can improve things at your organization.

Continue reading this article ... ... more from Adam Greco

Registration for ACCELERATE 2014 is now open
Eric T. Peterson, Senior Partner

I am excited to announce that registration for ACCELERATE 2014 on September 18th in Atlanta, Georgia is now open. You can learn more about the event and our unique "Ten Tips in Twenty Minutes" format on our ACCELERATE mini-site, and we plan to have registration open for our Advanced Analytics Education pre-ACCELERATE training sessions in the coming weeks.

Continue reading this article ... ... more from Eric T. Peterson

Current Order Value
Adam Greco, Senior Partner

I recently had a client pose an interesting question related to their shopping cart. They wanted to know the distribution of money its visitors were bringing with them to each step of the shopping cart funnel.

Continue reading this article ... ... more from Adam Greco

A Guide to Segment Sharing in Adobe Analytics
Tim Wilson, Partner

Over the past year, I've run into situations multiple times where I wanted an Adobe Analytics segment to be available in multiple Adobe Analytics platforms. It turns out…that's not as easy as it sounds. I actually went multiple rounds with Client Care once trying to get it figured out. And, I've found "the answer" on more than one occasion, only to later realize that that answer was a bit misguided.

Continue reading this article ... ... more from Tim Wilson

Currencies & Exchange Rates
Adam Greco, Senior Partner

If your web analytics work covers websites or apps that span different countries, there are some important aspects of Adobe SiteCatalyst (Analytics) that you must know. In this post, I will share some of the things I have learned over the years related to currencies and exchange rates in SiteCatalyst.

Continue reading this article ... ... more from Adam Greco

Linking Authenticated Visitors Across Devices
Adam Greco, Senior Partner

In the last few years, people have become accustomed to using multiple digital devices simultaneously. While watching the recent winter Olympics, consumers might be on the Olympics website, while also using native mobile or tablet apps. As a result, some of my clients have asked me whether it is possible to link visits and paths across these devices so they can see cross-device paths and other behaviors.

Continue reading this article ... ... more from Adam Greco

The 80/20 Rule for Analytics Teams
Eric T. Peterson, Senior Partner

I had the pleasure last week of visiting with one of Web Analytics Demystified's longest-standing and, at least from a digital analytical perspective, most successful clients. The team has grown tremendously over the years in terms of size and, more importantly, stature within the broader multi-channel business and has become one of the most productive and mature digital analytics groups that I personally am aware of across the industry.

Continue reading this article ... ... more from Eric T. Peterson

Ten Things You Should ALWAYS Do (or Not Do) in Excel
Tim Wilson, Partner

Last week I was surprised by the Twitter conversation a fairly innocuous vent-via-Twitter tweet started, with several people noting that they had no idea you could simple turn off the gridlines.

Continue reading this article ... ... more from Tim Wilson

Omni Man (and Team Demystified) Needs You!
Adam Greco, Senior Partner

As someone in the web analytics field, you probably hear how lucky you are due to the fact that there are always web analytics jobs available. When the rest of the country is looking for work and you get daily calls from recruiters, it isn't a bad position to be in! At Web Analytics Demystified, we have more than doubled in the past year and still cannot keep up with the demand, so I am reaching out to you ...

Continue reading this article ... ... more from Adam Greco

A Useful Framework for Social Media "Engagements"
Tim Wilson, Partner

Whether you have a single toe dipped in the waters of social media analytics or are fully submerged and drowning, you've almost certainly grappled with "engagement." This post isn't going to answer the question "Is engagement ROI?" ...

Continue reading this article ... ... more from Tim Wilson

It's not about "Big Data", it's about the "RIGHT data"
Michele Kiss, Partner

Unless you've been living under a rock, you have heard (and perhaps grown tired) of the buzzword "big data." But in attempts to chase the "next shiny thing", companies may focus too much on "big data" rather than the "right data."

Continue reading this article ... ... more from Michele Kiss

Eric T.








Contact Us

You can contact Web Analytics Demystified day or night via email or by reaching out to one of our Partners directly.

» Contact Information

Web Analytics Demystified, Inc.
P.O. Box 13303
Portland, OR 97213
(503) 282-2601

Useful Links

  • illaqueate