Segmentation: The party game
Every December, at the Omniture holiday party, spouses, partners, and dates of employees get a crash course in the value of some of our products, courtesy of a “segmentation game.” Everybody stands up, and the emcee (CTO Brett Error) reads from a list of criteria and instructions, such as, “If you have a five-dollar bill on your person, please sit down,” or “If you have ever been told that you look like a celebrity, remain standing; everybody else, sit.” (When you’re asked to sit down, you’re out.) The idea is that eventually, through this sometimes bizarre and always humorous segmentation, the group of a couple thousand is whittled down to one winner.
My wife is not a web analyst, marketer, developer or IT professional. For her, the game is a welcome introduction to the idea that businesses need to be able to break apart their online data to focus on key groups and demographics. SiteCatalyst offers segmentation functionality, often through the use of correlations and subrelations, but the real powerhouses of segmentation in the Online Marketing Suite are Data Warehouse, Discover, and ASI. Since most readers of this blog do understand the concept of segmentation, and why it is critically important to online business optimization, I’d like to dive a little bit deeper here and explain exactly how to build a couple of commonly used segments to illustrate how this process works.
If you haven’t read Adam Greco’s post on segmentation, I highly recommend it. Especially important is the following explanation of segmentation “containers”—Page Views, Visits, and Visitors—
Here’s a visual representation of this:
(I made it myself; can you tell?) If I were to segment on value A using the Page Views container, I would get the two page views containing “A” in the first visit shown above. If I were to segment on value A using the Visits container, I would get the five page views in the visit where “A” exists. And if I were to segment on value A using the Visitors container, I would get both visits, because the visitor did have a value of “A” at one point.
An extremely high percentage of perceived issues that I’ve seen involving the reports returned by Data Warehouse and ASI are based in a misunderstanding of containers. Admittedly, they are complex and difficult to explain. Adam did a great job clarifying exactly what scope of data is returned by each container. Users always need to consider this scope when building a segment; do you want the visitor’s entire history, or just a relevant piece of it? Do you want all of the page views in a visit to be included, or just a portion of them?
Pulling conversion data for a campaign tracking code seems straightforward enough. Most people probably define the segment as visits where tracking code equals/contains [value]. This is certainly a valid option. However, some users are frustrated when the resulting reports contain data for tracking codes that do not match the segment. Some variation on the question, “If I specified tracking code XYZ, then why am I seeing conversions tied to tracking code ABC in my report?” has been asked of me literally dozens of times. The answer is that the visit container includes all data from any visit that matches the segment. You may have specified tracking code XYZ, but both tracking codes were ever passed during the same visit, then you will see both in your report. That might be really valuable to you; it shows which campaigns are clicked during the same visit as your target campaign. But in the event that you want to kick out any page views within the visit that don’t pertain to your desired tracking code, use the Page Views container to include page views where tracking code equals/contains [value]:
You may be thinking, “Won’t this only include the page views where s.campaign was set? What if I want to include page views where conversion occurred so that this data can be tied back to the tracking code?” The segmentation tools are smart enough to include all page views where the given value was passed or where it persisted from a previous page view. So using the page view container will include all page views tied to the tracking code, including those on which conversion happened.
Note that you can use “tracking code is greater than or equal to [exclamation point]” to include any tracking code in the segment. The “greater than or equal to !” statement means “is not null” or “has any value at all.” (Conversely, “less than !” returns only data where there was no tracking code.) However, keep in mind that the principles discussed above are still relevant. If the user’s visit contained some page views where there was no tracking code, and you segment for visits where tracking code is not null, the page views where there was no tracking code will also be included.
Accurate visit/visitor counts in any container
Users often choose the visitor container thinking that it is the only way to get an accurate unique visitor count (or the visit container to get an accurate visit count) for the segment. This is untrue. Segmentation using the Page View container is often the most direct way to answer the given question, and it will return correct visitor and visit counts. Data Warehouse doesn’t need all of the data from a user visit in order to attribute a visit to a variable value. For example, if you’re segmenting using the Page View bucket for rows where eVar1 equals “Blue,” and request the visits metric, you will get a certain number of rows where eVar1 equals “Blue.” Data Warehouse then examines the visitor data for those rows and calculates the number of visits by finding the unique visitor ID and visit number combinations. The number of visits will not be higher using the visit container with the same segment definition, because the number of unique combinations will not be any different (and the same holds true with the visitors metric).
Let’s call this an early chapter in the book on segmentation in the Omniture Online Marketing Suite. I recognize that this post may introduce a number of questions for some of you, and that’s okay. Please let me know what questions or concerns you have, and I’ll address them in follow-up posts. As nerdy as it may sound, I love segmentation, and I would be happy to explain any of this further. As always, you can contact me via Twitter, FriendFeed, LinkedIn, or by e-mailing omniture care [at] omniture dot com.
And for the record, I’ve never been told that I look like a celebrity, so if anyone can suggest one to whom I bear even the slightest resemblance, please let me know; it might help me win the segmentation game this year.