Вступление
В последнее время популярны приложения для соц. сетей и браузерные игры. К сожалению, соц. сети предоставляют довольно скудную статистику использовании приложений. Поэтому передо мной стоял выбор: собирать статистику на своем сервере, либо воспользоваться Google Analytics или чем-то подобным. В итоге я остановился на Google Analytics. В этой статье я расскажу:
- Как подключить приложение к Google Analytics?
- Какие возможности предоставляет Google Analytics?
- Как отслеживать события?
- Что и как отслеживать?
Я затрону только основные моменты. Если будет интересно продолжение, то я напишу новую статью, которая уже будет ориентированна на тех, кто знаком с Google Analytics.
Подключения приложения к Google Analytics
Для использования Google Analytics для приложения требуется создать аккаунт на вкладке «Администратор», а затем добавить новый ресурс. После этого на вкладке «Код отслеживания» будет сгененирирован код для вашего приложения. Пример кода:
<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'ВАШ ID']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>
Замечу, что при добавлении ресурса надо указывать не ссылку на приложение, а ссылку где приложение размещено у Вас на сервере. Пример:
http://yoursite.com/forder_for_apps/my_love_app/
Код надо вставить на всех страницах, которые Вы будете отслеживать.
Возможности Google Analytics
Здесь, я кратко пробегусь по основным возможностям, которые скорее всего Вам пригодятся.
Режим реального времени
Здесь можно видеть сколько пользователей сейчас в онлайне. На каких страницах, с каких стран.
Аудитория
Здесь можно увидеть кто посещал приложение за промежуток времени.Можно просмотреть информацию о странах, браузерах, провайдерах о поведении и многое другое.
Все это дает достаточную информацию об аудитории и уже не надо задавать себе вопросы, на какой браузер ориентироваться в первую очередь, а каким можно пренебречь.
Содержание
Здесь можно найти информацию о содержимом сайте, скорости загрузки и о событиях, о которых подробнее я расскажу в следующем пункте.Конверсии цели — это довольно объемная тема, про которую стоит рассказывать подробно. Но в рамках этой статьи я не могу.
Источники трафика — нам вряд ли пригодятся, если приложение IFrame. Но есть отдельная браузерная игра, то можно найти что-то полезное.
События
События использовать очень просто, достаточно вставить JavaScript код:
_gaq.push(['_trackEvent', category, action, opt_label, opt_value, opt_noninteraction]);
category — категория события. Например, шаг при регистрации.
action — действие события. Например, достижение 2-го уровня.
opt_label — здесь, я обычно помещаю идентификатор пользователя (использовать не обязательно).
opt_valueи opt_noninteraction пока не понадобятся.
Пример использования:
_gaq.push(['_trackEvent', 'register', 'start_reg', 11111]);
Примеры использования
Примеры будут показаны для ВКонтакте, но я думаю, можно их будет без проблем адаптировать под другие соц. сети. Также в примерах используется библиотека JQuery.
Пользователь зашел на страницу с формой регистрации:
_$(document).ready(function () { try { d = document.location.search.substr(1); var p = d.split("&"); var V = {}, curr; for (i = 0; i < p.length; i++) { curr = p[i].split('='); V[curr[0]] = curr[1]; } id = V['viewer_id']; //получение идентификатора пользователя key = V['auth_key']; _gaq.push(['_trackEvent', 'register', 'begin', id]); //событие .... } catch (e) { alert(e); } });
Пользователь выбрал пол, имя, навыки персонажа и отправил запрос на сервер:
jQuery.post("../join/", { info_for_register }, function (data) { try { var json = JSON.parse(data); if (json.r == 1) { //при успешной регистрации вызываем событие _gaq.push(['_trackEvent', 'register', 'success', id]); ...
Повышение уровня. Аналогично. Будем отслеживать, кто дошел до 2, 5 и 10-го.
if (mylevel == 1) { _gaq.push(['_trackEvent', 'register', 'level2', id]); } else if (mylevel == 4) { _gaq.push(['_trackEvent', 'register', 'level5', id]); } else if (mylevel == 9) { _gaq.push(['_trackEvent', 'register', 'level10', id]); }
Похожий запрос, но проверяем какой уровень у пользователя.
Теперь кое-что поинтереснее.
Многие приложения функцию: похвастаться каким-то достижением или покупкой на стене.
Раньше я использовал хеш теги и следил, что в поиске:
vk.com/feed?q=%23swgames§ion=search
Способ был удобный, но он не совсем хорошо работал. Потом еще прикрыли. Теперь сообщения, которые разместил пользователь через приложения отсутствуют в поиске. Поиск стал чище, но я потерял удобный инструмент. Пришлось мне отслеживать с помощью Google Analitics.
VK.api("wall.post", { message: "Я купил крутое оружие" }, function (data) { if (data.response !== undefined) { // undefined, если пользователь не подтвердил публикацию. _gaq.push(['_trackEvent', 'wall', 'levelup', id]); } });
Все очень просто.
Теперь я расскажу и покажу, как это выглядит внутри в панели Google Analitics.
Пользовательские отчеты. Содержание. События. Обзор.

Здесь мы видим сколько зашло на страницу с регистрацией. Сколько ее прошло. Сколько достигло 2-го, 5-го и 10-го уровня.
Это хорошая информация для размышления.
Если интересно, то я могу в следующей статье рассказать больше про Google Analitics для приложений, а также написать статью, как была переделана регистрация для игры и как это повлияло на количество успешных регистраций.
Кстати, это первая моя статья на Хабре.
Рекомендую к прочтению:
Добыча и переработка игрового трафика
Руководство по Google Analitics (рус)
Отслеживание событий. Официальная документация (англ)
Отслеживание событий Flash (англ)