Apresentação da Reporting API v4 do Google Analytics: início rápido de Python para aplicativos instalados

Este tutorial apresenta as etapas necessárias para acessar a API Reporting API v4 do Google Analytics.

1. Ative a API

Para começar a usar a API Reporting v4 do Google Analytics, primeiro é necessário usar a ferramenta de configuração, que orienta você na criação de um projeto no Console de APIs do Google, na ativação da API e na criação de credenciais.

Observação: para criar um Client-ID da Web ou um cliente de aplicativo instalado, é necessário definir um nome de produto na tela de consentimento. Você vai precisar configurar a tela de consentimento, se ainda não tiver feito isso.

Criar credenciais

  • Abra a página Credenciais.
  • Clique em Criar credenciais e selecione OAuth Client-ID.
  • Para o tipo de aplicativo, selecione Outro.
  • Atribua um nome ao quickstart do Client-ID e clique em quickstart.

Na página Credenciais, clique no ID do cliente recém-criado, depois em Fazer o download do JSON e salve como client_secrets.json. Você vai precisar dele mais adiante no tutorial.

2. Instale a biblioteca cliente

Usar pip com venv é a maneira recomendada de instalar pacotes Python: sudo -s apt-get install python3-venv python3 -m venv analytics-quickstart source analytics-quickstart/bin/activate pip install --upgrade google-api-python-client pip install --upgrade oauth2client

3. Configure a amostra

Você precisará criar um único arquivo chamado HelloAnalytics.py, que conterá o exemplo de código fornecido.

  1. Copie ou faça o download do código-fonte a seguir para HelloAnalytics.py.
  2. Mova o client_secrets.json salvo anteriormente para o mesmo diretório que o exemplo de código.
  3. Substitua o valor de VIEW_ID. Você pode usar o Explorador da conta para encontrar o ID de uma vista.
"""Hello Analytics Reporting API V4."""

import argparse

from apiclient.discovery import build
import httplib2
from oauth2client import client
from oauth2client import file
from oauth2client import tools

SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
CLIENT_SECRETS_PATH = 'client_secrets.json' # Path to client_secrets.json file.
VIEW_ID = '<REPLACE_WITH_VIEW_ID>'


def initialize_analyticsreporting():
  """Initializes the analyticsreporting service object.

  Returns:
    analytics an authorized analyticsreporting service object.
  """
  # Parse command-line arguments.
  parser = argparse.ArgumentParser(
      formatter_class=argparse.RawDescriptionHelpFormatter,
      parents=[tools.argparser])
  flags = parser.parse_args([])

  # Set up a Flow object to be used if we need to authenticate.
  flow = client.flow_from_clientsecrets(
      CLIENT_SECRETS_PATH, scope=SCOPES,
      message=tools.message_if_missing(CLIENT_SECRETS_PATH))

  # Prepare credentials, and authorize HTTP object with them.
  # If the credentials don't exist or are invalid run through the native client
  # flow. The Storage object will ensure that if successful the good
  # credentials will get written back to a file.
  storage = file.Storage('analyticsreporting.dat')
  credentials = storage.get()
  if credentials is None or credentials.invalid:
    credentials = tools.run_flow(flow, storage, flags)
  http = credentials.authorize(http=httplib2.Http())

  # Build the service object.
  analytics = build('analyticsreporting', 'v4', http=http)

  return analytics

def get_report(analytics):
  # Use the Analytics Service Object to query the Analytics Reporting API V4.
  return analytics.reports().batchGet(
      body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
          'metrics': [{'expression': 'ga:sessions'}]
        }]
      }
  ).execute()


def print_response(response):
  """Parses and prints the 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', [])
    rows = report.get('data', {}).get('rows', [])

    for row in 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()

4. Execute a amostra

Execute a amostra usando:

python HelloAnalytics.py
  • O aplicativo carregará a página de autorização em um navegador.
  • Se você ainda não tiver feito login na sua Conta do Google, terá que fazê-lo. Se você estiver conectado a várias Contas do Google, terá que selecionar uma a ser usada para a autorização.

Quando você concluir essas etapas, a amostra gerará o número de sessões dos últimos sete dias para a vista específica.

Solução de problemas

AttributeError: 'Module_six_moves_urllib_parse' object has no attribute 'urlparse'

Esse erro pode ocorrer no Mac OSX em que a instalação padrão do módulo "six" (uma dependência dessa biblioteca) é carregada antes do módulo que o pip instalou. Para corrigir o problema, adicione o local de instalação do pip à variável de ambiente do sistema PYTHONPATH:

  • Determine o local de instalação do pip com este comando:

    pip show six | grep "Location:" | cut -d " " -f2

  • Adicione a seguinte linha ao arquivo ~/.bashrc, substituindo &lt;pip_install_path&gt; pelo valor determinado acima:

    export PYTHONPATH=$PYTHONPATH:<pip_install_path>

  • Atualize o arquivo ~/.bashrc em qualquer janela de terminal aberto usando este comando:

    source ~/.bashrc