1. Введение
Предположим, вам нужно настроить значения некоторых параметров в вашем приложении после публикации приложения в магазине Play. Как правило, вам следует повторно опубликовать новую версию вашего приложения, а пользователи также должны обновить приложение на своих телефонах.
В общем, обновление приложения подойдет, если вы хотите внести долгосрочные изменения в свое приложение. Однако что, если вы собираетесь часто корректировать значения некоторых параметров в своем приложении? Или что, если вы хотите провести несколько экспериментов, чтобы найти оптимальную конфигурацию приложения?
В этих случаях обновления приложений не будут работать должным образом. Потому что требуется некоторое время, прежде чем обновление будет полностью распространено среди пользователей. Кроме того, довольно сложно проводить эксперименты на нескольких версиях приложения.
Кроме того, как вы можете определить, работает ли пользовательский путь приложения так, как задумано? Вы можете положиться на комментарии пользователей на консоли Play. Однако эта информация может оказаться недостаточно точной для принятия однозначного решения.
Если при работе с этой лабораторией кода у вас возникнут какие-либо проблемы (ошибки в коде, грамматические ошибки, нечеткие формулировки и т. д.), сообщите об этом с помощью ссылки «Сообщить об ошибке» в левом нижнем углу лабораторий кода.
Что вы узнаете
- Как создать воронку в Google Analytics для Firebase
- Как использовать удаленную конфигурацию Firebase
- Как запустить A/B-тестирование Firebase
Что вам понадобится
- Android-студия версии 4.1+
- Аккаунт Google
- Тестовое устройство с Android 5.0+ с USB-кабелем для подключения вашего устройства или эмулятор Android под управлением AVD (виртуальное устройство Android) с образом системы, поддерживающим API Play Store/Google.
Как бы вы оценили свой опыт работы с AdMob?
Как бы вы оценили свой уровень опыта работы с Firebase?
2. Настройка среды разработки
Загрузите код
Нажмите следующую кнопку, чтобы загрузить весь код для этой лаборатории кода:
Распакуйте загруженный zip-файл. Это распакует корневую папку с именем admob-firebase-codelabs-android-master
.
…или клонируйте репозиторий GitHub из командной строки.
$ git clone https://github.com/googlecodelabs/admob-firebase-codelabs-android
Репозиторий содержит четыре папки:
- 101-base — начальный код, который вы создадите в этой лаборатории кода.
- 101-complete_and_102-base — завершенный код для этой лаборатории кода и начальный код для 102 лаборатории кода.
- 102-complete — завершенный код для 102 codelab.
Импортируйте начальное приложение
Запустите Android Studio, выберите «Импортировать проект» на экране приветствия. Затем выберите каталог 101-complete_and_102-base из скачанного кода.
Теперь у вас должен быть открыт проект в Android Studio.
Добавьте файл конфигурации Firebase в проект Android.
- На обзорном экране проекта Awesome Drawing Quiz щелкните значок «Настройки».
- На вкладке «Общие» выберите приложение Android, чтобы загрузить файл google-service.json .
- Переместите файл конфигурации в папку каталог приложения в вашем проекте.
3. Откройте проект Firebase из консоли.
Прежде чем перейти к следующему шагу, откройте в консоли Firebase проект, который вы создали на этапе «Настройка проекта Firebase» в AdMob+Firebase 101 Codelab .
4. Создайте воронку событий приложения
Возможно, вы добавили несколько событий приложения для отслеживания активности пользователей внутри приложения. Прочитав отчет о каждом событии приложения, вы можете получить подробную информацию, связанную с событием, например общее количество, среднее количество на пользователя, демографические данные и т. д.
Однако что, если вы хотите увидеть степень завершения серии событий, а не сосредотачиваться на конкретном событии? В Google Analytics для Firebase вы можете использовать воронку для визуализации и оптимизации скорости выполнения серии событий приложения.
Создайте воронку
Чтобы создать воронку:
- Перейдите в консоль Firebase и выберите проект Awesome Drawing Quiz, который вы создали ранее.
- Нажмите « Воронки» .
- Нажмите НОВАЯ ВОРОНКА .
- Введите имя и описание воронки.
- Выберите первые два события, которые вы хотите использовать в качестве шагов воронки.
- Нажмите «ДОБАВИТЬ ЕЩЕ СОБЫТИЕ» для каждого дополнительного шага и выберите событие.
- Нажмите СОЗДАТЬ .
Выполнив описанные выше шаги, создайте следующие воронки:
#1 Название воронки: Уровень успеха. События: level_start
, level_success
#2 Название воронки: Показатель завершения рекламы с вознаграждением. События: ad_reward_prompt
, ad_reward_impression
, ad_reward
#3 Название воронки: процент завершения игры. События: game_start
, game_complete
Посмотреть анализ воронки
После того как вы создали несколько последовательностей, вы можете получить к ним доступ в меню «Последовательности» в консоли Firebase. Нажав на название воронки в списке, вы можете увидеть подробный анализ каждой воронки.
В качестве примера нажмите Уровень успеха . Детали воронки будут показаны следующим образом:
На скриншоте выше вы можете увидеть процент пользователей, которые прошли уровень (вызвали событие level_success
) после запуска уровня (вызвали событие level_start
). Здесь вы можете видеть, что 46,2% пользователей прошли уровень.
Как только вы нажмете «Количество событий» , отобразятся метрики, основанные на количестве событий, следующим образом:
Судя по показателям на скриншоте выше, за этот период было совершено 116 попыток (вызовло событие level_start) и 57 очисток (вызвало событие level_success).
Поскольку процент завершения, основанный на событиях (49,1%), немного выше, чем показатель, основанный на пользователях (46,2%), можно сказать, что есть несколько людей, которые работают лучше, чем другие.
5. Интегрируйте Remote Config в приложение.
Поскольку вы можете получить некоторую информацию о своем приложении на основе событий приложения и воронки продаж, возможно, вы захотите оптимизировать свое приложение. Обычно это включает в себя тонкую настройку значения параметра в приложении. Чтобы изменить значение этих параметров, вам необходимо обновить приложение, чтобы изменения можно было применить к пользователям.
Используя Remote Config в Firebase, вы можете настроить эти значения без обновления приложения, а это означает, что вы можете изменить поведение приложения, не беспокоя своих пользователей, заставляя их загружать обновление.
В этой лаборатории вы узнаете, как настроить сумму вознаграждения (количество букв, которые будут раскрыты после просмотра видеорекламы с вознаграждением) без обновления приложения с помощью Remote Config.
Добавьте Remote Config в зависимость приложения.
Начнем с добавления Firebase Remote Config в зависимость приложения.
приложение/build.gradle
apply plugin: 'com.android.application'
android {
...
}
dependencies {
...
// TODO: Add Firebase Remote Config dependency (102)
implementation 'com.google.firebase:firebase-config-ktx'
...
}
...
Синхронизируйте свой проект с файлами gradle
Чтобы убедиться, что все зависимости доступны для вашего приложения, синхронизируйте проект с файлами Gradle. Выберите «Файл» > «Синхронизировать проект с файлами Gradle», чтобы синхронизировать проект с файлами Gradle.
Установите значение по умолчанию для параметра Remote Config.
Для получения значений из Remote Config требуется сетевое подключение. В случае, когда сеть недоступна, вам следует определить значение по умолчанию для каждого параметра Remote Config.
Создайте файл remote_config_defaults.xml
в папке res/xml
. Затем установите значение суммы вознаграждения по умолчанию ( reward_amount)
следующим образом.
res/xml/remote_config_defaults.xml
<?xml version="1.0" encoding="utf-8"?>
<defaultsMap>
<entry>
<key>reward_amount</key>
<value>1</value>
</entry>
</defaultsMap>
Обратите внимание, что reward_amount
— это имя параметра в удаленной конфигурации.
Получите сумму вознаграждения из Remote Config.
Измените AwesomeDrawingQuiz.kt
, чтобы класс GameSettings
содержал ссылку на экземпляр RemoteConfig
.
Обратите внимание, что экземпляр RemoteConfig
настроен на получение последних значений с сервера в режиме отладки, чтобы облегчить процесс разработки. (Установите минимальный интервал выборки равным нулю, вызвав fetch(0L)
)
AwesomeDrawingQuiz.kt
class AwesomeDrawingQuiz : Application() {
...
// COMPLETE: Provide FirebaseRemoteConfig instance (102)
private fun provideGameSettings() = GameSettings(provideRemoteConfig())
// COMPLETE: Add a function that provides a FirebaseRemoteConfig instance (102)
private fun provideRemoteConfig(): FirebaseRemoteConfig {
val rc = Firebase.remoteConfig.apply {
setDefaultsAsync(R.xml.remote_config_defaults)
}
val fetchTask = if (BuildConfig.DEBUG) rc.fetch(0L) else rc.fetch()
fetchTask.addOnCompleteListener {
if (it.isSuccessful) {
Log.d("AwesomeDrawingQuiz", "Remote config value fetched")
rc.activate()
}
}
return rc
}
}
Затем измените класс GameSettings
, чтобы получить сумму вознаграждения из Remote Config.
GameSettings.kt
// TODO: Add FirebaseRemoteConfig as a class member
class GameSettings(private val rc: FirebaseRemoteConfig) {
...
// TODO: Apply reward amount from the Remote Config (102)
val rewardAmount: Int
get() = rc.getLong(KEY_REWARD_AMOUNT).toInt()
companion object {
...
// TODO: Add a key for 'reward_amount' Remote Config parameter (102)
private const val KEY_REWARD_AMOUNT = "reward_amount"
}
}
Создайте параметр Remote Config из консоли.
Далее вы создадите новый параметр Remote Config для суммы вознаграждения, чтобы вы могли оперативно регулировать его значение.
Чтобы создать новый параметр, перейдите в консоль Firebase , затем выберите проект Awesome Drawing Quiz , который вы создали ранее. Нажмите кнопку «Удаленная настройка» -> «ДОБАВИТЬ ПЕРВЫЙ ПАРАМЕТР» .
Назовите параметр reward_amount
и установите для него значение по умолчанию 1
. Затем нажмите кнопку «Добавить параметр» .
Нажмите кнопку «Опубликовать изменения» , чтобы сделать изменения доступными для пользователей.
6. Измените поведение приложения с помощью Remote Config.
Сумму вознаграждения в викторине «Потрясающее рисование» теперь можно настроить на консоли Firebase без необходимости обновлять код приложения.
В этом разделе вы измените сумму вознаграждения с 1 на 2, чтобы приложение показывало еще двух символов в качестве подсказки после просмотра рекламы с вознаграждением.
Обновите значение по умолчанию параметра вознаграждения_количество.
Перейдите в консоль Firebase , затем выберите проект Awesome Drawing Quiz, который вы создали ранее. Нажмите Remote Config и выберите reward_amount
из списка. Затем измените значение по умолчанию на 2 и нажмите кнопку «Обновить» .
Нажмите кнопку «Опубликовать изменения» , чтобы сделать изменения доступными для пользователей.
Проверьте изменение поведения приложения
Чтобы подтвердить изменение поведения приложения, запустите проект еще раз. Закончив просмотр рекламы с вознаграждением, вы заметите, что приложение теперь показывает две буквы в качестве награды, как мы настроили в консоли Remote Config.
Прежде чем смотреть рекламу с вознаграждением | Выявлены две дополнительные буквы в качестве награды. |
7. Создайте эксперимент, чтобы оптимизировать сумму вознаграждения.
Теперь вы можете изменить сумму вознаграждения, не публикуя обновление приложения. Однако как определить, что внесенная вами сумма полезна для приложения?
С помощью A/B-тестирования Firebase вы можете проводить эксперименты, чтобы оптимизировать общее взаимодействие с пользователем приложения без необходимости обновлять приложение или создавать отдельный инструмент для запуска и отслеживания эффективности каждого эксперимента.
Спланируйте эксперимент
Прежде чем создавать новый эксперимент, вам следует установить четкую цель или цель эксперимента. Прежде чем создавать новый эксперимент, обязательно ознакомьтесь со следующим контрольным списком.
- Что: Что вы хотите оптимизировать? (например, сложность игры, время/видимость рекламы и т. д.)
- Почему? Какова ваша бизнес-цель проведения эксперимента? (например, чтобы максимизировать доход от рекламы, увеличить удержание и т. д.)
- Кто: Кто будет участвовать в эксперименте? (например, «Все пользователи», «Определенная аудитория пользователей» и т. д.)
В этой лаборатории кода вы собираетесь создать эксперимент по оптимизации значения суммы вознаграждения, чтобы максимизировать ежедневное участие пользователей в викторине Awesome Drawing .
Создать эксперимент
Откройте проект Awesome Drawing Quiz из консоли Firebase . Выберите меню A/B-тестирование , затем нажмите кнопку «Создать эксперимент» .
Выберите Remote Config , чтобы создать эксперимент Remote Config.
Назовите эксперимент «Сумма вознаграждения», как показано на следующем снимке экрана.
Настройте параметры таргетинга. В этой лаборатории кода вы собираетесь охватить 100 % пользователей Awesome Drawing Quiz .
Поскольку основная цель эксперимента — найти оптимальное значение, которое максимизирует ежедневное взаимодействие с пользователем, выберите « Ежедневное взаимодействие с пользователем» в качестве основного показателя для отслеживания.
Наконец, настройте контрольную группу и группу вариантов, чтобы вы могли выяснить, какая группа работает лучше. Выберите reward_amount
из контрольной группы и оставьте его значение без изменений. Для группы вариантов назовите ее «Меньше вознаграждения», затем измените значение reward_amount
на 1.
При такой конфигурации люди из группы «Меньше вознаграждения» получат в качестве награды одну букву , а люди из группы «Контроль» — две буквы в качестве награды. В результате вы увидите, как размер вознаграждения влияет на пользователей.
Нажав кнопку «Обзор» , вы увидите обзор эксперимента следующим образом.
Запустите эксперимент
Нажмите кнопку «Начать эксперимент» , чтобы запустить эксперимент. Обратите внимание, что вы не сможете изменить конфигурацию эксперимента после его запуска.
8. Управляйте экспериментом
Посмотреть ход эксперимента
Вы можете проверить ход эксперимента в меню A/B-тестирования в консоли Firebase, которое будет выглядеть, как показано на следующем снимке экрана. Обратите внимание, что в карточке вы также можете увидеть количество пользователей, принявших участие в эксперименте за последние 30 минут.
Щелкнув эксперимент из списка, вы увидите подробности эксперимента. Пока эксперимент не сможет объявить лидера (т. е. наиболее эффективный вариант), вы увидите сообщение «Еще слишком рано объявлять лидера» .
После того, как эксперимент продлится некоторое время, в разделе «Обзор улучшений» начнут отображаться данные, собранные в ходе эксперимента. Вы можете сравнить производительность каждого варианта, чтобы увидеть, какой из них работает лучше. На следующем снимке экрана показан пример раздела «Обзор улучшений».
В таблице под разделом «Обзор улучшений» можно просмотреть подробную информацию о целевых показателях эксперимента, а также о дополнительных показателях, отслеживаемых в эксперименте. На следующем снимке экрана показан пример раздела сведений о метриках.
Распространите лидера на всех пользователей
После того, как эксперимент продлится долго и у вас появится лидер или выигрышный вариант, вы можете распространить эксперимент на 100% пользователей. Как только A/B-тестирование обнаружит явного лидера, оно побудит вас распространить ведущий вариант среди всех пользователей.
Однако даже если в ходе эксперимента не был выявлен явный лидер, вы все равно можете развернуть вариант для всех пользователей.
На экране сведений об эксперименте щелкните контекстное меню ( ), а затем нажмите «Развернуть вариант» .
Выберите вариант, который будет распространен на всех пользователей, затем нажмите кнопку «Просмотреть в удаленной конфигурации» , чтобы просмотреть изменения, прежде чем вносить изменения в удаленную конфигурацию.
Убедившись, что в черновике нет проблем, нажмите кнопку «Опубликовать изменения» , чтобы изменения стали доступны всем пользователям.
9. Все готово!
Вы завершили лабораторную работу по написанию кода для Android AdMob+Firebase 102. Вы можете найти готовый код для этой Codelab на сайте 102-полная папка.