Google Analytics

Management API - Feed Reference

This document provides a detailed reference to the Google Analytics Management API Version 2.4, which replaces the deprecated Version 2.3. A description of the changes and improvements from Version 2.3 to Version 2.4 is in What's New.

Contents

  1. Overview
    1. URL Structure
    2. Common Parameters
    3. Parent and Child Links
  2. Error Response
  1. Account Feed
  2. View (Profile) Feed
  3. Web Property Feed
  4. Goal Feed
  5. Segment Feed

Overview

Use the Google Analytics Management API to write applications that access Google Analytics account management data. The Management API provides the following feeds which are structured in a hierarchy that reflects the general Google Analytics management model:

Google Analytics Management Model

Each feed provides data from the corresponding Analytics module for the authenticated user. To access the feeds use one of the following two methods:

  • Directly request the individual feed.
    Each feed can be retrieved by its specific URI. The rest of this document illustrates the URI for each Management API feed.

  • Traverse the hierarchy from parent to child.
    All Management API data is structured in a hierarchy that provide links in the feed entries for child entities. You can use those links to traverse through the hierarchy to obtain all child entities for the links. Note that you cannot traverse up the hierarchy in order to get feeds of parent entries. See the section Parent and Child Links for details.

For general information on accounts and views (profiles) in Analytics, see the Accounts and Views (Profiles) document.

URL Structure

The following goal feed URL illustrates the hierarchical structure of the feed requests:

https://www.googleapis.com/analytics/v2.4/management/accounts/[accountID]/webproperties/[webPropertyID]/profiles/[profileID]/goals

