Hello Analytics API: Python-Kurzanleitung für Dienstkonten

In dieser Anleitung werden die Schritte beschrieben, die erforderlich sind, um auf ein Google Analytics-Konto zuzugreifen, die Analytics APIs abzufragen, die API-Antworten zu verarbeiten und die Ergebnisse auszugeben. In dieser Anleitung werden die Core Reporting API v3.0, die Management API v3.0 und OAuth 2.0 verwendet.

Schritt 1: Analytics API aktivieren

Für den Einstieg in die Google Analytics API müssen Sie zuerst das Einrichtungstool verwenden. Es führt Sie durch die Erstellung eines Projekts in der Google API Console sowie durch die Aktivierung der API und die Erstellung von Anmeldedaten.

Client-ID erstellen

  1. Öffne die Seite Dienstkonten. Wähle ein Projekt aus, wenn du dazu aufgefordert wirst.
  2. Klicke auf Dienstkonto erstellen und gib einen Namen und eine Beschreibung für das Dienstkonto ein. Du kannst die standardmäßige Dienstkonto-ID verwenden oder eine andere eindeutige ID auswählen. Wenn du fertig bist, klicke auf Erstellen.
  3. Für den folgenden Abschnitt Dienstkontoberechtigungen (optional) sind keine Maßnahmen erforderlich. Klicke auf Weiter.
  4. Scrolle auf dem Bildschirm Nutzern Zugriff auf dieses Dienstkonto erteilen nach unten zum Abschnitt Schlüssel erstellen. Klicke auf Schlüssel erstellen.
  5. Wähle in der angezeigten Seitenleiste das Format für deinen Schlüssel aus. Empfohlen wird JSON.
  6. Klicken Sie auf Erstellen. Dein neues öffentliches/privates Schlüsselpaar wird generiert und auf deinen Computer heruntergeladen. Dies ist die einzige Kopie dieses Schlüssels. Informationen dazu, wie du den Schlüssel sicher speicherst, findest du unter Dienstkontoschlüssel verwalten.
  7. Klicke im Dialogfeld Privater Schlüssel auf deinem Computer gespeichert auf Schließen und dann auf Fertig, um zur Tabelle deiner Dienstkonten zurückzukehren.

Dienstkonto zum Google Analytics-Konto hinzufügen

Das neu erstellte Dienstkonto hat die E-Mail-Adresse <projectId>-<uniqueId>@developer.gserviceaccount.com. Verwenden Sie diese E-Mail-Adresse, um dem Google Analytics-Konto, auf das Sie über die API zugreifen möchten, einen Nutzer hinzuzufügen. Für diese Anleitung sind nur die Berechtigungen Lesen und Analysieren erforderlich.

Schritt 2: Google-Clientbibliothek installieren

Sie können entweder einen Paketmanager verwenden oder die Python-Clientbibliothek manuell herunterladen und installieren:

pip

Verwenden Sie das empfohlene Tool pip für die Installation von Python-Paketen:

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

Einrichtungstools

Verwenden Sie dazu das im setuptools-Paket enthaltene Tool easy_install:

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

Manuelle Installation

Laden Sie die neueste Clientbibliothek für Python herunter, entpacken Sie den Code und führen Sie ihn aus:

sudo python setup.py install

Möglicherweise müssen Sie den Befehl mit den Superuser-Berechtigungen (sudo) aufrufen, um das Python-System zu installieren.

Schritt 3: Beispiel einrichten

Sie müssen eine einzelne Datei mit dem Namen HelloAnalytics.py erstellen, die den angegebenen Beispielcode enthält.

  1. Kopieren oder laden Sie den folgenden Quellcode in HelloAnalytics.py herunter.
  2. Verschieben Sie die zuvor heruntergeladene client_secrets.json in dasselbe Verzeichnis wie den Beispielcode.
  3. Ersetzen Sie die Werte von key_file_location durch die entsprechenden Werte aus der Developer 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()

Schritt 4: Beispiel ausführen

Nachdem Sie die Analytics API aktiviert haben, haben Sie die Google APIs-Clientbibliothek für Python installiert und den Beispielcode eingerichtet, mit dem das Beispiel ausgeführt werden kann.

Führen Sie das Beispiel mit dem folgenden Befehl aus:

python HelloAnalytics.py

Wenn Sie diese Schritte abgeschlossen haben, werden im Beispiel der Name der ersten Google Analytics-Datenansicht (Profil) des autorisierten Nutzers und die Anzahl der Sitzungen in den letzten sieben Tagen ausgegeben.

Mit dem autorisierten Analytics-Dienstobjekt können Sie jetzt alle Codebeispiele aus der Referenzdokumentation zur Management API ausführen. Sie könnten beispielsweise versuchen, den Code so zu ändern, dass die Methode accountSummaries.list verwendet wird.

Fehlerbehebung

AttributeError: Objekt "Module_six_moves_urllib_parse" hat kein Attribut "urlparse"

Dieser Fehler kann unter Mac OS X auftreten, wo die Standardinstallation des Moduls „six“ (eine Abhängigkeit dieser Bibliothek) vor dem Modul geladen wird, das PIP installiert hat. Um das Problem zu beheben, fügen Sie den Installationsspeicherort von pip der Systemumgebungsvariablen PYTHONPATH hinzu:

  1. Bestimmen Sie den Installationspfad von pip mit dem folgenden Befehl:

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

  2. Fügen Sie der Datei ~/.bashrc die folgende Zeile hinzu und ersetzen Sie dabei <pip_install_path> durch den oben ermittelten Wert:

    export PYTHONPATH=$PYTHONPATH:<pip_install_path>
    
  3. Laden Sie die Datei ~/.bashrc mit dem folgenden Befehl in allen geöffneten Terminalfenstern neu:

    source ~/.bashrc