Hello Analytics Reporting API Version 4; Python-Kurzanleitung für installierte Anwendungen

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.

  1. Kopieren oder laden Sie den folgenden Quellcode in HelloAnalytics.py herunter.
  2. Verschieben Sie die zuvor heruntergeladene client_secrets.json in das Verzeichnis, in dem sich auch der Beispielcode befindet.
  3. 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 &lt;pip_install_path&gt; 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