- PVSM.RU - https://www.pvsm.ru -

Статистика из Android-приложения на своем GAE-сайте

Статистика из Android приложения на своем GAE сайте

Android, Google Analytics, App Engine — продукты одной компании. Казалось бы — что может быть проще, чем показать данные из одного продукта в другом? Например, статистику Google Analytics из Android-приложения на сайте App Engine? Оказалось, что сделать это действительно несложно. Только не все шаги очевидны.

В данной статье я постараюсь по шагам рассказать о том, как достичь желаемого. Часть, касающаяся передачи данных из приложения Android в Google Analytics сознательно пропущена, т.к. не содержит каких-либо сложностей [1].

Шаг 1. Доступ

  1. Для того, чтобы ваше GAE-приложение (сайт) смогло использовать данные из Google Analytics, необходимо в Google Developers Console [2] в разделе APIs для вашего проекта [3] включить Analytics API. Если необходимо, то тут же можно установить свои лимиты (квоты) на использование Analytics API.
  2. В самом Google Analytics, в разделе Управление пользователями необходимо дать права на Чтение и анализ сервисному пользователю — your-app-id@appspot.gserviceaccount.com. Именно под этим пользователем мы будем запрашивать информацию из Google Analytics. К счастью, данные из Google Analytics (в отличие от некоторых других сервисов Google, например, Google Play Services) можно получать под сервисным пользователем. Использование обычного (несервисного) пользователя потребовало бы дополнительных шагов для oauth-авторизации.
  3. Для того, чтобы иметь возможность тестировать ваш код локально, без загрузки на сервера Google, необходимо создать еще одного сервисного пользователя. Подробная инструкция по его созданию и использованию приведена в ответе [4] на StackOverflow. your-app-id@appspot.gserviceaccount.com работает лишь в боевой среде.

Шаг 2. Библиотеки и инструменты

  1. Чтобы упростить доступ к Analytics API, скачиваем Google API Python Client for GAE [5] (если используете Python). Конечно же, нужна именно версия для GAE. Документация по данной библиотеке находится тут [6].
  2. Для тестирования запросов [7] к Google Analytics можно использовать Google Analytics Query Explorer 2 [8].

Шаг 3. Получение данных

Теперь получить данные из Google Analytics совсем просто —

from oauth2client.appengine import AppAssertionCredentials
from apiclient.discovery import build
from google.appengine.api import memcache
import httplib2

credentials = AppAssertionCredentials(scope='https://www.googleapis.com/auth/analytics.readonly')
http = credentials.authorize(httplib2.Http(memcache))
service = build('analytics', 'v3', http=http)

active_users = None
response = service.data().ga().get(
  ids='ga:'+profile_id, # можно получать динамически или прописать в коде
  start_date='2014-03-03',
  end_date='2014-03-09',
  metrics='ga:visitors').execute()
if response.get('rows'):
    active_users = int(response.get('rows')[0][0])

Данный код позволяет узнать количество активных пользователей в приложении за заданный период времени.

В моем случае я запрашиваю необходимые данные из Google Analytics раз в неделю, по вторникам (именно по вторникам, т.к. один дополнительный день отводится на передачу данных от пользователей Android-приложения на сервера Google Analytics). Данные сохраняются в NDB, а на сайте отображаются с помощью Google Charts [9].

Автор: and7ey

Источник [10]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/android/65524

Ссылки в тексте:

[1] каких-либо сложностей: https://developers.google.com/analytics/devguides/collection/android/v4/

[2] Google Developers Console: https://console.developers.google.com/project

[3] вашего проекта: https://console.developers.google.com/project/apps~<your-app-id>/apiui/api

[4] ответе: http://stackoverflow.com/questions/20349189/unable-to-access-bigquery-from-local-app-engine-development-server/22723127#22723127

[5] Google API Python Client for GAE: https://code.google.com/p/google-api-python-client/

[6] тут: https://code.google.com/p/google-api-python-client/wiki/GoogleAppEngine

[7] запросов: https://developers.google.com/analytics/devguides/reporting/core/v3/

[8] Google Analytics Query Explorer 2: http://ga-dev-tools.appspot.com/explorer/

[9] Google Charts: https://developers.google.com/chart/

[10] Источник: http://habrahabr.ru/post/230591/