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

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 Google Analytics

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

Criar um ID de cliente

  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, <projectId>-<uniqueId>@developer.gserviceaccount.com. Use esse endereço de e-mail para adicionar um usuário à conta do Google Analytics que você quer acessar pela API. Neste tutorial, são necessárias apenas permissões de leitura e análise.

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 invocar o comando com privilégios de superusuário (sudo) para instalar no Python do sistema.

Etapa 3: configurar 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 os valores de key_file_location pelos valores apropriados do Play Console.
"""A simple example of how to access the Google Analytics API."""

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


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

    Args:
        api_name: The name of the api to connect to.
        api_version: The api version to connect to.
        scopes: A list auth scopes to authorize for the application.
        key_file_location: The path to a valid service account JSON key file.

    Returns:
        A service that is connected to the specified API.
    """

    credentials = ServiceAccountCredentials.from_json_keyfile_name(
            key_file_location, scopes=scopes)

    # Build the service object.
    service = build(api_name, api_version, credentials=credentials)

    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 this 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 within 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):', results.get('profileInfo').get('profileName')
        print 'Total Sessions:', 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'
    key_file_location = '<REPLACE_WITH_JSON_FILE>'

    # Authenticate and construct service.
    service = get_service(
            api_name='analytics',
            api_version='v3',
            scopes=[scope],
            key_file_location=key_file_location)

    profile_id = get_first_profile_id(service)
    print_results(get_results(service, profile_id))


if __name__ == '__main__':
    main()

Etapa 4: executar a amostra

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

Execute a amostra usando:

python HelloAnalytics.py

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, tente 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 arquivo ~/.bashrc, substituindo <pip_install_path> pelo valor determinado acima:

    export PYTHONPATH=$PYTHONPATH:<pip_install_path>
    
  3. Atualize o arquivo ~/.bashrc em qualquer janela de terminal aberto usando este comando:

    source ~/.bashrc