Создание экспериментов с удаленной конфигурацией Firebase с A / B-тестированием

Когда вы обновляете свое приложение и используете Firebase Remote Config, чтобы отправить его в приложение с активной пользовательской базой, вы хотите убедиться, что все делаете правильно. Вы можете быть не уверены в следующем:

  • Лучший способ реализовать функцию для оптимизации взаимодействия с пользователем. Слишком часто разработчики приложений не узнают, что их пользователям не нравится новая функция или обновленный пользовательский интерфейс, пока рейтинг их приложения в магазине приложений не снизится. A/B-тестирование может помочь определить, нравятся ли вашим пользователям новые варианты функций или они предпочитают существующее приложение. Кроме того, сохранение большинства ваших пользователей в контрольной группе гарантирует, что большая часть вашей пользовательской базы сможет продолжать использовать ваше приложение без каких-либо изменений в его поведении или внешнем виде до завершения эксперимента.
  • Лучший способ оптимизировать взаимодействие с пользователем для достижения бизнес-цели. Иногда вы вносите изменения в продукт, чтобы максимизировать такие показатели, как доход или удержание. С помощью A/B-тестирования вы устанавливаете свою бизнес-цель, а Firebase выполняет статистический анализ, чтобы определить, превосходит ли вариант контрольную группу по выбранной вами цели.

Чтобы провести A/B-тестирование вариантов функции с контрольной группой, выполните следующие действия:

  1. Создайте свой эксперимент.
  2. Подтвердите свой эксперимент на тестовом устройстве.
  3. Управляйте своим экспериментом.

Создать эксперимент

Удаленный эксперимент Config позволяет оценить несколько вариантов на одном или нескольких удаленных параметров Config .

  1. Войдите Firebase, обновление настроек совместного использования данных и убедитесь , что совместное использование данных включено. Без обмена данными у вашего эксперимента не будет доступа к данным аналитики.
  2. В разделе Engage в консоли Firebase панели навигации выберите A / B тестирование.
  3. Нажмите кнопку Создать эксперимент, а затем выберите Remote Config при запросе сервиса вы хотите поэкспериментировать с.
  4. Введите имя и описание для эксперимента, и нажмите кнопку Далее.
  5. Заполните поля таргетинга, первый выбор приложения , которое использует свой эксперимент. Вы также можете нацелить часть своих пользователей на участие в эксперименте, выбрав следующие параметры:

    • Версия: Один или несколько версий вашего приложения
    • Аудитория пользователей: Аналитика аудитория , используемая для целевых пользователей , которые могут быть включены в эксперименте
    • Свойство пользователя: Один или несколько Analytics свойств пользователя для выбора пользователей , которые могут быть включены в эксперименте
    • Прогноз: Группы пользователей предсказанных машинного обучения , чтобы участвовать в конкретном поведении
    • Страна / Регион: Один или несколько стран или регионов для выбора пользователей , которые могут быть включены в эксперимент
    • Язык устройства: один или несколько языков и локали , используемые для выбора пользователей , которые могут быть включены в эксперименте
  6. Установите Процент целевых пользователей: Введите процент базы пользователей вашего приложения , соответствующий критериям , установленный в соответствии с целевыми пользователями , которые вы хотите , чтобы равномерно распределить между контрольной группой и один или более вариантами в эксперименте. Это может быть любой процент от 0,01% до 100%. Пользователи случайным образом назначаются для каждого эксперимента, включая повторяющиеся эксперименты.

  7. При необходимости настройте событие активации, чтобы гарантировать, что в вашем эксперименте учитываются только пользователи, которые первыми запустили какое-либо событие Google Analytics. Для обеспечения непросроченного эксперимента, убедитесь , что событие , которое вы выбираете происходит после того, как ваше приложение активирует неправдоподобные значения конфигурации. Такие события , как first_open или session_start может произойти до activateFetched() , что приводит к неожиданным результатам.

  8. Для целей Эксперимента, выберите основной показатель для отслеживания, а также добавить любые необходимые дополнительные показатели из выпадающего списка. К ним относятся встроенные цели (вовлечение, покупки, доход, удержание и т. д.), события-конверсии Analytics и другие события Analytics. Когда закончите, нажмите кнопку Далее.

  9. В разделе Варианты вы будете выбирать контрольную группу и , по меньшей мере , один вариант для эксперимента. Используйте выбрать или создать новый список , чтобы добавить один или несколько параметров , чтобы экспериментировать с. Вы можете создать параметр, который ранее не использовался в консоли Firebase, но он должен существовать в вашем приложении, чтобы иметь какой-либо эффект. Вы можете повторить этот шаг, чтобы добавить в эксперимент несколько параметров.

  10. (необязательно) Чтобы добавить более чем один вариант для эксперимента, нажмите кнопку Добавить еще один вариант.

  11. Измените один или несколько параметров для конкретных вариантов. Любые неизмененные параметры одинаковы для пользователей, не включенных в эксперимент.

  12. Нажмите Обзор , чтобы сохранить свой эксперимент.

