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

In dieser Anleitung werden die erforderlichen Schritte für den Zugriff auf Version 4 der Analytics Reporting API beschrieben.

1. API aktivieren

Für den Einstieg in Version 4 der Analytics Reporting API müssen Sie zuerst das Einrichtungstool verwenden. Dieses Tool führt Sie durch die Erstellung eines Projekts in der Google API Console, die Aktivierung der API und die Erstellung von Anmeldedaten.

Hinweis: Um eine Web-Client-ID oder einen Client für eine installierte Anwendung zu erstellen, müssen Sie im Zustimmungsbildschirm einen Produktnamen festlegen. Wenn Sie dies noch nicht getan haben, werden Sie aufgefordert, den Zustimmungsbildschirm zu konfigurieren.

Anmeldedaten erstellen

  • Öffnen Sie die Seite Anmeldedaten.
  • Klicken Sie auf Anmeldedaten erstellen und wählen Sie OAuth-Client-ID aus.
  • Wählen Sie als Anwendungstyp die Option Sonstige aus.
  • Nennen Sie die Client-ID quickstart und klicken Sie auf Erstellen.

Klicken Sie auf der Seite „Anmeldedaten“ auf die neu erstellte Client-ID und dann auf JSON herunterladen. Speichern Sie die ID als client_secrets.json. Sie benötigen sie später in dieser Anleitung.

2. Clientbibliothek installieren

Für die Installation von Python-Paketen wird die Verwendung von pip mit venv empfohlen: sudo -s apt-get install python3-venv python3 -m venv analytics-quickstart source analytics-quickstart/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 Datei client_secrets.json in das Verzeichnis, in dem sich der Beispielcode befindet.
  3. Ersetzen Sie den Wert von VIEW_ID. Sie können den Konto-Explorer verwenden, um die ID der Datenansicht zu 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.
  • Wenn 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, wird im Beispiel die Anzahl der Sitzungen der letzten sieben Tage für die jeweilige Ansicht ausgegeben.

Fehlerbehebung

AttributeError: Objekt "Module_six_moves_urllib_parse" weist kein Attribut "urlparse" auf

Dieser Fehler kann unter Mac OSX auftreten, wo die Standardinstallation des "six"-Moduls (eine Abhängigkeit dieser Bibliothek) vor dem Modul geladen wird, das pip installiert hat. Um das Problem zu beheben, fügen Sie den Installationspfad 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 &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