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

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

  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 uzyskać 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ć 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.
  3. Zastąp wartości parametru key_file_location odpowiednimi wartościami z Konsoli Play.
"""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 Pythona i skonfigurowaniu przykładowego kodu źródłowego jest on gotowy do uruchomienia.

Uruchom przykład za pomocą polecenia:

python HelloAnalytics.py

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