
А/Б тесты в Firebase это простой инструмент тестирования гипотез. Тестируйте интерфейс, логику приложения, тексты пуш-уведомлений и многое другое. В рамках статьи мы будем рассматривать именно классические тесты через Remote Config.
Remote Config – это обычный хеш в формате "ключ-значение", которое загружается на устройство при запуске приложения. Вы можете хранить там любые значения, относящиеся к бизнес-логике приложения или связанные с его UI. Наверняка, каждый разработчик хотя бы раз работал с этими конфигами Firebase.
При создании A/B-теста можно выбрать процент аудитории, для которой будет работать тест, указать варианты и их веса. Хотя при указании целей можно выбрать в качестве цели "Crash-free users", "Retention" и другие показатели, наиболее интересны для нас события "Purchase revenue" и "in_app_purchase".
Purchase revenue и in_app_purchaseТаблица результатов понятна, но и недостаточно информативна: она выдает лишь Total revenue и ARPU по каждому варианту. Это максимум, что вы можете посмотреть в Firebase.
В результатах тестов в консоли Firebase:
Добавив несколько строк кода кода и передавая ключи и значения из Firebase в Apphud через User Properties вы можете расширить возможности интерпретирования тестов.
ProceedsUser Properties это кастомные ключ-значения, которые задаются из SDK. Значения могут быть как статичными, так и инкрементироваться, их можно при необходимости изменять. Надо лишь передавать ключ-значения при запуске или во время работы приложения.
Apphud.setUserProperty(key: .email, value: "[email protected]", setOnce: true) Apphud.setUserProperty(key: .age, value: 31)
Кроме встроенных, можете передавать и собственные значения, в том числе из Firebase.
Ограничения:
Int, Float, Double, Bool, String, NSNumber, NSString, NSNull, nil.При создании A/B теста в Firebase можно добавить к вариантам дополнительные ключ-значения. Добавьте названия ваших вариантов теста, чтобы вы могли позднее посмотреть их в Apphud:
Ключ-значения в вариантахНа скриншоте приведен пример, в котором кроме тестируемого значения paywall_type с вариантами v1 и v2 добавлен дополнительный ключ ab_test_26_feb - название A/B-теста. Оба варианта имеют уникальные названия. Почему это важно? Параметр paywall_type передается в Apphud для всех пользователей, а не только для тех, кто попал в эксперимент. Чтобы отсеять только тех, кто попал в этот эксперимент и вариант, добавьте уникальное название теста и уникальные названия вариантов.
RemoteConfig.remoteConfig().fetchAndActivate { _, _ in
DispatchQueue.main.async {
RemoteConfig.remoteConfig().allKeys(from: .remote).forEach { configKey in
let configValue = RemoteConfig.remoteConfig().configValue(forKey: configKey)
if let string = configValue.stringValue, string.count > 0 {
Apphud.setUserProperty(key: .init(configKey), value: string, setOnce: true)
}
}
}
}В разделе Charts можно добавить фильтр, нажав Where. Выберите название теста и нужное значение:
Фильтр в Charts и смотрите ваши графики:
Графики в RefundsГотово!
На странице Users вы можете добавить фильтр по названию теста и посмотреть на страницы пользователей из того или иного варианта.
С помощью функции "Export Users" вы можете экспортировать пользователей в CSV из любого варианта вашего теста.
Подведем итоги - если вы используете Firebase для A / B-тестирования, попробуйте передавать User Properties в Apphud! В результате вы можете получить дополнительную полезную информацию и обогатить результаты своего эксперимента. Хорошего дня!