Статистика з 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.  
  3. У самому Google Analytics, в розділі Керування користувачами необхідно дати права на Читання і аналіз сервісного користувачеві — your-app-id@appspot.gserviceaccount.com . Саме під цим користувачем ми будемо запитувати інформацію з Google Analytics. На щастя, дані з Google Analytics (на відміну від деяких інших сервісів Google, наприклад, Google Play Services) можна отримувати під сервісним користувачем. Використання звичайного (несервісного) користувача вимагало б додаткових кроків для oauth-авторизації.
  4.  
  5. Для того, щоб мати можливість тестувати ваш код локально, без завантаження на сервери Google, необхідно створити ще одного сервісного користувача. Детальна інструкція по його створенню і використанню приведена в відповіді на StackOverflow. your-app-id@appspot.gserviceaccount.com працює лише в бойовій середовищі.
  6.  
 
 

Крок 2. Бібліотеки та інструменти

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

Крок 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 .
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.