Hello Analytics API: krótkie wprowadzenie do Pythona dla kont usługi

W tym samouczku omawiamy czynności wymagane do uzyskania dostępu do konta Google Analytics, wysyłania zapytań do interfejsów API Analytics, obsługiwania odpowiedzi interfejsu API i zwracania wyników. W tym samouczku używane są Core Reporting API w wersji 3.0, Management API w wersji 3.0 oraz OAuth2.0.

Krok 1. Włącz Analytics API

Aby zacząć korzystać 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

  1. Otwórz stronę Konta usługi. Jeśli pojawi się monit, wybierz projekt.
  2. Kliknij Utwórz konto usługi, a potem wpisz jego nazwę i opis. Możesz użyć domyślnego identyfikatora konta usługi lub wybrać inny, unikalny identyfikator. Gdy już to zrobisz, kliknij Utwórz.
  3. Określenie opcji w kolejnej sekcji Uprawnienia konta usługi (opcjonalnie) nie jest wymagane. Kliknij Dalej.
  4. Na ekranie Przyznaj użytkownikom dostęp do tego konta usługi przewiń w dół do sekcji Utwórz klucz. Kliknij Utwórz klucz.
  5. W wyświetlonym panelu bocznym wybierz format klucza. Zalecamy JSON.
  6. Kliknij Utwórz. Nowa para kluczy publicznych/prywatnych zostanie wygenerowana i pobrana na Twoje urządzenie. To jedyny egzemplarz tego klucza. Informacje o tym, jak bezpiecznie go przechowywać, znajdziesz w opisie zarządzania kluczami konta usługi.
  7. W oknie Na komputerze zapisano klucz prywatny kliknij Zamknij, a potem kliknij Gotowe, aby powrócić do tabeli z kontami usług.

Dodaj konto usługi do konta Google Analytics

Nowo utworzone konto usługi będzie miało adres e-mail <projectId>-<uniqueId>@developer.gserviceaccount.com. Użyj go, aby dodać użytkownika do konta Google Analytics, do którego chcesz mieć dostęp za pomocą interfejsu API. W tym samouczku potrzebne są tylko uprawnienia do odczytu i analizy.

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ć w Pythonie systemowym, 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 usługi HelloAnalytics.py.
  2. Przenieś wcześniej pobrany plik client_secrets.json do tego samego katalogu co przykładowy kod.
  3. Zastąp wartości key_file_location odpowiednimi wartościami z Konsoli programisty.
"""A simple example of how to access the Google Analytics API."""

from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials


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

    Args:
        api_name: The name of the api to connect to.
        api_version: The api version to connect to.
        scopes: A list auth scopes to authorize for the application.
        key_file_location: The path to a valid service account JSON key file.

    Returns:
        A service that is connected to the specified API.
    """

    credentials = ServiceAccountCredentials.from_json_keyfile_name(
            key_file_location, scopes=scopes)

    # Build the service object.
    service = build(api_name, api_version, credentials=credentials)

    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 this 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 within 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):', results.get('profileInfo').get('profileName')
        print 'Total Sessions:', 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'
    key_file_location = '<REPLACE_WITH_JSON_FILE>'

    # Authenticate and construct service.
    service = get_service(
            api_name='analytics',
            api_version='v3',
            scopes=[scope],
            key_file_location=key_file_location)

    profile_id = get_first_profile_id(service)
    print_results(get_results(service, profile_id))


if __name__ == '__main__':
    main()

Krok 4. Uruchom próbkę

Po włączeniu interfejsu Analytics API, zainstalowaniu biblioteki klienta interfejsów API Google dla języka Python i skonfigurowaniu przykładowego kodu źródłowego, który jest gotowy do uruchomienia,

Uruchom przykład za pomocą:

python HelloAnalytics.py

Po wykonaniu tych czynności w przykładzie pojawi się 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 przykładowy kod, który znajdziesz w dokumentacji referencyjnej 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, w którym domyślna instalacja modułu „six” (zależność tej biblioteki) jest wczytywana przed tym, który został zainstalowany za pomocą pip. Aby rozwiązać ten problem, dodaj lokalizację instalacji pip do systemowej 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 dowolnym otwartym oknie terminala za pomocą tego polecenia:

    source ~/.bashrc