Этот документ предназначен для разработчиков мобильных устройств и описывает, как использовать Google Analytics для измерения взаимодействия с пользователем и ответа на вопросы об использовании приложения.
Введение
Google Analytics для мобильных приложений предоставляет платформу для измерения взаимодействия с пользователем, что позволяет вам лучше понимать и оптимизировать взаимодействие пользователей с вашим приложением.
Реализация Google Analytics по умолчанию автоматически предоставляет следующую информацию о вашем приложении:
- Количество пользователей и сессий
- Продолжительность сеанса
- Операционные системы
- Модели устройств
- География
В этом руководстве объясняется, как реализовать дополнительные функции Google Analytics, чтобы лучше понимать своих пользователей и их поведение.
Прежде чем вы начнете
Прежде чем приступить к работе с этим руководством по настройке Google Analytics для мобильных приложений:
- Установите SDK для целевой платформы:
- Ознакомьтесь с рекомендациями по настройке аналитики мобильных приложений.
Обзор
Ловец драконов
В этом руководстве используется пример приложения, который поможет вам реализовать дополнительные функции Google Analytics. Приложение называется Dragon Catcher и имеет следующие особенности игрового процесса:
- Уровень состоит из игрока, драконов, огороженной территории, колодца и деревьев.
- Цель игрока — поймать драконов, переместив их на огороженную территорию.
- Игрок может посещать различные области уровня и объекты, такие как колодец или волшебное дерево.
- Игрок переходит на следующий уровень, как только поймает всех драконов.
- Игрок начинает игру на первом уровне, который называется «Бесплодные поля».
Используя Google Analytics, можно получить ответы на некоторые вопросы о поведении пользователей в Dragon Catcher :
- Какие действия выполняют мои пользователи? (События)
- Сколько денег пользователи тратят в моем приложении? (Электронная торговля)
- Выполняют ли пользователи цели моего приложения? (Цели)
- Как ведут себя пользователи с определенной чертой? (Специальные параметры/показатели)
- Сколько времени требуется пользователю на выполнение задачи? (Пользовательское время)
Остальная часть этого документа иллюстрирует, как можно ответить на эти вопросы, реализовав функции Google Analytics для игры Dragon Catcher .
Какие действия выполняют мои пользователи? (События)
Если в вашем приложении есть важные действия, которые вы хотите отслеживать, события можно использовать для описания этого действия в Google Analytics. Событие состоит из четырех параметров: category
, action
, label
и value
.
Например, в Dragon Catcher спасение пользователем дракона или посещение определенной области уровня — это важные действия, которые мы хотим измерить с помощью событий. Фрагмент кода ниже показывает, как измерить это в Google Analytics.
Android SDK
// 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());
iOS SDK
// 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]];
Плагин GA для 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 Analytics. Например, чтобы измерить достижение по спасению 5 драконов, записывается количество драконов, которых спас игрок, а затем, как только игрок достигает порогового значения, событие отправляется в Google Analytics:
Android SDK
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()); } }
iOS SDK
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]]; } }
Плагин GA для 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); } }
Руководства разработчиков по мероприятиям
Отчетность по мероприятиям
Данные о событии доступны в:
- Веб-интерфейс в разделе «Поведение» >> «События» >> «Лучшие события».
- Пользовательские отчеты
- Основной API отчетов
Сколько денег пользователи тратят в моем приложении? (Расширенная электронная торговля)
Если вы хотите измерить покупки пользователей в приложении, то отслеживание электронной торговли можно использовать для отслеживания покупок и понимания эффективности соответствующих продуктов и поведения пользователей. Отслеживание электронной торговли можно использовать для измерения количества покупок определенного товара или виртуальной валюты.
Например, в Dragon Catcher для измерения покупки некоторых товаров данные о транзакциях отправляются в Google Analytics с событием:
Android SDK
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());
iOS SDK
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]];
Плагин GA для 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);
Если пользователь покупает виртуальную валюту, рекомендуется измерять обмен реальных денег при отправке данных о транзакциях в Google Analytics. Когда пользователь тратит виртуальную валюту на покупку предметов, измеряйте это с помощью событий. Например:
Android SDK
/** * 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());
iOS SDK
/** * 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]];
Плагин GA для 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 Analytics. Например, целью может быть достижение пользователями определенного игрового уровня или покупка предмета. Дополнительную информацию о том, как работают цели, см. в разделе «О целях» (Справочный центр) .
В игре Dragon Catcher можно настроить цель для отслеживания совершения покупок в приложении, если для каждой покупки в Google Analytics отправляется событие . Цель можно определить в админке веб-интерфейса без дополнительного кода, используя следующие параметры:
- Тип цели (равно): Событие
- Категория (равно): Внутриигровой магазин
- Действие (равно): покупка
- Использовать значение события в качестве ценности цели для конверсии: Да.
Отчет о целях
Данные о целях доступны в:
- Веб-интерфейс в разделе «Конверсии >> Цели >> Обзор».
- Пользовательские отчеты
- Основной API отчетов
Как ведут себя пользователи с определенной чертой? (Специальные параметры и показатели)
Если вы хотите отслеживать пользователей с определенными атрибутами/признаками/метаданными, тогда можно использовать специальные параметры для отправки данных этого типа в Google Analytics и для анализа. Дополнительную информацию о том, как работают специальные параметры, см. в справочнике по функциям «Специальные параметры и показатели» .
Например, в Dragon Catcher , чтобы узнать процент пользователей, находящихся на первом уровне, втором уровне и т. д., можно установить специальный параметр с текущим уровнем пользователя и отправить его в Google Analytics. Шаги:
- Создайте специальный параметр с областью
User
. ОбластьUser
используется, поскольку это значение должно сохраняться во всех сеансах этого пользователя. См. раздел «Настройка или редактирование специальных параметров» (Справочный центр) . - Обновите значение специального параметра при изменении уровня пользователя.
В следующем фрагменте показано, как обновить состояние пользователя в Google Analytics, где индекс специального измерения уровня пользователя равен 1
, а уровень пользователя изменился на Barren Fields
:
Android SDK
// 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() );
iOS SDK
// 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]];
Плагин GA для 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"));
Руководства для разработчиков по специальным параметрам и показателям
- Специальные параметры и показатели – Android SDK
- Специальные параметры и показатели – iOS SDK
- Пользовательские параметры и метрики – плагин GA для Unity
Отчеты по специальным параметрам и показателям
Специальные параметры можно включать и применять в качестве сегмента для:
- Большинство стандартных отчетов в веб-интерфейсе
- Пользовательские отчеты
- Основной API отчетов
Применение специального параметра в качестве сегмента позволит вам анализировать пользователей, которые в данный момент находятся на определенном уровне в игре.
Сколько времени требуется пользователю на выполнение задачи? (Пользовательское время)
Если вы хотите измерить, сколько времени занимает выполнение чего-либо в приложении, то время пользователя можно использовать для измерения времени в Google Analytics. Пользовательское время аналогично событиям, но основано на времени и может включать category
, value
, name (variable)
и label
. Чтобы узнать, как работает пользовательское время, см. «О скорости сайта» .
Например, в Dragon Catcher , чтобы измерить, сколько времени понадобится пользователю, чтобы спасти своего первого дракона, вы можете отправить что-то вроде:
Android SDK
// Build and send a timing hit. tracker.send(new HitBuilders.TimingBuilder() .setCategory("Barren Fields") .setValue(45000) // 45 seconds. .setVariable("First Rescue") .setLabel("Dragon") .build());
iOS SDK
[tracker send:[[GAIDictionaryBuilder createTimingWithCategory:@"Barren Fields" interval:@45000 // 45 seconds. name:@"First Rescue" label:@"Dragon"] build]];
Плагин GA для Unity
// Build and send a timing hit. googleAnalytics.LogTiming("Barren Fields",45000,"First Rescue","Dragon");
Руководства разработчиков по пользовательским таймингам
- Пользовательское время – Android SDK
- Пользовательское время — iOS SDK
- Пользовательское время — плагин GA для Unity
Отчеты по индивидуальному времени
Данные пользовательского времени доступны в:
- Веб-интерфейс в разделе «Поведение» > «Скорость приложения».
- Пользовательские отчеты
- Основной API отчетов
Связанные ресурсы
- Академия аналитики . Улучшите свои навыки аналитики с помощью бесплатных онлайн-курсов, включающих основы аналитики мобильных приложений.
- API и SDK для сбора данных : узнайте обо всех способах отправки данных в Google Analytics.