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

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

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

© Habrahabr.ru