Google Analytics Cookie Usage on Websites

This document describes how Google Analytics uses cookies to measure user-interactions on websites.

Overview

Google Analytics is a simple, easy-to-use tool that helps website owners measure how users interact with website content. As a user navigates between web pages, Google Analytics provides website owners JavaScript tags (libraries) to record information about the page a user has seen, for example the URL of the page.

The Google Analytics JavaScript libraries use HTTP cookies to "remember" what a user has done on previous pages / interactions with the website.

Google Analytics supports three JavaScript libraries (tags) for measuring website usage: gtag.js, analytics.js, and ga.js. The following sections describe how each library use cookies for Universal Analytics and Google Analytics 4, where applicable.

For Google Analytics 4, the gtag.js JavaScript library uses first-party cookies to:

  • Distinguish unique users
  • Distinguish sessions for a user

When using the recommended JavaScript snippet cookies are set at the highest possible domain level. For example, if your website address is blog.example.co.uk, gtag.js will set the cookie domain to .example.co.uk. Setting cookies on the highest level domain possible allows measurement to occur across subdomains without any extra configuration.

gtag.js sets the following cookies:

Cookie name Default expiration time Description
_ga 2 years Used to distinguish users.
_gid 24 hours Used to distinguish users.
_ga_<container-id> 2 years Used to persist session state.
_gac_gb_<container-id> 90 days Contains campaign related information. If you have linked your Google Analytics and Google Ads accounts, Google Ads website conversion tags will read this cookie unless you opt-out. Learn more.

Customization

Read the gtag.js Cookies and user identification guide (GA4) to learn how these default settings can be customized with gtag.js.

The analytics.js JavaScript library or the gtag.js JavaScript library can be used for Universal Analytics. In both cases, the libraries use first-party cookies to:

  • Distinguish unique users
  • Throttle the request rate

When using the recommended JavaScript snippet cookies are set at the highest possible domain level. For example, if your website address is blog.example.co.uk, analytics.js and gtag.js will set the cookie domain to .example.co.uk. Setting cookies on the highest level domain possible allows measurement to occur across subdomains without any extra configuration.

gtag.js and analytics.js set the following cookies:

Cookie Name Default expiration time Description
_ga 2 years Used to distinguish users.
_gid 24 hours Used to distinguish users.
_gat 1 minute Used to throttle request rate. If Google Analytics is deployed via Google Tag Manager, this cookie will be named _dc_gtm_<property- id>.
AMP_TOKEN 30 seconds to 1 year Contains a token that can be used to retrieve a Client ID from AMP Client ID service. Other possible values indicate opt-out, inflight request or an error retrieving a Client ID from AMP Client ID service.
_gac_<property-id> 90 days Contains campaign related information for the user. If you have linked your Google Analytics and Google Ads accounts, Google Ads website conversion tags will read this cookie unless you opt-out. Learn more.

Customization

Read the gtag.js Cookies and user identification guide (Universal Analytics) to learn how these default settings can be customized with gtag.js.

Read the analytics.js Domains and Cookies developer guide to learn all the ways these default settings can be customized with analytics.js.

Read the Security and privacy in Universal Analytics document for more information about Universal Analytics and cookies.

The ga.js JavaScript library uses first-party cookies to:

  • Determine which domain to measure
  • Distinguish unique users
  • Throttle the request rate
  • Remember the number and time of previous visits
  • Remember traffic source information
  • Determine the start and end of a session
  • Remember the value of visitor-level custom variables

By default, this library sets cookies on the domain specified in the document.host browser property and sets the cookie path to the root level (/). This library sets the following cookies:

Cookie Name Default Expiration Time Description
__utma 2 years from set/update Used to distinguish users and sessions. The cookie is created when the javascript library executes and no existing __utma cookies exists. The cookie is updated every time data is sent to Google Analytics.
__utmt 10 minutes Used to throttle request rate.
__utmb 30 mins from set/update Used to determine new sessions/visits. The cookie is created when the javascript library executes and no existing __utmb cookies exists. The cookie is updated every time data is sent to Google Analytics.
__utmc End of browser session Not used in ga.js. Set for interoperability with urchin.js. Historically, this cookie operated in conjunction with the __utmb cookie to determine whether the user was in a new session/visit.
__utmz 6 months from set/update Stores the traffic source or campaign that explains how the user reached your site. The cookie is created when the javascript library executes and is updated every time data is sent to Google Analytics.
__utmv 2 years from set/update Used to store visitor-level custom variable data. This cookie is created when a developer uses the _setCustomVar method with a visitor level custom variable. This cookie was also used for the deprecated _setVar method. The cookie is updated every time data is sent to Google Analytics.

Customization

The following methods can be used to customize how cookies are set:

Read the Tracking Multiple Domains guide to learn how to configure ga.js to measure user interaction across domains.

Historically, Google Analytics provided a JavaScript measurement library named urchin.js. When the newer ga.js library launched, developers were encouraged to migrate to the new library. For sites that have not completed the migration, urchin.js sets cookies identically to what is set in ga.js. Read the ga.js cookie usage section above for more details.

For customers that are using Google Analytics' Display Advertiser features, such as remarketing, a third-party DoubleClick cookie is used in addition to the other cookies described in this document for just these features. For more information about this cookie, visit the Google Advertising Privacy FAQ.

For websites using Google Analytics content experiments, the following cookies are used for these features in addition to the other cookies described in this document:

Cookie Name Default expiration time Description
__utmx 18 months Used to determine a user's inclusion in an experiment.
__utmxx 18 months Used to determine the expiry of experiments a user has been included in.

For websites using Optimize, the following cookies are used in addition to the other cookies described in this document:

Cookie Name Default expiration time Description
_gaexp Depends on the length of the experiment, but typically 90 days. Used to determine a user's inclusion in an experiment and the expiry of experiments a user has been included in.
_opt_awcid 24 hours Used for campaigns mapped to Google Ads Customer IDs.
_opt_awmid 24 hours Used for campaigns mapped to Google Ads Campaign IDs.
_opt_awgid 24 hours Used for campaigns mapped to Google Ads Ad Group IDs
_opt_awkid 24 hours Used for campaigns mapped to Google Ads Criterion IDs
_opt_utmc 24 hours Stores the last utm_campaign query parameter.
_opt_expid 10 seconds This cookie is created when running a redirect experiment. It stores the experiment ID, the variant ID and the referrer to the page that's being redirected.