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 two JavaScript libraries (tags) for measuring website usage: analytics.js and ga.js. The following sections describe how each use cookies.
analytics.js – cookie usage
The analytics.js JavaScript library is part of Universal Analytics and uses first-party cookies to:
- Distinguish unique users
- Throttle the request rate
When using the recommended JavaScript
snippet, analytics.js sets cookies on the highest level domain it can.
For example, if your website address is blog.example.co.uk
,
analytics.js will set the cookie domain to .example.co.uk
. Setting
cookies on the highest level domain possible allows users to be tracked across
subdomains without any extra configuration.
analytics.js sets the following cookies:
Cookie Name | Expiration Time | Description |
---|---|---|
_ga |
2 years | Used to distinguish users. |
_gat |
10 minutes | Used to throttle request rate. |
Customization
Read the analytics.js Domains & Cookies developer guide to learn all the ways these default settings can be customized.
Read the Security and privacy in Universal Analytics document for more information about Universal Analytics and cookies.
ga.js – cookie usage
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:
-
_setDomainName
– Sets the domain to which all cookies will be set. -
_setCookiePath
– Sets the path to which all cookies will be set. -
_setVisitorCookieTimeout
– Sets the Google Analytics visitor cookie expiration in milliseconds. -
_setSessionCookieTimeout
– Sets the new session cookie timeout in milliseconds. -
_setCampaignCookieTimeout
– Sets the campaign tracking cookie expiration time in milliseconds.
Read the Tracking Multiple Domains guide to learn how to configure ga.js to measure user interaction across domains.
urchin.js – cookie usage
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 haven 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.
Google Analytics for Display Advertisers – cookie usage
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.
Content Experiments - cookie usage
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 | 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. |
Optimize 360 - cookie usage
For websites using Optimize 360, the following cookie is used in addition to the other cookies described in this document:
Cookie Name | 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. |