question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Error: Analytics Reporting API has not been used in project before or it is disabled

See original GitHub issue

Error: Analytics Reporting API has not been used in project before or it is disabled

Environment details

  • OS type and version: Ubuntu WSL - 4.19.104-microsoft-standard
  • Python version: Python 3.7.6
  • pip version: pip 20.0.2 from /home/jonas/anaconda3/lib/python3.7/site-packages/pip (python 3.7)
  • google-api-python-client version:

Name: google-api-python-client Version: 1.8.3 Summary: Google API Client Library for Python Home-page: http://github.com/google/google-api-python-client/ Author: Google LLC Author-email: googleapis-packages@google.com License: Apache 2.0 Location: /home/jonas/anaconda3/lib/python3.7/site-packages Requires: google-api-core, httplib2, google-auth-httplib2, six, google-auth, uritemplate

Steps to reproduce

  1. Google Analytics Reporting API (and also Google Analitycs API) is enabled at cloud console
  2. Service credential is created and email is added to GA account as a read/analise user
  3. I´m Using the “Hello Analytics Reporting API V4.” python code
  4. Using apiclient.discovery and analytics = build(‘analyticsreporting’, ‘v4’, credentials=credentials, cache_discovery=False)
  5. I also have tryed a workaround bypassing my python code at https://developers.google.com/analytics/devguides/reporting/core/v4/rest/v4/reports/batchGet but when I try to execute the authentication pop-up stays blank and loader keeps spinning forever and chrome dev tools shows Failed to load resource: net::ERR_QUIC_PROTOCOL_ERROR.QUIC_PACKET_READ_ERROR

Code example

#!/usr/bin/python3.6
"""Hello Analytics Reporting API V4."""

from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials

SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
KEY_FILE_LOCATION = '../../gcloud.json'
VIEW_ID = 'xxxxxxx'

def initialize_analyticsreporting():
  """Initializes an Analytics Reporting API V4 service object.

  Returns:
    An authorized Analytics Reporting API V4 service object.
  """
  credentials = ServiceAccountCredentials.from_json_keyfile_name(
      KEY_FILE_LOCATION, SCOPES)

  # Build the service object.
  analytics = build('analyticsreporting', 'v4', credentials=credentials, cache_discovery=False)
  return analytics

def get_report(analytics):
  """Queries the Analytics Reporting API V4.

  Args:
    analytics: An authorized Analytics Reporting API V4 service object.
  Returns:
    The Analytics Reporting API V4 response.
  """
  print ("test")
  return analytics.reports().batchGet(
      body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
          'metrics': [{'expression': 'ga:sessions'}],
          'dimensions': [{'name': 'ga:country'}]
        }]
      }
  ).execute()

def print_response(response):
  """Parses and prints the Analytics Reporting API V4 response.

  Args:
    response: An Analytics Reporting API V4 response.
  """
  for report in response.get('reports', []):
    columnHeader = report.get('columnHeader', {})
    dimensionHeaders = columnHeader.get('dimensions', [])
    metricHeaders = columnHeader.get('metricHeader', {}).get('metricHeaderEntries', [])

    for row in report.get('data', {}).get('rows', []):
      dimensions = row.get('dimensions', [])
      dateRangeValues = row.get('metrics', [])

      for header, dimension in zip(dimensionHeaders, dimensions):
        print(header + ': ' + dimension)

      for i, values in enumerate(dateRangeValues):
        print('Date range: ' + str(i))
        for metricHeader, value in zip(metricHeaders, values.get('values')):
          print(metricHeader.get('name') + ': ' + value)

def main():
  analytics = initialize_analyticsreporting()
  response = get_report(analytics)
  print_response(response)

if __name__ == '__main__':
  main()

Stack trace

 googleapiclient.errors.HttpError: <HttpError 403 when requesting https://analyticsreporting.googleapis.com/v4/reports:batchGet?alt=json returned "Analytics Reporting API has not been used in project xxxx before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/analyticsreporting.googleapis.com/overview?project=xxxx then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.". Details: "[{'@type': 'type.googleapis.com/google.rpc.Help', 'links': [{'description': 'Google developers console API activation', 'url': 'https://console.developers.google.com/apis/api/analyticsreporting.googleapis.com/overview?project=xxxx'}]}]">

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:15 (6 by maintainers)

github_iconTop GitHub Comments

1reaction
partheacommented, Dec 7, 2020

Hi @jonaslsl,

I’m going to close this issue as I can’t produce the problem but if you’re still having trouble please re-open it with additional information. Also see @deepaknaikhnvrm’s comment as an additional check.

1reaction
jonaslslcommented, Jun 3, 2020

@Blackrobe Sorry! Let me try to be clear:

  1. Project A have reporting API enabled and also a service credential that is giving me the Error: Analytics Reporting API has not been used in project before or it is disabled

  2. Few days AFTER I created a project B, with new credentials and reporting API enabled for project B (same process of a new user at Gcloud) and it worked.

Both cases I have followed the “API wizard proccess/flow” that is present in V4 documentation: https://console.developers.google.com/start/api?id=analyticsreporting.googleapis.com&credential=client_key&hl=pt

Also for project A that is not working I have sent all the print screens with matching project-ids, names and etc.

The email from credential A and B is added as a user at GA.

Project B solves my problem, but I am still bugged

Read more comments on GitHub >

github_iconTop Results From Across the Web

Error : Analytics Reporting API V4 has not been used in project
I have already setup a Service Account Key in the analytics-test-1279 project. The Analytics API is also enabled. The Analytics API is enabled....
Read more >
Google Ads API has not been used in project xxxxxxxxxx
Hi, get error when try to get data from google ads: Error: 7 PERMISSION_DENIED: Google Ads API has not been used in project...
Read more >
Error Responses | Analytics Reporting API v4
401, UNAUTHENTICATED, The client is not authenticated properly. ; 403, PERMISSION_DENIED, Indicates the request for data to which the user does not have...
Read more >
API has not been used in project 563584335869 before or it is ...
Original error message. Error: 7 PERMISSION_DENIED: Cloud Text-to-Speech API has not been used in project 563584335869 before or it is disabled.
Read more >
Connecting to Google Analytics | Documentation | Learning
Developers Console project · Enable the Analytics API ... The Google Analytics provider used before Dundas BI version 6 has been deprecated and...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found