Вам разрешено проводить до 300 экспериментов в одном проекте, в том числе до 24 запущенных экспериментов, а остальные — в виде черновиков или завершенных.

Подтвердите свой эксперимент на тестовом устройстве

Для каждой установки Firebase вы можете получить связанный с ней токен авторизации установки. Вы можете использовать этот токен для тестирования конкретных вариантов эксперимента на тестовом устройстве с установленным вашим приложением. Чтобы проверить эксперимент на тестовом устройстве, выполните следующие действия:

  1. Получите токен авторизации установки следующим образом:

    Быстрый

    Installations.installations().authTokenForcingRefresh(true, completion: { (result, error) in
      if let error = error {
        print("Error fetching token: \(error)")
        return
      }
      guard let result = result else { return }
      print("Installation auth token: \(result.authToken)")
    })
    

    Цель-C

    [[FIRInstallations installations] authTokenForcingRefresh:true
                                                   completion:^(FIRInstallationsAuthTokenResult *result, NSError *error) {
      if (error != nil) {
        NSLog(@"Error fetching Installation token %@", error);
        return;
      }
      NSLog(@"Installation auth token: %@", [result authToken]);
    }];
    

    Ява

    FirebaseInstallations.getInstance().getToken(/* forceRefresh */true)
            .addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() {
        @Override
        public void onComplete(@NonNull Task<InstallationTokenResult> task) {
            if (task.isSuccessful() && task.getResult() != null) {
                Log.d("Installations", "Installation auth token: " + task.getResult().getToken());
            } else {
                Log.e("Installations", "Unable to get Installation auth token");
            }
        }
    });

    Котлин+КТХ

    FirebaseInstallations.getInstance().getToken(/* forceRefresh */ true)
        .addOnCompleteListener { task ->
            if (task.isSuccessful) {
                Log.d("Installations", "Installation auth token: " + task.result?.token)
            } else {
                Log.e("Installations", "Unable to get Installation auth token")
            }
        }

    С++

    firebase::InitResult init_result;
    auto* installations_object = firebase::installations::Installations::GetInstance(
        firebase::App::GetInstance(), &init_result);
    installations_object->GetToken().OnCompletion(
        [](const firebase::Future& future) {
          if (future.status() == kFutureStatusComplete &&
              future.error() == firebase::installations::kErrorNone) {
            printf("Installations Auth Token %s\n", future.result()->c_str());
          }
        });
    

    Единство

    Firebase.Installations.FirebaseInstallations.DefaultInstance.GetTokenAsync().ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("Installations token {0}", task.Result));
        }
      });
    
  2. На Firebase консоли панели навигации выберите A / B тестирование.
  3. Нажмите Draft (и / или Бег для удаленных экспериментов Config), парить над экспериментом, нажмите контекстное меню ( ), а затем нажмите кнопку Управления тестовых устройств.
  4. Введите токен авторизации установки для тестового устройства и выберите экспериментальный вариант для отправки на это тестовое устройство.
  5. Запустите приложение и убедитесь, что выбранный вариант поступает на тестовое устройство.

Чтобы узнать больше о Firebase установках см Управление Firebase установок .

Управляйте своим экспериментом

Независимо от того, создаете ли вы эксперимент с помощью Remote Config, Notifications composer или Firebase In-App Messaging, вы можете затем проверить и запустить свой эксперимент, отслеживать его во время его выполнения и увеличить количество пользователей, включенных в ваш текущий эксперимент.

Когда ваш эксперимент будет завершен, вы можете записать настройки, используемые в выигрышном варианте, а затем развернуть эти настройки для всех пользователей. Или вы можете провести еще один эксперимент.

