А/Б тесты в Firebase это простой инструмент тестирования гипотез. Тестируйте интерфейс, логику приложения, тексты пуш-уведомлений и многое другое. В рамках статьи мы будем рассматривать именно классические тесты через Remote Config.
Remote Config – это обычный хеш в формате "ключ-значение", которое загружается на устройство при запуске приложения. Вы можете хранить там любые значения, относящиеся к бизнес-логике приложения или связанные с его UI. Наверняка, каждый разработчик хотя бы раз работал с этими конфигами Firebase.
При создании A/B-теста можно выбрать процент аудитории, для которой будет работать тест, указать варианты и их веса. Хотя при указании целей можно выбрать в качестве цели "Crash-free users", "Retention" и другие показатели, наиболее интересны для нас события "Purchase revenue" и "in_app_purchase".
Таблица результатов понятна, но и недостаточно информативна: она выдает лишь Total revenue и ARPU по каждому варианту. Это максимум, что вы можете посмотреть в Firebase.
В результатах тестов в консоли Firebase:
Добавив несколько строк кода кода и передавая ключи и значения из Firebase в Apphud через User Properties вы можете расширить возможности интерпретирования тестов.
User Properties это кастомные ключ-значения, которые задаются из SDK. Значения могут быть как статичными, так и инкрементироваться, их можно при необходимости изменять. Надо лишь передавать ключ-значения при запуске или во время работы приложения.
Apphud.setUserProperty(key: .email, value: "user4@example.com", 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. Выберите название теста и нужное значение:
и смотрите ваши графики:
Готово!
На странице Users вы можете добавить фильтр по названию теста и посмотреть на страницы пользователей из того или иного варианта.
С помощью функции "Export Users" вы можете экспортировать пользователей в CSV из любого варианта вашего теста.
Подведем итоги - если вы используете Firebase для A / B-тестирования, попробуйте передавать User Properties в Apphud! В результате вы можете получить дополнительную полезную информацию и обогатить результаты своего эксперимента. Хорошего дня!