Adobe Analytics Segments: Which Container Should I Use?

Author: Jon Ritchie

Reading Time: 15 minutes

Adobe Analytics has an impressive Segmentation tool that can be used to filter your web data. You can break down your site traffic with an innumerable combination of constraints, allowing you to compare and contrast the performance of your users, your content, your everything!

The problem that comes from having such a powerful tool, is that it is complex. When you build a segment, there are a lot of options, and a lot of ways to get it wrong! One of the most common errors I’ve seen is the use of the wrong Container. There are 3 types of segment containers: Hit, Visit, and Visitors. Hit is the default, which is justifiable because it is the easiest to conceptualize. However, the visits and visitor containers are also very useful, and should not be ignored.


You can think of these containers in terms of fruit salad. In fruit salad, there are a bunch of good fruits mixed together strawberries, pineapple, grapes, as well a well as that God-forsaken honeydew. When users browse your site, Adobe receives data in that same sort of jumbled mess. Each piece of fruit in is a server call or data packet of web data.

What is a “server call”? That depends on how detailed your implementation of Adobe Analytics is. Normally, it is the data that is sent when a user loads your web page, while or more advanced integrations send server calls to track each button click or user action on the page.


Adobe’s segmentation tool needs to know what fruit you want, and how much of it you want.

  • If you use a Hit container, Adobe will evaluate each piece of fruit individually. Is it a grape? As a result, you’ll only get the exact “server calls” that match your criteria.

  • If you use a Visit container, Adobe will evaluate each bowl of fruit. Is there grape in it? As a result, you’ll get the server calls that matched your criteria, and the other server calls from that visit.

  • If you use a Visitor container, Adobe will look at the serving dish of fruit. Is there grape in it? As a result, you’ll get the server calls that matched your criteria, and the other server calls for that user.

Likewise, you can build segments to only include serving dishes that have both strawberry and pineapple or segments that include bowls that do NOT have that displeasing honeydew.

Translating that analogy to the world of web analytics - A simple segment would be to look for users that reached your checkout page. You set your segment to say:

  • A HIT container would only give you data for that page. It could tell you how many users reached the page, but it couldn’t tell you how many users reached the confirmation page – because that page appears further down the buying path.

  • A VISIT container would include the data for all the pages of the visits, before and after the checkout page. It is good for seeing what pages lead the user the checkout page. However, the user might have visited your “why buy” page earlier that day, in which case, that data would not be included in the results.

  • A VISITOR container would include all the data for any user that at some point reached the checkout page.

The segment will still be constrained by whatever date ranges are used in your report. So, if your user reached the checkout page last month, and your report is for this month, the users visits will not be included in the data.  

That was the simple example. The great thing about Adobe’s segments is that you can have multiple statements with which to filter on various criteria. Let’s say you have one statement for AND another for

  • A HIT container would show 0’s. Why? You are only looking at one piece of fruit with the Hit container. Just like how a single piece of fruit cannot be both a grape and a strawberry, a single server call will only have one URL value. Adobe will show you 0’s to tell you – “that’s impossible”!

  • A VISIT container would include the data for all the pages of the visits where the user reached both the checkout page and why-buy page. If the user saw the why-buy page yesterday and the checkout page today, Adobe would not make the connection.

  • A VISITOR container would include all the data for any visitor that at some point reached both the checkout and why-buy page. Reaching one would not be enough.

Still with me? Well hold on to something, because you can have multiple containers in a segment.  

If you have a lot of statements in your segment, often you’ll need to group them together into Nested Containers. Say you want to know how many visitors saw the why-buy page AND also visited either the checkout OR trials page. In order to use both the “AND” and “OR” operators in the same segment, you’ll need to place the checkout and trial statements in a nested container.


The logic between the Top Containers and Nested Containers can make segments hard to conceptualize and using the wrong type of container can yield very different numbers. Let’s say, you are interested in users that saw the Boy’s Shoes page (Page A), while being signed in (Event B). User can sign in anywhere on the site and the shoe page is not gated, so based on the various ways you make the segment, you can have different results…


If you don’t use a nested container, then it is straightforward. The Hit container will pick out those individual grapes, Visits will serve up any bowl with a grape in it, and Visitor will include any serving dish with a grape in it.


If you place the statements into a nested container, you have the ability to include more web data than you could with just the single container. You can specify that the User had to be singed in while on the Boy’s Shoes page by placing the statement in a Hit Nested Container. If you then make the Top Container: Visitor, the segment will show all the server calls for those visitors. It does not work the other way around though. If the nested Container is larger than the top container (yellow), then the result will match that larger container.