The feed URL is made up of three main parts:

  1. Base URL (https://www.googleapis.com/analytics/v2.4/management/)
    All feeds to the Analytics Management API reside under this base URL.
  2. Entity Type
    In order to make a request to the Management API, you must define the type of entity that you want. These types are reflected in the hierarchy diagram above, and that hierarchy must also be specified in the request. Currently, you can request the information for the following entity types:
    • accounts
    • web properties
    • profiles
    • goals
    • segments
  3. Entity Identifier
    Because there are many accounts, views (profiles) and other entities available for a user, a request to an entity type must also be paired with an identifier in order to define the scope of the request. You can use two types of identifiers in your feed request:
    • A specific ID. Each of the main types can be retrieved by their ID. For example, an account has a numeric ID, and a web property has an ID of the form UA-XXXX-YY. For example, this request specifies web properties for the account 12345:
      https://www.googleapis.com/analytics/v2.4/management/accounts/12345/webproperties
    • The ~all identifier. To request all entities of a particular type, use ~all instead of a specific ID. For example, to request web properties for all the accounts available to the user:
      https://www.googleapis.com/analytics/v2.4/management/accounts/~all/webproperties.
      NOTE: We suggest you use this identifier only when you really need access to all the children of an entity. Getting all day means your response will be slower, particularly for those users with multiple accounts. Requests that rely heavily on the ~all identifier can also overburden resources on your side.

URL Requirements

  1. The URL must always end with an entity type. Once you indicate the parent entity for which you want to retrieve child entities (either by ID or by using the ~all identifier), you must indicate the type of child entity to return. The following examples illustrate the incorrect and correct ways to do this:

    Correct: http://www.googleapis.com/analytics/v2.4/management/accounts/12345/webproperties
    Incorrect: https://www.googleapis.com/analytics/v2.4/management/accounts/12345

  2. The URL must explicitly state the parent-child hierarchy. This means that once you use the ~all identifer for a particular entity, you must use ~all for any subsequent child entities. The following examples illustrate the correct and incorrect ways to indicate the parent-child hierarchy:

    Correct: https://www.googleapis.com/analytics/v2.4/management/accounts/12345/webproperties/UA-12345-1/profiles
    Correct: https://www.googleapis.com/analytics/v2.4/management/accounts/~all/webproperties/~all/profiles
    Incorrect: https://www.googleapis.com/analytics/v2.4/management/accounts/~all/webproperties/UA-12345-1/profiles

    Correct: https://www.googleapis.com/analytics/v2.4/management/accounts/12345/webproperties/UA-12345-1/profiles/4849/goals
    Correct: https://www.googleapis.com/analytics/v2.4/management/accounts/~all/webproperties/~all/profiles/~all/goals
    Incorrect: https://www.googleapis.com/analytics/v2.4/management/accounts/12345/webproperties/~all/profiles/4849/goals

    The correct examples clearly define the parent-child hierarchy in traversing the tree.

Back to Top

Common Request Parameters

The following query parameters maybe used with all the collections in the Management API. All parameters are optional except where noted.

Notes (on API keys and auth tokens):

  1. The key parameter is required with every request, unless you provide an OAuth 2.0 token with the request.
  2. You must send an authorization token with every request that is marked (AUTHENTICATED). OAuth 2.0 is the preferred authorization protocol.
  3. You can provide an OAuth 2.0 token with any request in one of two ways:
    • Using the access_token query parameter like this: ?access_token=oauth2-token
    • Using the HTTP Authorization header like this: Authorization: Bearer oauth2-token
Parameter Meaning Notes
start-index The starting entry for the feed.
  • If not supplied, the starting entry is 1. (Feed indexes are 1-based. That is, the first entry is entry 1, not entry 0.).
  • Use this parameter as a pagination mechanism along with the max-results parameter. Example: start-index=1.
max-results Maximum number of entries to include in this feed.
  • The valid range of values is 1 through 1000.
  • You can use this in combination with start-index to retrieve a subset of elements. For example max-results=50.
access_token OAuth 2.0 token for the current user.
  • One possible way to provide an OAuth 2.0 token.
callback Callback function.
  • Name of the JavaScript callback function that handles the response.
  • Used in JavaScript JSON-P requests.
fields Selector specifying a subset of fields to include in the response.

Specifies which fields to return in a partial response. If you only use a subset of the fields in the API response, you can use the fields parameter to specify which fields to include.

The format of the fields request parameter value is loosely based on XPath syntax. The supported syntax is summarized below.

  • Use a comma-separated list to select multiple fields.
  • Use a/b to select a field b that is nested within field a; use a/b/c to select a field c nested within b.
  • Use a sub-selector to request a set of specific sub-fields of arrays or objects by placing expressions in parentheses "( )".
    For example: fields=columnHeaders(name,dataType) returns only the name and dataType fields in the columnHeaders array. You can also specify a single sub-field, where fields=columnHeader(name) is equivalent to fields=columnHeader/name.
key API key. (REQUIRED*)
  • *Required unless you provide an OAuth 2.0 token.
  • Your API key identifies your project and provides you with API access, quota, and reports.
  • Obtain your application's API key from the Developers Console.
prettyPrint

Returns response with indentations and line breaks.

  • Returns the response in a human-readable format if true.
  • Default value: true.
  • When this is false, it can reduce the response payload size, which might lead to better performance in some environments.
quotaUser Alternative to userIp.
  • Lets you enforce per-user quotas from a server-side application even in cases when the user's IP address is unknown. This can occur, for example, with applications that run cron jobs on App Engine on a user's behalf.
  • You can choose any arbitrary string that uniquely identifies a user, but it is limited to 40 characters.
  • Overrides userIp if both are provided.
  • Learn more about capping usage.
userIp IP address of the end user for whom the API call is being made.
  • Lets you enforce per-user quotas when calling the API from a server-side application.
  • Learn more about capping usage.

Back to Top

Feed entries for an entity typically contain one or more links for a child or parent. However, bear in mind the following:

  • Parent links point to a parent entity, whereas child links point to a child feed. The child feed consists of all the child entities.
  • Top-level entities (accounts and segments) do not contain parent links.
  • Leaf entities (goals and segments) do not contain any child links.

The following example shows a parent entry and a child link for a view (profile) feed response.

<link rel="http://schemas.google.com/ga/2009#parent"
      type="application/atom+xml"
      gd:targetKind="analytics#webproperty"
      href="https://www.googleapis.com/analytics/v2.4/management/accounts/3432/webproperties/UA-3432-1"/>

<link rel="http://schemas.google.com/ga/2009#child"
      type="application/atom+xml"
      gd:targetKind="analytics#goals"
      href="https://www.googleapis.com/analytics/v2.4/management/accounts/3432/webproperties/UA-3432-1/profiles/1234/goals"/> 

All parent and child links contain the following notable attributes:

Attribute Description
rel URI indicating whether the link is for a parent entry or child feed.
Parent value: http://schemas.google.com/ga/2009#parent.
Child value: http://schemas.google.com/ga/2009#child.
gd:targetKind The kind of parent entry or child feed that the link is pointing to.
Parent feed entry value: analytics#account
Child feed entry value: analytics#profiles
href Actual link to the parent entry or child feed.

Back to Top

Account Feed

The account feed is the entry point to all management information for the authenticated user.

Request

To request an account feed, use the following URL:

https://www.googleapis.com/analytics/v2.4/management/accounts

Response Elements

The account feed response contains one entry for each Analytics account the user has access to. The notable elements and general structure for the account feed response is:

  • id—a unique URI of the form http://www.googleapis.com/analytics/v2.4/management/accounts
  • link—a self link for this feed
  • title—the string Google Analytics Accounts for [username], where username is the email ID of the authenticated user
  • totalResults—the total number of results for the query, regardless of the number of results in the response
  • startIndex—the starting index of the entries, which is 1 by default or otherwise specified by the start-index query parameter
  • itemsPerPage—the maximum number of entries the response can contain, regardless of the actual number of entries returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter
  • entry—each entry represents a Google Analytics account, with the following structure:
    • id— a string that identifies the entry. Example: http://www.googleapis.com/analytics/v2.4/management/accounts/30481
    • title—the string Google Analytics Account followed by the name of the account as seen in the Analytics administrative interface
    • link rel='self'—a self link for the account entry
    • link rel='http://schemas.google.com/ga/2009#child' — link for the child field for the account
                gd:targetKind='analytics#webproperties' —the kind of child feed for the link, which is a web property feed
                href='...'—link to the feed for web properties for the account. Example:
                               https://www.googleapis.com/analytics/v2.4/management/accounts/30481/webproperties
    • dxp:property name=ga:accountId—the account ID associated with the view (profile) used in the tracking code for your web property (e.g. UA-30481-22)
    • dxp:property name=ga:accountName—the name of the account as seen in the Analytics administrative interface

Back to Top

Web Property Feed

You can retrieve the Web Property Feed by making a request to the URI below. This URI can also be found in each of the parent Account Entries allowing developers to traverse the Management API Hierarchy.

Request

Retrieve all web properties for a specific account using the following URL:

https://www.googleapis.com/analytics/v2.4/management/accounts/[accountID]/webproperties

An account ID is the central string of numbers in the web property ID used in the tracking code. For example, if the web property ID is UA-12345-2, then 12345 is the account ID. For more information, see Account ID in the Accounts and Views (Profiles) document. This URL requests all the web properties for an account with the ID 12345.

https://www.googleapis.com/analytics/v2.4/management/accounts/12345/webproperties

To request web properties for all the accounts that you have access to, you can use the special identifier ~all as the account ID:

https://www.googleapis.com/analytics/v2.4/management/accounts/~all/webproperties

Response Elements

The web property feed response contains one entry for each web property the user has access to. The notable elements and general structure for the web property feed response is:

  • id—a unique URI of the form http://www.googleapis.com/analytics/v2.4/management/accounts/1234/webproperties
  • link—a self link for this feed
  • title—the string Google Analytics Web Properties for [username], where username is the email ID of the authenticated user
  • totalResults—the total number of results for the query, regardless of the number of results in the response
  • startIndex—the starting index of the entries, which is 1 by default or otherwise specified by the start-index query parameter
  • itemsPerPage—the maximum number of entries the response can contain, regardless of the actual number of entries returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter
  • entry—each entry represents a Google Analytics web property, with the following structure:
    • id— a string that identifies the entry. Example: http://www.googleapis.com/analytics/v2.4/management/accounts/1234/webproperties/UA-1234-1
    • title— the string Google Analytics Web Property followed by the web property ID (e.g., UA-1234-1).
    • link rel='self'—a self link for the web property entry
    • link rel='http://schemas.google.com/ga/2009#parent' — the parent entry for the web property
                gd:targetKind='analytics#account' —the kind of parent entry, which for this feed is an account
                href='...'—link to the account entry that the web property belongs to. Example:      https://www.googleapis.com/analytics/v2.4/management/accounts/30481  
    • link rel='http://schemas.google.com/ga/2009#child' — the child entry for the web property
                gd:targetKind='analytics#profiles' —the kind of feed the link points to, which is a view (profile) feed
                href='...'—link to the feed for views (profiles) for the web property. Example:
                      https://www.googleapis.com/analytics/v2.4/management/accounts/30481/webproperties/UA-30481-1/profiles
    • dxp:property name=ga:accountId—The account ID associated with the view (profile) used in the tracking code for your web property (e.g. UA-30481-22)
    • dxp:property name=ga:webPropertyId—The web property ID (e.g. UA-30481-22)

Back to Top

View (Profile) Feed

Your application can either request the view (profile) feed by following the link in a web property feed entry, or it can request the view (profile) feed by using the URL directly.

Request

You can retrieve all the views (profiles) for a specific account or a web property using the following URL:

https://www.googleapis.com/analytics/v2.4/management/accounts/[accountID]/webproperties/[webPropertyID]/profiles

The account ID is the central string of numbers in the web property ID used in the tracking code. The webPropertyID is of the form UA-XXXX-YY, as found in the tracking code.

This URL requests the views (profiles) for the web property UA-87987-1 under account 87987.

https://www.googleapis.com/analytics/v2.4/management/accounts/87987/webproperties/UA-87987-1/profiles

To request views(profiles) for all the accounts or web properties that you have access to, you can use the special identifier ~all for the account or web property entity ID fields:

https://www.googleapis.com/analytics/v2.4/management/accounts/87987/webproperties/~all/profiles

You can expand this same request to include all accounts, their web properties and their views (profiles):

https://www.googleapis.com/analytics/v2.4/management/accounts/~all/webproperties/~all/profiles

Response Elements

The view (profile) feed response contains one entry for each view (profile) the user has access to. The notable elements and general structure for the view (profile) feed response is:

  • id—a unique URI of the form http://www.googleapis.com/analytics/v2.4/management/accounts/1234/webproperties/UA-1234-2/profiles
  • link—a self link for this feed
  • title—the string Google Analytics Views (Profiles) for [username], where username is the email ID of the authenticated user
  • totalResults—the total number of results for the query, regardless of the number of results in the response
  • startIndex—the starting index of the entries, which is 1 by default or otherwise specified by the start-index query parameter
  • itemsPerPage—the maximum number of entries the response can contain, regardless of the actual number of entries returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter
  • entry—each entry represents a Google Analytics view (profile), with the following structure:
    • id— a string that identifies the entry. Example: http://www.googleapis.com/analytics/v2.4/management/accounts/1234/webproperties/UA-1234-1/profiles/4849
    • title— the string Google Analytics View (Profile) followed by the view (profile) ID (e.g., 4849).
    • link rel='self'—a self link for the profile entry
    • link rel='http://schemas.google.com/ga/2009#parent —the parent entry for the view (profile) feed
                gd:targetKind='analytics#webproperty'—the type of link for the parent entry, which is a web property entry
                href='...'—link to the web property entry that the view (profile) belongs to. Example:
           https://www.googleapis.com/analytics/v2.4/management/accounts/30481/webproperties/UA-30481-1

    • link rel='http://schemas.google.com/ga/2009#child'—the child entry for the view (profile) feed
                gd:targetKind='analytics#goals'—the kind of child feed referred to, which is a goal feed
                href='...'—link to the feed for goals for the view (profile). Example:      https://www.googleapis.com/analytics/v2.4/management/accounts/30481/webproperties/UA-30481-1/profiles/4849/goals
    • dxp:property name=ga:accountId—The account ID associated with the view (profile) used in the tracking code for your web property (e.g. UA-30481-22)
    • dxp:property name=ga:webPropertyId—The web property ID associated with the view (profile)
    • dxp:property name=ga:profileId—The numeric ID of the view (profile)
    • dxp:property name=ga:currency—The currency type associated with the view (profile), such as USD (for U.S. dollars)
    • dxp:property name=ga:timezone— The time zone configured for the view (profile). This timezone is used to define day boundries when processing your data. For example, by setting this value to GMT, the day begins at 12am GMT, not at the default value of 12am PST.
    • dxp:tableId—The unique, namespaced view (profile) ID to be used when requesting data from the Google Analytics data feed

Back to Top

Goal Feed

Your application can either request the goal feed by following the link in a view (profile) feed entry, or it can request the goal feed by using the URL directly.

Request

You can retrieve all the goals for a specific account, web property or view (profile) using the following URL:

https://www.googleapis.com/analytics/v2.4/management/accounts/[accountID]/webproperties/[webPropertyID]/profiles/[profileID]/goals

The account ID is the central string of numbers in the web property ID used in the tracking code. The webPropertyID is of the form UA-XXXX-YY, as found in the tracking code. The profileID is the numeric view (profile) ID.

This URL requests all goals for view (profile) ID 4849 that belongs to web property UA-12345-1.

https://www.googleapis.com/analytics/v2.4/management/accounts/12345/webproperties/UA-12345-1/profiles/4849/goals

To request goals for all the accounts, web properties, or views (profiles) the user has access to, you can use the special identifier ~all in the account, web property, or view (profile) ID fields. For example:

URL to request all goals for an account with the ID 12345:

https://www.googleapis.com/analytics/v2.4/management/accounts/12345/webproperties/~all/profiles/~all/goals

URL to request all goals for a web property with the ID UA-12345-2, under the account 12345:

https://www.googleapis.com/analytics/v2.4/management/accounts/12345/webproperties/UA-12345-2/profiles/~all/goals

URL to request all goals for all views (profiles) for all the web properties for the user:

https://www.googleapis.com/analytics/v2.4/management/accounts/~all/webproperties/~all/profiles/~all/goals

Response Elements

The goal feed response contains one entry for each goal. The notable elements and general structure for the goal feed response is:

  • id—a unique URI of the form http://www.googleapis.com/analytics/v2.4/management/accounts/1234/webproperties/UA-1234-2/profiles/4849/goals
  • link a self link for this feed
  • title—the string Google Analytics Goals for [username], where username is the email ID of the authenticated user
  • totalResults—the total number of results for the query, regardless of the number of results in the response
  • startIndex—the starting index of the entries, which is 1 by default or otherwise specified by the start-index query parameter
  • itemsPerPage—the maximum number of entries the response can contain, regardless of the actual number of entries returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter
  • entry—each entry represents a goal with the following structure:
    • id— a string that identifies the entry. Example: http://www.googleapis.com/analytics/v2.4/management/accounts/1234/webproperties/UA-1234-1/profiles/4849/goals/1
    • title— the string Google Analytics Goal followed by the goal number.
    • link rel='self'—a self link for the goal entry
    • link rel='http://schemas.google.com/ga/2009#parent' the parent entry for the goal feed     
               gd:targetKind='analytics#profile'—the kind of parent entry for this response, which is a view (profile) entry
                href='...'—link to the view (profile) entry that the goal belongs to. Example:
           https://www.googleapis.com/analytics/v2.4/management/accounts/30481/webproperties/UA-30481-1/profiles/4849

    • dxp:property name=ga:profileId—The numeric ID of the view (profile) that the goal belongs to.
    • ga:goal active='true' name='Completing Order' number='1' value='10.0'
      active—Indicates whether the goal is active or not
      name—The goal name
      number—The goal number
      value—The goal value
      Note: Current goal fields will have either destination or engagement as children, but not both. Since API exposure of future Analytics goals is not immediate, your code should explicitly check if the goal has a destination or engagement child elements before trying to access it.
    • ga:destination caseSensitive='false' expression='/purchaseComplete.html' matchType='regex' step1Required='false'
      caseSensitive—Whether path URL matching is case sensitive
      expression—The goal path to match
      matchType—The match type for the path expression, either head, regex, or exact
      step1Required—Whether Step 1 is required
    • ga:step name='View Product Categories' number='1' path='/Apps|Accessories'
      name—The step name
      number—The step number
      path—The step path
    • ga:engagement comparison='&gt;' thresholdValue='300' type='timeOnSite'
      comparison—The comparison: > or < or =
      thresholdValue—The value that triggers the goal
      type—The type of engagement for the goal: timeOnSite or pagesVisited

Back to Top

Segment Feed

This section describes how to retrieve segment information using the Management API.

Request

You can retrieve all segments using the following URL:

https://www.googleapis.com/analytics/v2.4/management/segments

Response Elements

The segement feed response has the following structure.

  • id—a unique URI of the form http://www.googleapis.com/analytics/v2.4/management/segments
  • link a self link for this feed
  • title—the string Segments for, followed by the name of the view (profile)
  • totalResults—the total number of results for the query, regardless of the number of results in the response
  • startIndex—the starting index of the entries, which is 1 by default or otherwise specified by the start-index query parameter
  • itemsPerPage—the maximum number of entries the response can contain, regardless of the actual number of entries returned. Its value ranges from 1 to 1000 with a value of 1000 by default, or otherwise specified by the max-results query parameter
  • entry—each entry represents a given segment with the following structure/content, whether the segment is a built-in one or a custom one
    • id—the URI to the specific segment. Example: https://www.googleapis.com/analytics/v2.4/management/segments/gaid::-10
    • title— the string Google Analytics Segment followed by the segment name.
    • link rel='self'—a self link for the segment entry
    • dxp:property name='id'—The ID for the particular segment
    • dxp:property name='name'—The segment name.
    • dxp:property name='definition'—The definition of the built-in or custom segment as created by the Analytics user. In cases where the segment cannot be parsed by the API (such as with a dimension or feature not yet exposed in the API), the value for this field is empty. These segments are still available for the data feed query. There are two forms of values for this element: one for built-in segments and one for custom segments. The expressions used in the definition are similar in nature to those expressions used in data feed requests. While the definition doesn't return case sensitivity, the data returned from the segment will be correctly filtered for case sensitivity. The parameters used for segment comparisons that are not available in the data feed query follow regular expression syntax.

Important Considerations

Segments are tied to the Analytics user. The segment feed returns any available segments for the authenticated user, starting first with all built-in segments and then returning any custom segments created by the user. While a custom segment might be created by a user with a particular acccount and view (profile) in mind, it is available for any account the user has access to. This is because custom segments are tied to the user and not the Analytics account. For more information on segments, see the Segmentation section of the Help Center.

Built-in segments, which are ordered by the gaid value, start first with -1. The gaid values for built-in segments are always negative. The names for built-in segments are English-US strings. Some of the available built-in segments—such as Sessions with Transactions and Sessions with Conversions—rely on data from Analytics features that must be enabled by the account administrator. For example, while a request for the Sessions with Conversions segment in the data feed is valid, that request will only return data if goals have been set up for the view (profile) being queried.

Custom segments—returned in the feed after the built-in segments—are also ordered by gaid values. The gaid values for custom segments are alphanumeric. All custom segments created by the authenticated user are returned, regardless of which account they were created for.

Back to Top

Error Response

If a Management API request is successful, the API returns a 200 HTTP status code along with the requested data in the body of the response. If an error occurs with a request, the API returns an HTTP status code and reason in the response based on the type of error. Additionally the body of the response contains a detailed description of what caused the error. Here's an example or an error response:

400 invalidParameter

<?xml version="1.0" encoding="UTF-8"?>
<errors xmlns="http://schemas.google.com/g/2005">
  <error>
    <domain>GData</domain>
    <code>invalidParameter</code>
    <location type="parameter">max-results</location>
    <reason>Invalid parameter: max-results</reason>
  </error>
  <error>...</error>
</errors>

Note: The description could change at any time so applications should not depend on the actual description text.

The following list shows the possible error codes, reasons, and corresponding descriptions.

Code Reason Description
400 invalidParameter Indicates that a request parameter has an invalid value. The locationType and location fields in the error response provide information as to which value was invalid. This includes things like bad start-index or max-results values.
400 badRequest Indicates that the query was invalid. E.g., parent entity ID was missing or an ID was invalid.
401 invalidCredentials Indicates that the auth token is invalid or has expired.
403 insufficientPermissions Indicates that the user does not have access to the entity specified in the query.
403 dailyLimitExceeded Indicates that user has exceeded the daily quota (either per project or per view (profile)).
403 dailyLimitExceededUnreg Indicates that user needs to register in the Google Developers Console.
403 userRateLimitExceeded Indicates that user rate limit has been exceeded. This can be changed in the Google Developers Console.
503 backendError Server returned an error.

Back to Top

Authentication required

You need to be signed in with Google+ to do that.

Signing you in...

Google Developers needs your permission to do that.