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

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

1. Ative a API

Para começar a usar a API de relatórios 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.

Criar credenciais

  1. Abra a página Contas de serviço. Se solicitado, selecione um projeto.
  2. Clique em Criar conta de serviço.
  3. Na janela Criar conta de serviço, digite um nome para a conta de serviço e selecione Fornecer uma nova chave privada. Em seguida, clique em Salvar.

Seu novo par de chave pública/privada é gerado, e o download dele é feito na sua máquina. Essa é a única cópia da chave. Você é responsável por guardá-la com segurança.

Adicionar conta de serviço à conta do Google Analytics

A conta de serviço recém-criada terá um endereço de e-mail com uma aparência semelhante a esta:

quickstart@PROJECT-ID.iam.gserviceaccount.com

Use esse endereço de e-mail para adicionar um usuário à vista do Google Analytics que você quer acessar pela API. Para este tutorial, são necessárias somente permissões de leitura e análise.

2. Instale a biblioteca cliente

Você pode usar um gerenciador de pacotes ou fazer o download e instalar a biblioteca cliente Python manualmente:

pip

Use pip, a ferramenta recomendada para a instalação de pacotes Python:

sudo pip install --upgrade google-api-python-client

Setuptools

Use a ferramenta easy_install incluída no pacote setuptools:

sudo easy_install --upgrade google-api-python-client

Instalação manual

Faça o download da biblioteca cliente Python da Google API mais recente, descompacte o código e execute:

sudo python setup.py install

3. Configure a amostra

Será necessário criar um único arquivo chamado HelloAnalytics.py, que conterá o código de amostra em questão.

  1. Copie ou faça o download do código de amostra a seguir para HelloAnalytics.py.
  2. Mova o client_secrets.json obtido por download anteriormente para o mesmo diretório que o código de amostra.
  3. Substitua os valores de SERVICE_ACCOUNT_EMAIL e KEY_FILE_LOCATION pelos valores apropriados do Developer Console.
  4. 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."""

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

SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
KEY_FILE_LOCATION = '<REPLACE_WITH_JSON_FILE>'
VIEW_ID = '<REPLACE_WITH_VIEW_ID>'

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)

  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.
  """
  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()

4. Execute a amostra

Execute a amostra usando:

python HelloAnalytics.py

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 linha a seguir ao arquivo ~/.bashrc, substituindo &lt;pip_install_path&gt; pelo valor determinado acima:

    export PYTHONPATH=$PYTHONPATH:<pip_install_path>

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

    source ~/.bashrc