Blog Post: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. Some background 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—
  1. Page Views - Dragging a Page Views container to the segment canvas will allow you to define which Page Views you would like to include or exclude from the segment. When evaluating the Page Views container, Omniture is, in effect, scanning through each page view it finds within the specified time frame and deciding whether it should be included or excluded. Therefore, it may be the case that two different page views from the same visit may or may not be included in the segment. For example, let’s assume that you are building a segment where you only want pages where the language was Spanish. It may be the case that a visitor viewed ten pages during their visit, but only two of those ten were viewed in Spanish. Using a Page Views container, would mean that only these two page views would be included in the segment.
  2. Visits - Dragging the Visits container to the segment canvas will allow you to define which visits you would like to include or exclude from the segment. When evaluating the Visits container, [the tool] is, in effect, scanning through each visit it finds within the specified time frame and deciding whether the entire visit should be included or excluded. Therefore, if any of the criteria are met within the Visit, all data from that visit will be included (or excluded if using the exclude tab) in the segment.  Using the preceding example, if the segment looking for pages viewed in Spanish were built using a Visit container, the entire visit would be included since at least one of the pages was viewed in Spanish (even though the majority were in English).
  3. Visitors - Dragging the Visitors container to the segment canvas will allow you to define which Visitors you would like to include or exclude from the segment. When evaluating the Visitors container, Omniture is, in effect, scanning through all data it has for each Visitor within the specified time frame and deciding whether at any time the visitor met the criteria. If it finds that the visitor has met the criteria, all Visits and Page Views for that visitor will be included in the segment.  Continuing the preceding example relating to pages viewed in Spanish, if a visitor had six site visits within the specified time frame and in one of those visits viewed at least one page in Spanish, data from all six visits would be included in the segment.
Here's a visual representation of this: Visualization of Omniture segmentation (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? Campaign Attribution 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]: A Single-Page Visits segment 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). Conclusion 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.
Author: Date Created:September 9, 2009 Date Published: Headline:Segmentation: The party game Social Counts: Keywords: Publisher:Adobe Image:https://blogs.adobe.com/digitalmarketing/wp-content/uploads/no-image/no-image.jpg

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.

Some background

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—

  1. Page Views – Dragging a Page Views container to the segment canvas will allow you to define which Page Views you would like to include or exclude from the segment. When evaluating the Page Views container, Omniture is, in effect, scanning through each page view it finds within the specified time frame and deciding whether it should be included or excluded. Therefore, it may be the case that two different page views from the same visit may or may not be included in the segment. For example, let’s assume that you are building a segment where you only want pages where the language was Spanish. It may be the case that a visitor viewed ten pages during their visit, but only two of those ten were viewed in Spanish. Using a Page Views container, would mean that only these two page views would be included in the segment.
  2. Visits – Dragging the Visits container to the segment canvas will allow you to define which visits you would like to include or exclude from the segment. When evaluating the Visits container, [the tool] is, in effect, scanning through each visit it finds within the specified time frame and deciding whether the entire visit should be included or excluded. Therefore, if any of the criteria are met within the Visit, all data from that visit will be included (or excluded if using the exclude tab) in the segment.  Using the preceding example, if the segment looking for pages viewed in Spanish were built using a Visit container, the entire visit would be included since at least one of the pages was viewed in Spanish (even though the majority were in English).
  3. Visitors – Dragging the Visitors container to the segment canvas will allow you to define which Visitors you would like to include or exclude from the segment. When evaluating the Visitors container, Omniture is, in effect, scanning through all data it has for each Visitor within the specified time frame and deciding whether at any time the visitor met the criteria. If it finds that the visitor has met the criteria, all Visits and Page Views for that visitor will be included in the segment.  Continuing the preceding example relating to pages viewed in Spanish, if a visitor had six site visits within the specified time frame and in one of those visits viewed at least one page in Spanish, data from all six visits would be included in the segment.

Here’s a visual representation of this:

Visualization of Omniture segmentation

(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?

Campaign Attribution

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]:

A Single-Page Visits segment

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).

Conclusion

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.