Scopes in Google Analytics and how to use them in your reports

Google Analytics is a great tool that helps to track performance of any online business activity or visitor interaction. However, to have a powerful tool without understanding how to use it, can be dangerous in our decision making and online investments.

In order to maximize our insights in our Google Analytics data, it is very important to understand how data is collected and processed.

So let’s start!

All of the data collected in Google Analytics is classified as:

  • Dimensions
  • Metrics

Currently, if you want to create a custom report in Google Analytics, it offers more than 400 dimensions and metrics (for the 360 accounts). Nevertheless, not all dimensions and metrics can be combined.


When we check the All Pages report in Google Analytics, we can see there are metrics such as page views, average time on site, entrances or exits. However, we do not see any metrics like amount of users or sessions. Why not?

Let’s see the image below:

The reason why certain metrics are missing in the All Pages report is the scope. Scopes help Google Analytics to classify the data based on certain conditions in order to compare apples with apples. The All Pages report is based on hit scoped dimensions and metrics; which is the reason that metrics like sessions are missing.

Sessions are session scoped metrics so it would make the analysis of hit scoped dimensions a total mess and absolutely inaccurate.

Below is an example of session scoped metrics:

So, what is a scope?

  • Scope is a characteristics of dimension or metric which defines the way Google Analytics classify that specific dimension or metric
  • Each dimension or metric can have only one scope
  • There are 4 levels of scope available

What scopes are available in GA?

Google Analytics uses 4 types of scopes:

  • User
  • Session
  • Hit
  • Product

We will explain each scope separately for better understanding.

User Scope

This is the highest level of scope within Google Analytics.

User scope – connects all the current and future sessions. As we know, Google Analytics uses client id to differentiate “users” on your website. When user scoped dimension is used, it is taken once per user till the time the value has changed and will be used for future sessions.

How to use the user scope?

Just imagine that we want to figure out how many people have actually subscribed to our newsletter. We want to collect this information only once per user so that is why we want to use the user scope. At the start, the user is classified as not subscribed. Once the user subscribes to our newsletter, the user will be classified as a subscriber for all future sessions.


We have a custom dimension called “Subscribed Users” and we simply want to know if a user has subscribed to our newsletter.

We have set up our custom dimension Subscribed Users as User scope because once the user has subscribed, the user scope will assure that this information is passed together with future sessions till the time it will not change.

Pre – built dimensions on user level within Google Analytics are:

  • Gender
  • Age
  • Affinity category

Session Scope

This type of scope classifies data once per session.

So it means that the last value or information is sent to dimension.

When to use session scope:

  • The information/value does not change frequently with other hits on the website
  • We want to know this information once per session

You can easily check pre – built dimensions with session scope such as:

  • Source
  • Medium

These two dimensions (source, medium) are session scope because we need to collect this information just once during the session/visit. When a visitor lands on the website from the organic search result page, source within dimension will collect this data and attribute it to google/organic. However, when the visitor comes back three days later from an email campaign (new session), this time Google Analytics will classify the medium for this session as email.

Hit Scope

This level of scope takes each interaction/hit on the website based on our conditions. It can be either custom dimension or pre-built dimension visible right away in Google Analytics report, e.g. All Pages report.


Let’s say, you are an international e-commerce retailer and your website has 4 language mutations.

Following languages are available:

  • English
  • Dutch
  • German
  • French

The UX-team wants to know if the visitor uses one language during the whole visit or uses multiple languages like English and then Dutch. This is just an example used to clarify the hit scope and how it works.

We create custom dimensions to collect language type and we set the scope on hit level. This means that with each new pageview on the website, this dimension will collect and classify the data based on the language.


An user has viewed 4 pages for our website where the first 3 pages were in English and the last one in Dutch.

Since our custom dimension for type of language is set to hit level, it takes the value each time the hit is sent to Google Analytics. Therefore, if we segment our own traffic to see this type of behaviour, we would see in analytics that the first three pages were the English version of the site and the last page was a Dutch version.

However, if we would set this dimension on session scope, it will take the last known value, which is the Dutch language. This would obviously influence our conclusion about the language version people are using significantly.

Product Scope

This scope is solely used if we want to assign a certain dimension or metric purely for e-commerce purposes.

If we want to see if visitors are adding products to the cart from the lister page or product detail page, we need to create a product scope custom dimension in order to get the data we want. Similarly, we want to assign a new product category to our products so we need to create a product scoped custom dimension to do so.

NOTE: If we have a product scoped dimension or metric then it must be sent within the dataLayer for enhanced ecommerce.


We want to figure out what products are mostly added to the cart from the product detail page and what products are mostly added from the lister page. However, we will create it as a metric because we want to know the amount of times visitors add certain products to the cart either from the product detail page or from the lister page.

In order to achieve this, we first need to create two custom metrics with the scope of product.

In order to be able to assign this metric to particular products, we need to send it within the ecommerce object.

This is a product scoped metric`s example from Google:

If we want to send the product scoped metric with our product`s data, we need to implement our custom metrics within the dataLayer to pass the information with the product.

Make sure that you use the correct index. In our case we used index 19 and 20 for our custom dimensions in Google Analytics.

So to replicate Google`s example, instead of using ‘metric3’ we would use ‘metric19’ and ‘metric20’ in the dataLayer for Ehnanced E-commerce.

Please note that Google Analytics has numerous pre-built product scoped dimensions like:

  • Products
  • Brand
  • Transaction ID
  • Product position

Product scoped dimensions and metrics can give you pretty awesome insights about performance of particular products or categories.


  • If we want to know a certain value just once per user, we will setup a custom dimension as user scope. For example:
    • Subscribed user
    • User_id
    • Registered user
  • If we want to know the information once per session, we will use session scope
    • Device used for the particular session
    • Source or medium used for the session
    • Landing page
  • If we want to know the value with each hit, we will use hit scope
    • Language version of the current page
    • Page title
    • Search query
  • If we want to add an additional dimension to our product, we need to use product scope
    • Add to carts from product detail page vs lister page
    • Product brand
    • Product SKU
    • Product List name


I’ve tried to explain the scopes in Google Analytics and how to understand them in order to maximize the potential of Google Analytics. If used correctly, especially for custom dimension and custom metrics, it can significantly deliver better insights on visitor behavior or online marketing performance.

Important note: Remember that Google Analytics recognises users based on client id so if a user deletes or cleans the cookies then this visitor is tracked as a new user. If that’s the case, it means that one real user can be counted twice or more times with certain dimensions.