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 API 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, digite um nome e uma descrição para a conta correspondente. Você pode usar o ID da conta de serviço padrão ou escolher um código diferente e único. Quando terminar, clique em Criar.
  3. A seção seguinte ,Permissões da conta de serviço (opcional), não é necessária. Clique em Continuar.
  4. Em Conceda aos usuários acesso a essa conta de serviço, role a tela para baixo até a seção Criar chave. Clique em Criar chave.
  5. No painel lateral exibido, selecione o formato da sua chave. JSON é a opção recomendada.
  6. Clique em Criar. Seu novo par de chave pública/privada é gerado, e o download é feito na sua máquina. Essa é a única cópia da chave. Para saber mais sobre como armazenar com segurança, consulte Como gerenciar chaves de contas de serviço.
  7. Clique em Fechar na caixa de diálogo Chave privada salva no seu computador e clique em Concluir para retornar à tabela das suas contas de serviço.

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 apenas permissões de leitura e análise.

2. Instale a biblioteca de cliente

Usar pip com venv é a forma 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 código de amostra 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 KEY_FILE_LOCATION pelo caminho apropriado para o arquivo client_secrets.json transferido por download.
  4. Substitua o valor de VIEW_ID. Você pode usar o Explorador de contas 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 seguinte linha ao seu 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 aberta usando este comando:

    source ~/.bashrc