Hello Analytics API: krótkie wprowadzenie do Pythona dla zainstalowanych aplikacji

W tym samouczku omawiamy, jak uzyskać dostęp do konta Google Analytics, wysyłać zapytania do interfejsów API Analytics, obsługiwać odpowiedzi interfejsu API i wyświetlać wyniki. W tym samouczku używane są interfejsy Core Reporting API w wersji 3.0, Management API w wersji 3.0 i OAuth2.0.

Krok 1. Włącz Analytics API

Aby rozpocząć korzystanie z interfejsu Google Analytics API, musisz najpierw użyć narzędzia do konfiguracji, które przeprowadzi Cię przez proces tworzenia projektu w Konsoli interfejsów API Google, włączania interfejsu API i tworzenia danych logowania.

Utwórz identyfikator klienta

Na stronie Dane logowania:

  1. Kliknij Utwórz dane logowania i wybierz Identyfikator klienta OAuth.
  2. Dla opcji APPLICATION TYPE wybierz Inne.
  3. Nazwij dane logowania.
  4. Kliknij Utwórz.

Wybierz utworzone dane logowania i kliknij Pobierz JSON. Zapisz pobrany plik jako client_secrets.json. Będzie Ci on potrzebny w dalszej części samouczka.

Krok 2. Zainstaluj bibliotekę klienta Google

Możesz użyć menedżera pakietów lub ręcznie pobrać i zainstalować bibliotekę klienta dla języka Python:

pip

Użyj pip, zalecanego narzędzia do instalowania pakietów Pythona:

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

Narzędzia konfiguracji

Użyj narzędzia easy_install w pakiecie setuptools:

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

Instalacja ręczna

Pobierz najnowszą bibliotekę klienta dla języka python, rozpakuj kod i uruchom:

sudo python setup.py install

Aby zainstalować Pythona w systemie, może być konieczne wywołanie polecenia z uprawnieniami superużytkownika (sudo).

Krok 3. Skonfiguruj przykład

Musisz utworzyć jeden plik o nazwie HelloAnalytics.py, który będzie zawierał podany przykładowy kod.

  1. Skopiuj lub pobierz ten kod źródłowy do HelloAnalytics.py.
  2. Przenieś pobrany wcześniej plik client_secrets.json do tego samego katalogu, w którym znajduje się przykładowy kod.
"""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()

Krok 4. Uruchom próbkę

Po włączeniu interfejsu Analytics API, zainstalowaniu biblioteki klienta interfejsów API Google dla Pythona i skonfigurowaniu przykładowego kodu źródłowego jest on gotowy do uruchomienia.

Uruchom przykład za pomocą polecenia:

python HelloAnalytics.py
  1. Aplikacja wczyta w przeglądarce stronę autoryzacji.
  2. Jeśli nie zalogujesz się na konto Google, pojawi się prośba o zalogowanie. Jeśli jesteś zalogowany(-a) na kilku kontach Google, pojawi się prośba o wybranie jednego z nich do autoryzacji.

Gdy wykonasz te czynności, w przykładzie zostanie wyświetlona nazwa pierwszego widoku Google Analytics (profilu) autoryzowanego użytkownika oraz liczba sesji w ciągu ostatnich 7 dni.

Za pomocą autoryzowanego obiektu usługi Analytics możesz teraz uruchamiać dowolny z przykładów kodu, który znajdziesz w dokumentacji interfejsu Management API. Możesz na przykład zmienić kod i użyć metody accountSummaries.list.

Rozwiązywanie problemów

Błąd atrybutu: obiekt „Module_six_moves_urllib_parse” nie ma atrybutu „urlparse”

Ten błąd może występować w systemie Mac OSX, gdy domyślna instalacja modułu „six” (zależność tej biblioteki) jest wczytywana przed tym, w którym zainstalowano pip. Aby rozwiązać ten problem, dodaj lokalizację instalacji pip do zmiennej środowiskowej PYTHONPATH:

  1. Określ lokalizację instalacji pip za pomocą tego polecenia:

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

  2. Dodaj do pliku ~/.bashrc ten wiersz, zastępując <pip_install_path> wartością określoną powyżej:

    export PYTHONPATH=$PYTHONPATH:<pip_install_path>
    
  3. Załaduj ponownie plik ~/.bashrc w otwartych oknach terminala za pomocą tego polecenia:

    source ~/.bashrc