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
- Otwórz stronę Konta usługi. Jeśli pojawi się monit, wybierz projekt.
- 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.
- Określenie opcji w kolejnej sekcji Uprawnienia konta usługi (opcjonalnie) nie jest wymagane. Kliknij Dalej.
- Na ekranie Przyznaj użytkownikom dostęp do tego konta usługi przewiń w dół do sekcji Utwórz klucz. Kliknij Utwórz klucz.
- W wyświetlonym panelu bocznym wybierz format klucza. Zalecamy JSON.
- 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.
- 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.
- Skopiuj lub
pobierz ten kod źródłowy do
HelloAnalytics.py
. - Przenieś pobrany wcześniej plik
client_secrets.json
do tego samego katalogu, w którym znajduje się przykładowy kod. - 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
:
-
Określ lokalizację instalacji pip za pomocą tego polecenia:
pip show six | grep "Location:" | cut -d " " -f2
-
Dodaj do pliku
~/.bashrc
ten wiersz, zastępując<pip_install_path>
wartością określoną powyżej:export PYTHONPATH=$PYTHONPATH:<pip_install_path>
-
Załaduj ponownie plik
~/.bashrc
w otwartych oknach terminala za pomocą tego polecenia:source ~/.bashrc