API Hello Analytics: guide de démarrage rapide pour Python pour les comptes de service

Ce tutoriel décrit les étapes à suivre pour accéder à un compte Google Analytics, interroger les API Analytics, gérer les réponses de l'API et générer les résultats. Ce tutoriel utilise les versions 3.0 de l'API Core Reporting, API Management v3.0 et OAuth2.0.

Étape 1: Activer l'API Analytics

Pour commencer à utiliser l'API Google Analytics, vous devez d'abord utiliser l'outil de configuration, qui vous guide tout au long de la création d'un projet dans la console Google APIs, de l'activation de l'API et de la création d'identifiants.

Créer un ID client

  1. Ouvrez la page Comptes de service. Si vous y êtes invité, sélectionnez un projet.
  2. Cliquez sur Créer un compte de service, puis saisissez un nom et une description pour ce compte. Vous pouvez utiliser l'ID de compte de service par défaut ou en choisir un autre, unique. Une fois que vous avez terminé, cliquez sur Créer.
  3. La section Autorisations associées au compte de service (facultatif) qui suit n'est pas requise. Cliquez sur Continuer.
  4. Sur l'écran Autoriser les utilisateurs à accéder à ce compte de service, accédez à la section Créer une clé. Cliquez sur Créer une clé.
  5. Dans le panneau latéral qui s'affiche, sélectionnez le format de votre clé. JSON est recommandé.
  6. Cliquez sur Créer. La nouvelle paire de clés publique et privée est générée et téléchargée sur votre ordinateur. Il s'agit de la seule copie dont vous disposez. Découvrez comment stocker cette clé en toute sécurité.
  7. Cliquez sur Fermer dans la boîte de dialogue Clé privée enregistrée sur votre ordinateur, puis cliquez sur OK pour afficher le tableau des comptes de service.

Ajouter un compte de service au compte Google Analytics

Le compte de service nouvellement créé disposera d'une adresse e-mail, <projectId>-<uniqueId>@developer.gserviceaccount.com. Utilisez cette adresse e-mail pour ajouter un utilisateur au compte Google Analytics auquel vous souhaitez accéder via l'API. Pour ce tutoriel, seules les autorisations Lire et analyser sont nécessaires.

Étape 2: Installez la bibliothèque cliente Google

Vous pouvez utiliser un gestionnaire de packages ou télécharger et installer la bibliothèque cliente Python manuellement:

pip

Utilisez pip, l'outil recommandé pour installer des packages Python:

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

Outils de configuration

Utilisez l'outil easy_install inclus dans le package setuptools:

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

Installation manuelle

Téléchargez la dernière bibliothèque cliente pour Python, décompressez son code et exécutez la commande suivante:

sudo python setup.py install

Vous devrez peut-être appeler la commande avec les droits de super-utilisateur (sudo) pour effectuer l'installation sur le Python système.

Étape 3: Configurer l'exemple

Vous devez créer un fichier unique nommé HelloAnalytics.py, qui contiendra l'exemple de code donné.

  1. Copiez ou téléchargez le code source suivant dans HelloAnalytics.py.
  2. Déplacez le fichier client_secrets.json précédemment téléchargé dans le même répertoire que l'exemple de code.
  3. Remplacez les valeurs de key_file_location par les valeurs appropriées de la 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()

Étape 4: Exécutez l'exemple

Une fois que vous avez activé l'API Analytics, installé la bibliothèque cliente des API Google pour Python et configuré l'exemple de code source, celui-ci est prêt à être exécuté.

Exécutez l'exemple à l'aide de la commande suivante:

python HelloAnalytics.py

Une fois ces étapes terminées, l'exemple génère le nom de la première vue Google Analytics (profil) de l'utilisateur autorisé, ainsi que le nombre de sessions au cours des sept derniers jours.

Avec l'objet de service Analytics autorisé, vous pouvez désormais exécuter n'importe quel exemple de code disponible dans la documentation de référence de l'API Management. Par exemple, vous pouvez essayer de modifier le code pour utiliser la méthode accountSummaries.list.

Dépannage

Erreur d'attribut : l'objet "Module_six_moves_urllib_parse" ne possède pas d'attribut "urlparse"

Cette erreur peut se produire sous Mac OSX, où l'installation par défaut du module "six" (une dépendance de cette bibliothèque) est chargée avant celui installé par pip. Pour résoudre le problème, ajoutez l'emplacement d'installation de pip à la variable d'environnement système PYTHONPATH:

  1. Déterminez l'emplacement d'installation de pip à l'aide de la commande suivante:

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

  2. Ajoutez la ligne suivante à votre fichier ~/.bashrc, en remplaçant <pip_install_path> par la valeur déterminée ci-dessus:

    export PYTHONPATH=$PYTHONPATH:<pip_install_path>
    
  3. Actualisez votre fichier ~/.bashrc dans n'importe quelle fenêtre de terminal ouverte à l'aide de la commande suivante:

    source ~/.bashrc