This article is about Universal Analytics properties, which will stop processing data on July 1, 2023 (July 1, 2024 for Analytics 360 properties). If you haven't already, start using a Google Analytics 4 property.

Storing data to generate reports quickly

Once configuration settings have been applied to your data, Google Analytics will transform the data into dimensions, calculate metrics associated with those dimensions, and store each dimension in its own aggregate database table for fast retrieval.

Remember that when Google Analytics collects data like location, device type, and browser type, it turns this data into dimensions that make up your reports in Analytics.

All Google Analytics reports are a single dimension, and the corresponding metrics for each value of that dimension. You’ll notice that most reports in Analytics use rows for dimensions, and columns for the associated metric data. 

When you set up configurations like Goals or Enhanced Ecommerce, those metrics will be included as well.

Analytics calculates the metrics that get grouped in various dimensions in two ways. Metrics are either calculated in aggregate such as total sessions, users, or pageviews, or specific dimensions (like Sessions or New Users per country). These are based on calculations Google Analytics performed during processing when it categorized the data it collected into users and sessions.

Let’s look at how a few key metrics are calculated:

  • Analytics can derive the “Time on Page” by taking the timestamp of a pageview hit and subtracting that from the timestamp of the next pageview hit.
  • “Pages per session” is simply the average of how many unique pageview hits the user generated during their session.
  • Average session duration is the average time spent from the first hit until the last hit before a user leaves the site or the session times out.
  • Bounce rate is calculated by looking at users who only had one interaction on your site without a second interaction to calculate the session duration or time on page. If this occurs, the pageview of a bounced visit is assigned a session duration and Time on Page of zero.

When Analytics creates dimensions and metrics during processing, it has to determine the scope of those dimensions and metrics in order to know how broadly applicable they are to your data. 

Some dimensions might organize data about a single hit, while other dimensions might apply to data across an entire session or individual user.  

Dimensions and metrics can have one of three scopes:

  • hit-level
  • session-level
  • user-level

During processing, Analytics will determine which scope gets applied to each dimension and metric. You can only pair metrics with dimensions if they are both in the same scope.

For example, pairing a “hit-level” dimension like “Page Title” with a “session-level” metric like “total number of Sessions,” wouldn’t make sense, since “Page Title” changes with each hit, but the “sessions” count changes with the completion of each session. 

While Google Analytics pairs dimensions and metrics of the same scope together for you in standard reports, you will have to manually set the scope for any Custom Dimensions or Custom Metrics you create. You can find the scoping for different dimensions and metrics at the end of this lesson.

When Google Analytics has determined the dimensions and associated metrics, it links this raw, unfiltered data with the unique property ID for your account.

Each reporting view you’ve created adds the data (with filters and configuration settings applied) to “aggregate” data tables, which are processed daily. These aggregate tables are used to quickly display the standard reports in Analytics.

But you also have the ability to generate more customized reports in Analytics using features like secondary dimensions or by creating a Custom Report. When you do this, Analytics checks to see if there is an aggregate table with the appropriate data. If the table doesn’t already exist, Analytics goes back to the raw session data to process and create the report from scratch.

In some instances, there is so much data to be joined that Analytics will show a sample of the data in the returned report, rather than calculating all of the data that was collected.

For standard users, session sampling occurs at the property level, not the view level. This means that the sample set will be determined at the property-level before view-level filters are applied. So views that have filters applied may have fewer sessions in the sampled calculation. For Analytics 360 customers, sampling occurs at the view level, so view filters won’t impact the sample size.

It’s important to understand that when data is collected and processed, it can’t be changed. For example, if you set a filter to exclude data on a view, that data will be permanently removed during processing from the reports in that view and cannot be recovered.

After Google Analytics has finished processing, you can access and analyze your data using the reports. It’s also possible to access your Analytics data using the Google Analytics Core Reporting API. This allows you to build your own reporting tools or extract your data directly into third-party reporting tools.

Was this helpful?
How can we improve it?

Need more help?

Sign in for additional support options to quickly solve your issue

Clear search
Close search
Google apps
Main menu
Search Help Center