Эта статья предназначена для разработчиков мобильных приложений. Из нее вы узнаете, как отслеживать взаимодействия пользователей с помощью Google Аналитики и работать с приложением.
Введение
Google Аналитика для мобильных приложений позволяет отслеживать действия пользователей и оптимизировать приложение на основе полученных данных.
Оставив настройки Google Аналитики по умолчанию, вы сможете узнать следующую информацию:
- количество пользователей и сеансов;
- длительность сеанса;
- операционные системы;
- модели устройств;
- географические данные.
В этой статье описываются дополнительные возможности, которые открывает перед вами Google Аналитика.
Перед началом работы
Прежде чем приступить к настройке Google Аналитики для мобильных приложений, выполните следующие действия:
- Установите SDK для целевой платформы:
- Изучите рекомендации по аналитике мобильных приложений.
Обзор
Игра Dragon Catcher
В качестве примера Google Аналитики в этой статье приведена игра Dragon Catcher со следующими характеристиками:
- на уровне представлены игрок, драконы, загон, колодец и деревья;
- задача игрока – поймать всех драконов и поместить их в загон;
- игрок может посещать другие зоны уровня и взаимодействовать с объектами, в том числе с колодцем и волшебным деревом;
- чтобы перейти на следующий уровень, нужно поймать всех драконов;
- игра начинается с первого уровня, который называется Barren Fields.
С помощью Google Аналитики можно получить ответы на следующие вопросы о Dragon Catcher:
- Какие действия выполняют пользователи? (События)
- Сколько пользователи тратят на покупки в приложении? (Электронная торговля)
- Достигаются ли определенные для приложения цели? (Цели)
- Как следить за действиями пользователей с определенными характеристиками? (Специальные параметры и показатели)
- Сколько времени нужно пользователю, чтобы выполнить задание? (Специальные временные метки)
Итак, приступим.
Какие действия выполняют пользователи? (События)
Чтобы отслеживать важные действия пользователей приложения, используйте события Google Аналитики. Каждое событие имеет четыре параметра: category
(категория), action
(действие), label
(ярлык) и value
(ценность).
В игре Dragon Catcher нам нужно отслеживать такие действия пользователя, как поимка дракона или переход в конкретную зону уровня. Сделать это можно с помощью следующего кода.
SDK для Android
// To determine how many dragons are being rescued, send an event when the // player rescues a dragon. tracker.send(new HitBuilders.EventBuilder() .setCategory("Barren Fields") .setAction("Rescue") .setLabel("Dragon") .setValue(1) .build()); // To determine if players are visiting the magic tree, send an event when the // player is in the vicinity of the magic tree. tracker.send(new HitBuilders.EventBuilder() .setCategory("Barren Fields") .setAction("Visited") .setLabel("Magic Tree") .setValue(1) .build()); // To determine if players are visiting the well, send an event when the player // is in the vicinity of the well. tracker.send(new HitBuilders.EventBuilder() .setCategory("Barren Fields") .setAction("Visited") .setLabel("Well") .setValue(1) .build());
SDK для iOS
// To determine how many dragons are being rescued, send an event when the // player rescues a dragon. [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Barren Fields" action:@"Rescue" label:@"Dragon" value:@1] build]]; // To determine if players are visiting the magic tree, send an event when the // player is in the vicinity of the magic tree. [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Barren Fields" action:@"Visited" label:@"Magic Tree" value:@1] build]]; // To determine if players are visiting the well, send an event when the player // is in the vicinity of the well. [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Barren Fields" action:@"Visited" label:@"Well" value:@1] build]];
Плагин Google Analytics для Unity
// To determine how many dragons are being rescued, send an event when the // player rescues a dragon. googleAnalytics.LogEvent("Barren Fields", "Rescue", "Dragon", 1); // To determine if players are visiting the magic tree, send an event when the // player is in the vicinity of the magic tree. googleAnalytics.LogEvent("Barren Fields", "Visited", "Magic Tree", 1); // To determine if players are visiting the well, send an event when the player // is in the vicinity of the well. googleAnalytics.LogEvent("Barren Fields", "Visited", "Well", 1);
Отслеживание достижений игроков
С помощью событий Google Аналитики вы также можете отслеживать достижения игрока, например количество пойманных драконов. В этом примере уведомление будет отправляться в Google Аналитику каждый раз, когда игрок поймает пять драконов.
SDK для Android
if (numDragonsRescued > 5) { if (!user.hasAchievement(RESCUED_ACHIEVEMENT) { tracker.send(new HitBuilders.EventBuilder() .setCategory("Achievement") .setAction("Unlocked") .setLabel("5 Dragons Rescued") .setValue(1) .build()); } else { tracker.send(new HitBuilders.EventBuilder() .setCategory("Achievement") .setAction("Earned") .setLabel("5 Dragons Rescued") .setValue(1) .build()); } }
SDK для iOS
if (numDragonsRescued > 5) { if (![user hasAchievement:RESCUED_ACHIEVEMENT]) { [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Achievement" action:@"Unlocked" label:@"5 Dragons Rescued" value:@1] build]]; } else { [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Achievement" action:@"Earned" label:@"5 Dragons Rescued" value:@1] build]]; } }
Плагин Google Analytics для Unity
if (numDragonsRescued > 5) { if (!user.HasAchievement(RESCUED_ACHIEVEMENT)) { googleAnalytics.LogEvent("Achievement", "Unlocked", "5 Dragons Rescued", 1); } else { googleAnalytics.LogEvent("Achievement", "Earned", "5 Dragons Rescued", 1); } }
Руководства по событиям для разработчиков
- Отслеживание событий: Android SDK
- Отслеживание событий: iOS SDK
- События: плагин Google Analytics для Unity
Отчеты по событиям
Где можно найти данные по событиям:
- отчет Поведение >> События >> Лучшие события в веб-интерфейсе;
- специальные отчеты;
- Core Reporting API.
Сколько пользователи тратят на покупки в приложении? (Расширенная электронная торговля)
Если вы хотите знать всё о покупках товаров или игровой валюты, которые пользователи совершают в вашем приложении, воспользуйтесь функцией отслеживания электронной торговли.
В игре Dragon Catcher данные транзакций передаются в Google Аналитику вместе с информацией о событии:
SDK для Android
Product product = new Product() .setName("Dragon Food") .setPrice(40.00); ProductAction productAction = new ProductAction(ProductAction.ACTION_PURCHASE) .setTransactionId("T12345"); // Add the transaction data to the event. HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder() .setCategory("In-Game Store") .setAction("Purchase") .addProduct(product) .setProductAction(productAction); // Send the transaction data with the event. tracker.send(builder.build());
SDK для iOS
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init]; [product setName:@"Dragon Food"]; [product setPrice:@40.00]; GAIEcommerceProductAction *productAction = [[GAIEcommerceProductAction alloc] init]; [productAction setAction:kGAIPAPurchase]; [productAction setTransactionId:@"T12345"]; GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"In-Game Store" action:@"Purchase" label:nil value:nil]; // Add the transaction data to the event. [builder setProductAction:productAction]; [builder addProduct:product]; // Send the transaction data with the event. [tracker send:[builder build]];
Плагин Google Analytics для Unity
// Note: Using Android SDK v3 and standard Ecommerce tracking. googleAnalytics.LogItem("T12345", "Dragon Food", "Food_SKU", "Items", 40.00, 1); googleAnalytics.LogTransaction("T12345", "In-Game Store", 40.00, 0.00, 0.00);
Все суммы рекомендуется выражать в реальной валюте. Покупки, которые пользователь совершает на виртуальные средства, также можно отслеживать с помощью событий. Пример:
SDK для Android
/** * When the user purchases the virtual currency (Gems) measure the transaction * using enhanced ecommerce. */ Product product = new Product() .setName("2500 Gems") .setPrice(5.99); ProductAction productAction = new ProductAction(ProductAction.ACTION_PURCHASE) .setTransactionId("T67890"); // Add the transaction to the screenview. HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder() .addProduct(product) .setProductAction(productAction); // Send the transaction with the screenview. tracker.setScreenName("In-Game Store"); tracker.send(builder.build()); /** * When the user purchases an item using the virtual currency (Gems) send an * event to measure this in Google Analytics. */ HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder() .setCategory("In-Game Store") .setAction("Purchase") .setLabel("Sword") .setValue(35); tracker.send(builder.build());
SDK для iOS
/** * When the user purchases the virtual currency (Gems) measure the transaction * using enhanced ecommerce. */ GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init]; [product setName:@"2500 Gems"]; [product setPrice:@5.99]; GAIEcommerceProductAction *productAction = [[GAIEcommerceProductAction alloc] init]; [productAction setAction:kGAIPAPurchase]; [productAction setTransactionId:@"T67890"]; GAIDictionaryBuilder *viewBuilder = [GAIDictionaryBuilder createScreenView]; // Add the transaction data to the screenview. [viewBuilder setProductAction:productAction]; [viewBuilder addProduct:product]; // Send the transaction with the screenview. [tracker set:kGAIScreenName value:@"In-Game Store"]; [tracker send:[viewBuilder build]]; /** * When the user purchases an item using the virtual currency (Gems) send an * event to measure this in Google Analytics. */ GAIDictionaryBuilder *eventBuilder = [GAIDictionaryBuilder createEventWithCategory:@"In-Game Store" action:@"Purchase" label:@"Sword" value:@35]; [tracker send:[eventBuilder build]];
Плагин Google Analytics для Unity
// Note: Using Android SDK v3 and standard Ecommerce tracking. /** * When the user purchases the virtual currency (Gems) measure the transaction * using enhanced ecommerce. */ googleAnalytics.LogItem("T12345", "2500 Gems", "GEM2500_SKU", "Items", 5.99, 1); googleAnalytics.LogTransaction("T12345", "In-Game Store", 5.99, 0.00, 0.00); /** * When the user purchases an item using the virtual currency (Gems) send an * event to measure this in Google Analytics. */ googleAnalytics.LogEvent("In-Game Store", "Purchase", "Sword", 35);
Руководства по расширенной электронной торговле для разработчиков
- Отслеживание расширенной электронной торговли: Android SDK
- Отслеживание расширенной электронной торговли: iOS SDK
- Электронная торговля: плагин Google Analytics для Unity
Отчеты по расширенной электронной торговле
Где можно найти данные по расширенной электронной торговле:
Достигаются ли определенные для приложения цели? (Цели)
Если вы хотите определить и отслеживать конкретные показатели, которых должны достигнуть пользователи, обратите внимание на цели Google Аналитики. Например, это может быть переход на нужный уровень игры или покупка определенного товара. Подробнее о целях…
В игре Dragon Catcher с помощью целей можно отслеживать покупки, однако для этого нужно настроить отправку событий. Определить цель можно в веб-интерфейсе с помощью следующих параметров:
- Тип цели (равно): Событие.
- Категория (равно): Магазин в игре.
- Действие (равно): Покупка.
- Использовать ценность события в качестве ценности цели конверсии: Да.
Отчеты по целям
Где можно найти данные по целям:
- отчет Конверсии >> Цели >> Обзор в веб-интерфейсе;
- специальные отчеты;
- Core Reporting API.
Как следить за действиями пользователей с определенными характеристиками? (Специальные параметры и показатели)
Чтобы отслеживать пользователей с определенными атрибутами, характеристиками или метаданными, вам потребуются специальные параметры. Подробнее…
Например, чтобы отслеживать долю пользователей, находящихся на каждом из уровней игры Dragon Catcher, можно задать соответствующий специальный параметр и отправлять полученные данные в Google Аналитику. Выполните следующие действия:
- Создайте специальный параметр с областью действия
User
(пользователь) (значение должно хранитьсядля всех сеансов конкретного пользователя). Подробнее о создании и изменении специальных параметров…
- При переходе пользователя на другой уровень измените значение специального параметра.
Это показано в следующем примере (пользователь находится на уровне 1
и переходит на уровень Barren Fields
):
SDK для Android
// Set the user level custom dimension when sending a hit to Google Analytics // such as a screenview or event. tracker.setScreenName("BarrenFields"); tracker.send(new HitBuilders.ScreenViewBuilder() .setCustomDimension(1, "Barren Fields") .build() );
SDK для iOS
// Set the user level custom dimension when sending a hit to Google Analytics // such as a screenview or event. [tracker set:kGAIScreenName value:@"BarrenFields"]; [tracker send:[[[GAIDictionaryBuilder createScreenView] set:@"Barren Fields" forKey:[GAIFields customDimensionForIndex:1]] build]];
Плагин Google Analytics для Unity
// Set the user level custom dimension when sending a hit to Google Analytics // such as a screenview or event. googleAnalytics.LogScreen(new AppViewHitBuilder() .SetScreenName("BarrenFields").SetCustomDimension(1, "Barren Fields"));
Руководства по специальным параметрам и показателям для разработчиков
- Специальные параметры и показатели – SDK для Android
- Специальные параметры и показатели: iOS SDK
- Специальные параметры и показатели – Плагин Google Analytics для Unity
Отчеты по специальным параметрам и показателям
Специальные параметры можно включать в виде сегментов в следующие объекты:
- большинство стандартных отчетов в веб-интерфейсе;
- специальные отчеты;
- Core Reporting API.
Сделав это, вы сможете анализировать поведение пользователей, находящихся на определенном уровне игры.
Сколько времени нужно пользователю, чтобы выполнить задание? (Специальные временные метки)
С помощью Google Аналитики вы можете отслеживать, сколько времени понадобится пользователю на выполнение определенного задания в игре. Для этого используются специальные метки, которые похожи на события, но основываются на времени и имеют следующие атрибуты: category
(категория), value
(ценность), name (variable)
(название или переменная) и label
(ярлык). Подробнее читайте в статье, посвященной отчету Скорость загрузки сайта.
Так, в игре Dragon Catcher можно отслеживать, сколько времени понадобится пользователю на поимку первого дракона:
SDK для Android
// Build and send a timing hit. tracker.send(new HitBuilders.TimingBuilder() .setCategory("Barren Fields") .setValue(45000) // 45 seconds. .setVariable("First Rescue") .setLabel("Dragon") .build());
SDK для iOS
[tracker send:[[GAIDictionaryBuilder createTimingWithCategory:@"Barren Fields" interval:@45000 // 45 seconds. name:@"First Rescue" label:@"Dragon"] build]];
Плагин Google Analytics для Unity
// Build and send a timing hit. googleAnalytics.LogTiming("Barren Fields",45000,"First Rescue","Dragon");
Руководства по специальным временным меткам для разработчиков
- Пользовательское время – SDK для Android
- Пользовательское время – SDK для iOS
- Пользовательское время – Плагин Google Analytics для Unity
Отчеты по специальным временным меткам
Где можно найти нужные данные:
- отчет Поведение > Скорость работы приложения в веб-интерфейсе;
- специальные отчеты;
- Core Reporting API.
Дополнительная информация
- Analytics Academy – бесплатная обучающая платформа по работе с Google Аналитикой, в том числе и для мобильных приложений.
- API и SDK сбора данных – всё о сборе данных в Google Аналитике.