Начать эксперимент

  1. В разделе Engage в консоли Firebase панели навигации выберите A / B тестирование.
  2. Нажмите черновик, а затем нажмите на название эксперимента.
  3. Чтобы проверить , что приложение имеет пользователей , которые будут включены в эксперимент, расширить проект детали и проверьте число больше 0% в разделе Таргетинг и распределения (например, 1% пользователей , соответствующих критериям).
  4. Для того, чтобы изменить свой эксперимент, нажмите кнопку Изменить.
  5. Для того, чтобы начать эксперимент, нажмите кнопку Пуск эксперимента. Вы можете запускать до 24 экспериментов в одном проекте одновременно.

Отслеживание эксперимента

По прошествии некоторого времени эксперимента вы можете проверить его ход и посмотреть, как выглядят ваши результаты для пользователей, которые уже участвовали в вашем эксперименте.

  1. В разделе Engage в консоли Firebase панели навигации выберите A / B тестирование.
  2. Нажмите Запуск, а затем название вашего эксперимента. На этой странице вы можете просмотреть различную наблюдаемую и смоделированную статистику вашего текущего эксперимента, в том числе следующие:

    • Разница% от базовой линии: Мера улучшения метрики для данного варианта по сравнению с исходным уровнем (или контрольной группой). Рассчитывается путем сравнения диапазона значений варианта с диапазоном значений базового плана.
    • Вероятность биений базовой линии: По оценкам , вероятность того, что данный вариант бьет базовый уровень для выбранного показателя.
    • observed_metric для каждого пользователя: на основе результатов эксперимента, это предсказанный диапазон , что значение метрики будет падать в течение долгого времени.
    • Общая observed_metric : Наблюдаемая накопленная величина для контрольной группы или варианты. Значение используется для измерения , насколько хорошо каждый эксперимент вариантные выполняет, и используется для расчета улучшения, Диапазон значений, вероятность биений базовой линии, и вероятность быть лучшим вариантом. В зависимости от измеряемой метрики этот столбец может быть помечен как «Продолжительность на пользователя», «Доход на пользователя», «Коэффициент удержания» или «Коэффициент конверсии».
  3. После того, как ваш эксперимент продлится некоторое время (не менее 7 дней для FCM и обмена сообщениями в приложении или 14 дней для Remote Config), данные на этой странице показывают, какой вариант, если таковой имеется, является «лидером». Некоторые измерения сопровождаются гистограммой, которая представляет данные в визуальном формате.

Проведите эксперимент для всех пользователей

После того, как эксперимент продлится достаточно долго, чтобы у вас появился «лидер» или выигрышный вариант целевого показателя, вы можете развернуть эксперимент для 100 % пользователей. Это позволяет вам выбрать вариант для публикации для всех пользователей в будущем. Даже если ваш эксперимент не выявил явного победителя, вы все равно можете развернуть вариант для всех своих пользователей.

  1. В разделе Engage в консоли Firebase панели навигации выберите A / B тестирование.
  2. Нажмите Завершены или Запуск, нажмите эксперимент , который вы хотите , чтобы выкатить для всех пользователей, выберите в контекстном меню ( ), а затем нажмите кнопку раскатать вариант.
  3. Разверните свой эксперимент для всех пользователей, выполнив одно из следующих действий:

    • Для эксперимента , который использует композитор Notifications, используйте раскатать диалоговое окно сообщения , чтобы отправить сообщение оставшихся целевых пользователей , которые не были частью эксперимента.
    • Для эксперимента Remote Config выберите вариант, чтобы определить, какие значения параметров Remote Config следует обновить. Критерии таргетинга, определенные при создании эксперимента, будут добавлены в качестве нового условия в ваш шаблон, чтобы гарантировать, что развертывание затронет только тех пользователей, на которых нацелен эксперимент. После нажатия на кнопку Обзор в Remote Config , чтобы просмотреть изменения, нажмите кнопку Опубликовать изменения , чтобы завершить развертывание.
    • Для эксперимента с обменом сообщениями в приложении используйте диалоговое окно, чтобы определить, какой вариант необходимо развернуть как отдельную кампанию обмена сообщениями в приложении. После выбора вы будете перенаправлены на экран создания FIAM, чтобы внести любые изменения (при необходимости) перед публикацией.

Развернуть эксперимент

