Hello Analytics API: краткое руководство по Python для установленных приложений

В этом руководстве описаны шаги, необходимые для доступа к учетной записи Google Analytics, запроса API-интерфейсов Analytics, обработки ответов API и вывода результатов. В этом руководстве используются Core Reporting API v3.0 , Management API v3.0 и OAuth2.0 .

Шаг 1. Включите Analytics API

Чтобы начать использовать Google Analytics API, вам необходимо сначала использовать инструмент настройки , который поможет вам создать проект в консоли Google API, включить API и создать учетные данные.

Создайте идентификатор клиента

На странице «Учетные данные»:

  1. Нажмите «Создать учетные данные» и выберите идентификатор клиента OAuth .
  2. Выберите «Другое» для параметра «ТИП ПРИЛОЖЕНИЯ» .
  3. Назовите учетные данные.
  4. Нажмите Создать .

Выберите только что созданные учетные данные и нажмите «Загрузить JSON» . Сохраните загруженный файл как client_secrets.json ; он понадобится вам позже в уроке.

Шаг 2. Установите клиентскую библиотеку Google

Вы можете использовать менеджер пакетов или загрузить и установить клиентскую библиотеку Python вручную:

пункт

Используйте pip , рекомендуемый инструмент для установки пакетов Python:

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

Инструменты настройки

Используйте инструмент easy_install , входящий в пакет setuptools :

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

Ручная установка

Загрузите последнюю версию клиентской библиотеки для Python , распакуйте код и запустите:

sudo python setup.py install

Возможно, вам придется вызвать команду с правами суперпользователя ( sudo ) для установки в систему Python.

Шаг 3. Настройте образец

Вам нужно будет создать один файл с именем HelloAnalytics.py , который будет содержать данный пример кода.

  1. Скопируйте или загрузите следующий исходный код в HelloAnalytics.py .
  2. Переместите ранее загруженный client_secrets.json в тот же каталог, что и пример кода.
"""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()

Шаг 4. Запустите образец

После того как вы включили Analytics API, установили клиентскую библиотеку Google API для Python и настроили пример исходного кода, образец готов к запуску.

Запустите образец, используя:

python HelloAnalytics.py
  1. Приложение загрузит страницу авторизации в браузере.
  2. Если вы еще не вошли в свою учетную запись Google, вам будет предложено войти в систему. Если вы вошли в несколько учетных записей Google, вам будет предложено выбрать одну учетную запись, которая будет использоваться для авторизации.

Когда вы выполните эти шаги, в образце выводится имя первого представления (профиля) Google Analytics авторизованного пользователя и количество сеансов за последние семь дней.

С помощью авторизованного объекта службы Analytics теперь можно запускать любые примеры кода, приведенные в справочной документации по Management API . Например, вы можете попробовать изменить код, чтобы использовать метод accountSummaries.list .

Поиск неисправностей

AttributeError: объект «Module_six_moves_urllib_parse» не имеет атрибута «urlparse».

Эта ошибка может возникнуть в Mac OSX, где установка по умолчанию модуля «шесть» (зависимость этой библиотеки) загружается до того, который был установлен с помощью pip. Чтобы устранить эту проблему, добавьте место установки pip в системную переменную среды PYTHONPATH :

  1. Определите место установки pip с помощью следующей команды:

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

  2. Добавьте следующую строку в файл ~/.bashrc , заменив <pip_install_path> значением, определенным выше:

    export PYTHONPATH=$PYTHONPATH:<pip_install_path>
    
  3. Перезагрузите файл ~/.bashrc во всех открытых окнах терминала, используя следующую команду:

    source ~/.bashrc