Hello Analytics API: Python-Kurzanleitung für installierte Anwendungen

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

Bevor Sie die Google Analytics API verwenden können, 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.

Client-ID erstellen

Auf der Seite „Anmeldedaten“:

  1. Klicken Sie auf Anmeldedaten erstellen und wählen Sie OAuth-Client-ID aus.
  2. Wählen Sie unter ANWENDUNGSTYP die Option Sonstige aus.
  3. Benennen Sie die Anmeldedaten.
  4. Klicken Sie auf Erstellen.

Wählen Sie die soeben erstellten Anmeldedaten aus und klicken Sie auf JSON herunterladen. Speichern Sie die heruntergeladene Datei als client_secrets.json. Sie benötigen sie später in der Anleitung.

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

Setuptools

Verwenden Sie 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 folgenden Befehl aus:

sudo python setup.py install

Möglicherweise müssen Sie den Befehl mit 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 das zuvor heruntergeladene client_secrets.json-Objekt in dasselbe Verzeichnis wie den Beispielcode.
"""A simple example of how to access the Google Analytics API."""

import argparse

from apiclient.discovery import build
import httplib2
from oauth2client import client
from oauth2client import file
from oauth2client import tools


def get_service(api_name, api_version, scope, client_secrets_path):
  """Get a service that communicates to a Google API.

  Args:
    api_name: string The name of the api to connect to.
    api_version: string The api version to connect to.
    scope: A list of strings representing the auth scopes to authorize for the
      connection.
    client_secrets_path: string A path to a valid client secrets file.

  Returns:
    A service that is connected to the specified API.
  """
  # 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=scope,
      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(api_name + '.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.
  service = build(api_name, api_version, http=http)

  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 the authorized 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 in 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): %s' % results.get('profileInfo').get('profileName')
    print 'Total Sessions: %s' % 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']

  # Authenticate and construct service.
  service = get_service('analytics', 'v3', scope, 'client_secrets.json')
  profile = get_first_profile_id(service)
  print_results(get_results(service, profile))


if __name__ == '__main__':
  main()

Schritt 4: Beispiel ausführen

Nachdem Sie die Analytics API aktiviert, die Google APIs-Clientbibliothek für Python installiert und den Beispielcode eingerichtet haben, der für die Ausführung bereit ist

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

python HelloAnalytics.py
  1. Die Anwendung lädt die Autorisierungsseite in einem Browser.
  2. Wenn Sie noch nicht bei 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 ausgeführt 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 beliebige Codebeispiele ausführen, die in den Referenzdokumenten zur Management API enthalten sind. Sie könnten beispielsweise versuchen, den Code mit der Methode accountSummaries.list zu ändern.

Fehlerbehebung

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

Dieser Fehler kann unter Mac OSX auftreten, wenn 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 Installationspfad 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 <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