Если вы обнаружите, что эксперимент не привлекает достаточное количество пользователей для A/B-тестирования, чтобы объявить лидера, вы можете увеличить распространение своего эксперимента, чтобы охватить больший процент пользовательской базы приложения.

  1. В разделе Engage в консоли Firebase панели навигации выберите A / B тестирование.
  2. Выберите запущенный эксперимент, который вы хотите изменить.
  3. В обзоре эксперимента, нажмите контекстное меню ( ), а затем нажмите кнопку Изменить запущенный эксперимент.
  4. В таргетирования диалогового окна возможности увеличить процент пользователей , которые находятся в настоящее время работает эксперимент. Выберите число больше , чем текущий процент и нажмите кнопку Опубликовать. Эксперимент будет распространен на указанный вами процент пользователей.

Дублировать или остановить эксперимент

  1. В разделе Engage в консоли Firebase панели навигации выберите A / B тестирование.
  2. Нажмите Завершены или Бег, парить над экспериментом, нажмите контекстное меню ( ), а затем нажмите кнопку Дублировать эксперимент или остановить эксперимент.

Таргетинг на пользователей

Вы можете настроить таргетинг на пользователей для участия в эксперименте, используя следующие критерии таргетинга пользователей.

Критерий таргетинга Оператор(ы) Ценности) Примечание
Версия содержит,
не содержит,
точно совпадает,
содержит регулярное выражение
Введите значение для одной или нескольких версий приложения, которые вы хотите включить в эксперимент.

При использовании любого из содержит, не содержит, или матчи именно операторы, вы можете предоставить список разделенных запятыми значений.

При использовании содержит регулярное выражение оператора, вы можете создать регулярные выражения в RE2 формате. Ваше регулярное выражение может соответствовать всей строке целевой версии или ее части. Вы можете также использовать ^ и $ якоря , чтобы соответствовать начало, конец, или полноту целевой строки.

Аудитория пользователей включает в себя все,
включает по крайней мере один из,
не включает все,
не включает хотя бы один из
Выберите одну или несколько аудиторий Google Analytics, чтобы настроить таргетинг на пользователей, которые могут быть включены в ваш эксперимент.
Свойство пользователя Для текста:
содержит,
не содержит,
точно совпадает,
содержит регулярное выражение

Для чисел:
<, ≤, =, ≥, >
Свойство пользователя Analytics используется для выбора пользователей, которые могут быть включены в эксперимент, с рядом параметров для выбора значений свойств пользователя.

На клиенте вы можете установить только строковые значения для свойств пользователя. Для условий, использующих числовые операторы, служба Remote Config преобразует значение соответствующего свойства пользователя в целое число или число с плавающей запятой.
При использовании содержит регулярное выражение оператора, вы можете создать регулярные выражения в RE2 формате. Ваше регулярное выражение может соответствовать всей строке целевой версии или ее части. Вы можете также использовать ^ и $ якоря , чтобы соответствовать начало, конец, или полноту целевой строки.
Прогноз Н/Д Целевые группы пользователей, определенные Firebase Predictions, например те, кто, скорее всего, перестанет использовать ваше приложение, или пользователи, которые могут совершить покупку в приложении. Выберите одно из значений, определенных инструментом Firebase Predictions. Если какой-либо параметр недоступен, вам может потребоваться подписаться на прогнозы Firebase, посетив раздел «Прогнозы» в консоли Firebase.
Страна устройства Н/Д Одна или несколько стран или регионов, используемых для выбора пользователей, которые могут быть включены в эксперимент.
Язык устройства Н/Д Один или несколько языков и локалей, используемых для выбора пользователей, которых можно включить в эксперимент. Этот критерий таргетинга доступен только для Remote Config.
Первый открытый больше, чем
меньше, чем
между
Настройте таргетинг на пользователей на основе того, когда они впервые открыли ваше приложение, в днях. Этот критерий таргетинга доступен только для обмена сообщениями в приложении Firebase.
Последнее взаимодействие с приложением больше, чем
меньше, чем
между
Настройте таргетинг на пользователей на основе того, когда они в последний раз взаимодействовали с вашим приложением (в днях). Этот критерий таргетинга доступен только для обмена сообщениями в приложении Firebase.

Показатели A/B-тестирования

При создании эксперимента вы выбираете метрику, которая используется для сравнения вариантов эксперимента, а также можете выбрать другие метрики для отслеживания, которые помогут вам лучше понять каждый вариант эксперимента и обнаружить любые значительные побочные эффекты (например, сбои приложений). В следующих таблицах приведены подробные сведения о том, как рассчитываются показатели цели и другие показатели.

