In dieser Anleitung werden die Schritte für den Zugriff auf Version 4 der Analytics Reporting API beschrieben.
1. API aktivieren
Wenn Sie die Analytics Reporting API Version 4 verwenden möchten, 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.
Hinweis: Um eine Web-Client-ID oder einen Client für installierte Anwendungen zu erstellen, müssen Sie im Zustimmungsbildschirm einen Produktnamen festlegen. Falls Sie dies noch nicht getan haben, werden Sie aufgefordert, den Zustimmungsbildschirm konfigurieren.Anmeldedaten erstellen
- Öffnen Sie die Seite Anmeldedaten.
- Klicken Sie auf Anmeldedaten erstellen und wählen Sie OAuth-Client-ID aus.
- Wählen Sie für den Anwendungstyp die Option Sonstige aus.
- Benennen Sie die Client-ID quickstart und klicken Sie auf quickstart.
Klicken Sie auf der Seite „Anmeldedaten“ auf die neu erstellte Client-ID. Klicken Sie dann auf JSON herunterladen und speichern Sie sie als client_secrets.json
. Sie benötigen sie später in der Anleitung.
2. Clientbibliothek installieren
Die Verwendung von pip zusammen mit venv wird für die Installation von Python-Paketen empfohlen: sudo -s apt-get install python3-venv python3 -m venv analytics-Schnellstart source analytics-tooltip/bin/activate pip install --upgrade google-api-python-client pip install --upgrade oauth2client
3. Beispiel einrichten
Sie müssen eine einzelne Datei mit dem Namen HelloAnalytics.py
erstellen, die den angegebenen Beispielcode enthält.
- Kopieren oder laden Sie den folgenden Quellcode in
HelloAnalytics.py
herunter. - Verschieben Sie die zuvor heruntergeladene
client_secrets.json
in das Verzeichnis, in dem sich auch der Beispielcode befindet. - Ersetzen Sie den Wert von
VIEW_ID
. Mit dem Konto-Explorer können Sie die ID der Datenansicht ermitteln.
"""Hello Analytics Reporting API V4.""" import argparse from apiclient.discovery import build import httplib2 from oauth2client import client from oauth2client import file from oauth2client import tools SCOPES = ['https://www.googleapis.com/auth/analytics.readonly'] CLIENT_SECRETS_PATH = 'client_secrets.json' # Path to client_secrets.json file. VIEW_ID = '<REPLACE_WITH_VIEW_ID>' def initialize_analyticsreporting(): """Initializes the analyticsreporting service object. Returns: analytics an authorized analyticsreporting service object. """ # 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=SCOPES, 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('analyticsreporting.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. analytics = build('analyticsreporting', 'v4', http=http) return analytics def get_report(analytics): # Use the Analytics Service Object to query the Analytics Reporting API V4. return analytics.reports().batchGet( body={ 'reportRequests': [ { 'viewId': VIEW_ID, 'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}], 'metrics': [{'expression': 'ga:sessions'}] }] } ).execute() def print_response(response): """Parses and prints the 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', []) rows = report.get('data', {}).get('rows', []) for row in 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. Beispiel ausführen
Führen Sie das Beispiel mit dem folgenden Befehl aus:
python HelloAnalytics.py
- Die Anwendung lädt die Autorisierungsseite in einem Browser.
- Falls Sie noch nicht in Ihrem Google-Konto angemeldet sind, werden Sie dazu aufgefordert. Wenn Sie in mehreren Google-Konten angemeldet sind, werden Sie aufgefordert, ein Konto für die Autorisierung auszuwählen.
Wenn Sie diese Schritte abgeschlossen haben, gibt das Beispiel die Anzahl der Sitzungen in den letzten sieben Tagen für die jeweilige Ansicht aus.
Fehlerbehebung
AttributeError: Objekt "Module_six_moves_urllib_parse" hat kein Attribut "urlparse"
Dieser Fehler kann unter Mac OSX 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:
Bestimmen Sie den Installationspfad von pip mit dem folgenden Befehl:
pip show Six | grep "Location:" | cut -d " " -f2
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>
Laden Sie die Datei
~/.bashrc
mit dem folgenden Befehl in allen geöffneten Terminalfenstern neu:Quelle: ~/.bashrc