Let’s add one more statement to the segment. The nested container is still filtering for the Boy’s Shoes page with a sign-in. However, you theorize that the users are mothers who are shopping for their sons. You add a statement outside the nested container to filter on server calls for the Women’s Apparel section of the site (SubSite C).


Looking at the data for Subsite C, the Women’s Apparel section has many times volume of traffic than the Boy’s Shoes.


Since we added a new constraint, it makes sense that all of the results have shrunk.

  • The results on the top left are zero, since the Boy’s Shoes page is not in the Women’s section of the site.

  • The yellow cells no longer match the green cells, because new statement is filtering based on the Top Container


To answer your hypothesis, you’d want to compare the bottom left cell from both tables. Of the 1,552 hits from users that were signed in on the Boy’s Shoes page, 871 of those hits were on the Women’s Apparel section of the site. That is a strong indicator that those shoppers are mothers!

Nesting containers within other nested containers adds even more complexity – which I will spare you from. The simple rule of thumb is that you cannot place a larger nested container (like a Visit) into a smaller nested container (like a Hit).

Adobe’s Segmentation tool is clearly filled with nuance, but if you only use hit segments, then you are only utilizing a fraction of the functionality. Hopefully, the examples above will enable you to correctly structure your segments and learn some valuable lessons about your users’ experience.

Google Analytics Attribution Isn't What You Think It Is

Author: Mike O’Connor

Reading Time: 10 minutes

What is the attribution model used for Google Analytics’ standard Acquisition reports?  Last Interaction, right?  Not exactly.

The default model in Google Analytics is, in fact, Last Non-Direct Click.  While this may seem to be a subtle difference, it can have a big impact on how you attribute conversions, and how you interpret your data.  According to Google, this is when this model is useful:

If you consider direct traffic to be from customers who have already been won through a different channel, then you may wish to filter out direct traffic and focus on the last marketing activity before conversion.

But this makes some big assumptions, especially to make it the default model in all standard acquisition reports.  It can be very useful to know if a considerable percentage of your traffic is coming directly to your website to make a purchase - And this can help inform your overall acquisition strategy.

As you can see, there can be considerable differences between the two models:

GA attribution.png

While you can’t change the attribution method used for the standard acquisition reports, you can change or compare models in the Attribution Model Comparison Tool, and we fully encourage you to do just that; and not just for Last Interaction vs. Last Non-Direct Click, but take a look at how all of the models compare.  This, along with utilizing the Multi-Channel Funnels Top Conversion Paths report, provides essential insight into the roles that your various channels play.

Also, be wary of how Google Analytics defines and counts sessions.  As we all (should) know, a session (or visit) is a group of page views and interactions associated with a single user (on a single web browser) within a certain timeframe, typically the industry standard of 30 minutes (i.e. a session will end after 30 minutes of inactivity). 

However, in addition to time-based expiration Google Analytics also uses campaign-based expiration.  That is, any time a new traffic source value (e.g. utm_source, utm_medium, utm_campaign, utm_term) is recorded for a particular user Google Analytics will consider it a new session, regardless if this activity occurred within the 30-minute session window.  This can inflate the total session count for your website as well as diminish visibility into the traffic source that initially drove the visit and can also mis-credit conversions.

As an example, consider this scenario experienced by one of our e-commerce clients.  After migrating to a new e-commerce platform there was a requirement for all existing users to update their passwords the first time they logged into the new platform.  This triggered a password reset email for which the inbound links were tagged with campaign values to indicate that the user clicked through from that password reset email.  Now, if a user initially came to the website from a Paid Search listing, added an item to the cart, and then attempted to log in to complete their purchase then they would be prompted to reset their password.  After receiving the email and resetting their password then that would now be counted as a new session and the eventual purchase would be credited to the password reset email and not to Paid Search.

Now, I know what you may be thinking - just remove the campaign parameters from the links in the email, right? But it can still be useful to identify how many users are clicking through from those emails, we just don’t want to consider it a new session, nor do we want it to receive credit for the conversion.  What we’d want instead is to have Entry source dimensions (i.e. the source/campaign that initiated the visit) but also general source dimensions to provide insight into in-session activity.  One option here would be to use Internal Promotions tracking or a unique query parameter mapped to a custom dimension as an alternative to utilizing the utm parameters in these types of scenarios.

These are just a couple of examples of Google Analytics methodologies that differ from industry standards (or at least from the methodologies followed by other major web analytics providers), and yet they are not clearly called out in the Google Analytics user interface.  Rather they require a bit of digging through the documentation to find.

So be sure to keep these things in mind and do your due diligence into analytics platform methodologies before undertaking an analysis and presenting your data.  It is incredibly important to ensure that your insights are framed in a way that accurately represents what is actually happening so that you maintain trust in the data throughout the organization, and are making the correct decisions to optimize the business.