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

Este tutorial mostra as etapas necessárias para acessar uma conta do Google Analytics, consultar as APIs do Google Analytics, lidar com as respostas da API e gerar os resultados. A API Core Reporting v3.0, a API Management v3.0 e o OAuth2.0 são usados neste tutorial.

Etapa 1: ativar a API Analytics

Para começar a usar API Google Analytics, primeiro use a ferramenta de configuração, que fornece orientações para criar um projeto no console de APIs do Google, ativar a API e criar credenciais.

Criar um Client-ID

Na página "Credenciais":

  1. Clique em Criar credenciais e selecione OAuth Client-ID.
  2. Selecione Outro em TIPO DE APLICATIVO.
  3. Defina um nome para a credencial.
  4. Clique em Criar.

Selecione a credencial que você criou e clique em Fazer o download do JSON. Salve o arquivo como client_secrets.json. Você precisará dele mais adiante no tutorial.

Etapa 2: Instalar a biblioteca de cliente do Google

Você pode usar um gerenciador de pacotes ou fazer o download e instalar a biblioteca de cliente do 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 de cliente para python mais recente, descompacte o código e execute:

sudo python setup.py install

Talvez seja necessário chamar o comando usando privilégios de superusuário (sudo) para instalar no Python do sistema.

Etapa 3: configurar 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-fonte a seguir para HelloAnalytics.py.
  2. Mova o client_secrets.json salvo anteriormente para o mesmo diretório que o código de amostra.
"""A simple example of how to access the Google Analytics API."""

import argparse

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

def get_service(api_name, api_version, scope, client_secrets_path):
  """Get a service that communicates to a Google API.

  Args:
    api_name: string The name of the api to connect to.
    api_version: string The api version to connect to.
    scope: A list of strings representing the auth scopes to authorize for the
      connection.
    client_secrets_path: string A path to a valid client secrets file.

  Returns:
    A service that is connected to the specified API.
  """
  # 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=scope,
      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(api_name + '.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.
  service = build(api_name, api_version, http=http)

  return service

def get_first_profile_id(service):
  # Use the Analytics service object to get the first profile id.

  # Get a list of all Google Analytics accounts for the authorized user.
  accounts = service.management().accounts().list().execute()

  if accounts.get('items'):
    # Get the first Google Analytics account.
    account = accounts.get('items')[0].get('id')

    # Get a list of all the properties for the first account.
    properties = service.management().webproperties().list(
        accountId=account).execute()

    if properties.get('items'):
      # Get the first property id.
      property = properties.get('items')[0].get('id')

      # Get a list of all views (profiles) for the first property.
      profiles = service.management().profiles().list(
          accountId=account,
          webPropertyId=property).execute()

      if profiles.get('items'):
        # return the first view (profile) id.
        return profiles.get('items')[0].get('id')

  return None

def get_results(service, profile_id):
  # Use the Analytics Service Object to query the Core Reporting API
  # for the number of sessions in the past seven days.
  return service.data().ga().get(
      ids='ga:' + profile_id,
      start_date='7daysAgo',
      end_date='today',
      metrics='ga:sessions').execute()

def print_results(results):
  # Print data nicely for the user.
  if results:
    print 'View (Profile): %s' % results.get('profileInfo').get('profileName')
    print 'Total Sessions: %s' % results.get('rows')[0][0]

  else:
    print 'No results found'

def main():
  # Define the auth scopes to request.
  scope = ['https://www.googleapis.com/auth/analytics.readonly']

  # Authenticate and construct service.
  service = get_service('analytics', 'v3', scope, 'client_secrets.json')
  profile = get_first_profile_id(service)
  print_results(get_results(service, profile))

if __name__ == '__main__':
  main()

Etapa 4: executar a amostra

Depois de você ter ativado a API Google Analytics, instalado a biblioteca de cliente das APIs Google para Python e configurado o código-fonte da amostra, ela está pronta para ser executada.

Execute a amostra usando:

python HelloAnalytics.py
  1. O aplicativo carregará a página de autorização em um navegador.
  2. 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 nome da primeira vista (perfil) do Google Analytics do usuário autorizado, além do número de sessões dos últimos sete dias.

Com o objeto de serviço autorizado do Google Analytics, agora você pode executar qualquer uma das amostras de código nos documentos de referência da API Management. Por exemplo, você pode tentar alterar o código para usar o método accountSummaries.list.

Solução de problemas

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

Esse erro pode ocorrer no Mac OSX onde 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:

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

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

  2. Adicione a seguinte linha ao seu arquivo ~/.bashrc, substituindo <pip_install_path> pelo valor determinado acima:

    export PYTHONPATH=$PYTHONPATH:<pip_install_path>
    
  3. Recarregue seu arquivo ~/.bashrc na janela de qualquer terminal aberto usando este comando:

    source ~/.bashrc