Целевые показатели

Метрика Описание
Удержание (1 день) Количество пользователей, которые ежедневно возвращаются в ваше приложение.
Удержание (2-3 дня) Количество пользователей, которые возвращаются в ваше приложение в течение 2-3 дней.
Удержание (4-7 дней) Количество пользователей, которые возвращаются в ваше приложение в течение 4-7 дней.
Удержание (8-14 дней) Количество пользователей, которые возвращаются в ваше приложение в течение 8-14 дней.
Удержание (15+ дней) Количество пользователей, которые возвращаются к вашему приложению через 15 или более дней после последнего использования.
Уведомление открыто Отслеживает, открывает ли пользователь уведомление, отправленное компоновщиком уведомлений.
Доход от покупки Комбинированное значение для всех ecommerce_purchase и in_app_purchase событий.
Расчетный доход от AdMob Ориентировочный доход от AdMob.
Предполагаемый общий доход Совокупная стоимость покупки и расчетный доход от AdMob.
first_open Событие Analytics, которое запускается, когда пользователь впервые открывает приложение после его установки или переустановки. Используется как часть воронки конверсии.
уведомление_открыть Событие Analytics, которое запускается, когда пользователь открывает уведомление, отправленное компоновщиком уведомлений. Используется как часть воронки конверсии.

Другие показатели

Метрика Описание
Пользователи без сбоев Процент пользователей, которые не столкнулись с ошибками в вашем приложении, обнаруженными Firebase Crashlytics SDK во время эксперимента.
уведомление_отклонить Событие Analytics, которое запускается при отклонении уведомления, отправленного компоновщиком уведомлений (только для Android).
уведомление_получить Событие Analytics, которое запускается, когда уведомление, отправленное компоновщиком уведомлений, получено, когда приложение находится в фоновом режиме (только для Android).
os_update Аналитика событий , который отслеживает , когда операционная система устройства обновляется на новый version.To узнать больше, см Автоматически собранные события .
screen_view Событие Analytics, которое отслеживает экраны, просмотренные в вашем приложении. Чтобы узнать больше, см Track просмотров экрана .
сеанс_старт Событие Analytics, которое подсчитывает сеансы пользователей в вашем приложении. Чтобы узнать больше, см Автоматически собранные события .
user_engagement Событие Analytics, которое периодически запускается, когда ваше приложение находится на переднем плане. Чтобы узнать больше, см Автоматически собранные события .

Экспорт данных BigQuery

Вы можете получить доступ ко всей аналитике данных , связанным с вашим A / B тестов в BigQuery . BigQuery позволяет анализировать данные с помощью BigQuery SQL, экспортировать их в другой облачный провайдер или использовать данные для своих пользовательских моделей машинного обучения. См Link BigQuery к Firebase для получения дополнительной информации.

Чтобы в полной мере воспользоваться преимуществами экспорта данных BigQuery, в проектах Firebase следует использовать тарифный план Blaze с оплатой по факту использования. BigQuery взимает плату за хранение данных, потоковую вставку и запросы к данным. Загрузка и экспорт данных бесплатны. См BigQuery Ценообразование , или песочницу BigQuery для получения дополнительной информации.

Для начала убедитесь, что ваш проект Firebase связан с BigQuery. Выберите Настройки> Настройки проекта из левой навигационной панели, затем выберите интеграций> BigQuery> Ссылка. На этой странице отображаются параметры для выполнения экспорта данных аналитики BiqQuery для всех приложений в проекте.

Чтобы запросить аналитические данные для эксперимента:

  1. Из вашего активных экспериментов списка, выберите нужный эксперимент , чтобы открыть страницу результатов эксперимента.
  2. Из контекстного меню в Эксперименте Обзор панели выберите Запрос эксперимент данные (эта опция недоступна для проектов на уровне без стоимости).

    Откроется конструктор запросов консоли BigQuery с автоматически сгенерированным примером запроса экспериментальных данных, предварительно загруженным для вашего обзора. В этом запросе ваш эксперимент кодируется как пользовательское свойство с названием эксперимента в ключе и вариантом эксперимента в значении.

  3. В композитору запроса выберите Выполнить запрос. Результаты отображаются на нижней панели.

Обратите внимание: поскольку данные Firebase в BigQuery обновляются только один раз в день, данные, доступные на странице эксперимента, могут быть более актуальными, чем данные, доступные в консоли BigQuery.