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

в 13:38, , рубрики: android, gae, google analytics, google app engine, Разработка под android, статистика

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

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

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

Шаг 1. Доступ

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

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

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

Шаг 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.

Автор: and7ey

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js