В этом руководстве описывается, как получить доступ к аккаунту Google Analytics, отправлять запросы в API этого сервиса, обрабатывать ответы и извлекать результаты обработки с применением Core Reporting API 3.0, Management API 3.0 и OAuth 2.0.
Шаг 1. Включите Google Analytics API
Перед началом работы с Google Analytics API используйте инструмент настройки, чтобы создать проект в Google API Console, включить API и зарегистрировать учетные данные.
Создайте идентификатор клиента
- Откройте страницу Сервисные аккаунты. При необходимости выберите проект.
- Нажмите Создать сервисный аккаунт.
- Укажите название аккаунта и выберите Создать новый закрытый ключ. Если вы хотите предоставить сервисному аккаунту права в рамках домена Google Workspace, выберите вариант Включить делегирование доступа к данным в домене Google Workspace. Затем нажмите кнопку Сохранить.
Система создаст новую пару ключей (открытый и закрытый), которая будет сохранена на ваш компьютер. Эта копия является единственной, и вы должны самостоятельно обеспечивать ее сохранность.
Добавьте сервисный аккаунт в аккаунт Google Analytics
Новый сервисный аккаунт будет связан с адресом электронной почты <projectId>-<uniqueId>@developer.gserviceaccount.com
. Используйте этот адрес, чтобы добавить пользователя в аккаунт Google Analytics, к которому вам нужен доступ через API. Для этого руководства требуется разрешение на чтение и анализ.
Шаг 2. Установите клиентскую библиотеку Google
Вы можете использовать менеджер пакетов или скачать и установить клиентскую библиотеку для Python вручную:
pip
Рекомендуется использовать pip, специальный инструмент для установки пакетов Python:
sudo pip install --upgrade google-api-python-client
Setuptools
Можно также использовать инструмент easy_install, входящий в пакет setuptools:
sudo easy_install --upgrade google-api-python-client
Установка вручную
Загрузите последнюю клиентскую библиотеку для Python, распакуйте код и выполните его:
sudo python setup.py install
Возможно, вам придется вызвать команду с помощью прав администратора (sudo
), чтобы установить Python в систему.
Шаг 3. Настройте пример
Вам нужно создать файл HelloAnalytics.py
с кодом этого примера.
- Скопируйте или скачайте приведенный ниже исходный код для
HelloAnalytics.py
. - Переместите ранее загруженный файл
client_secrets.json
в тот каталог, где находится код примера. - Замените значения
key_file_location
значениями из Developer Console.
"""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()
Шаг 4. Запустите пример
После того как вы включили Google Analytics API, установили клиентскую библиотеку Google API для Python и настроили код примера, он готов к запуску.
Запустите пример, используя следующий код:
python HelloAnalytics.py
После выполнения всех шагов будет выведено название первого профиля авторизованного пользователя в Google Analytics и количество сеансов за последние семь дней.
Имея авторизованный служебный объект Analytics, вы можете запустить любой из примеров кода, приведенных в справочных материалах по Management API. Например, можно попробовать изменить код, чтобы использовать метод accountSummaries.list.
Устранение неполадок
AttributeError: 'Module_six_moves_urllib_parse' object has no attribute 'urlparse'
Эта ошибка может возникать в Mac OS X, когда установка по умолчанию модуля six (зависимого компонента этой библиотеки) завершается до того, как установлен инструмент pip. Чтобы устранить проблему, добавьте место установки инструмента pip в системную переменную среды PYTHONPATH
:
-
Определите место установки инструмента pip с помощью следующей команды:
pip show six | grep "Location:" | cut -d " " -f2
-
Добавьте приведенную ниже строку в файл
~/.bashrc
, заменив<pip_install_path>
значением, определенным на предыдущем этапе:export PYTHONPATH=$PYTHONPATH:<pip_install_path>
-
Перезагрузите файл
~/.bashrc
в окне терминала с помощью следующей команды:source ~/.bashrc