Эта страница была переведа с помощью Cloud Translation API.
Switch to English

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

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

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

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

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

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

Эксперимент Remote Config позволяет вам оценить несколько вариантов одного или нескольких параметров Remote Config .

  1. Войдите в Firebase, обновите настройки совместного использования данных и убедитесь, что общий доступ к данным включен. Без обмена данными у вашего эксперимента не будет доступа к аналитическим данным.
  2. На панели навигации консоли Firebase разверните « Рост» и нажмите « A / B-тестирование» .
  3. Нажмите « Создать эксперимент» , а затем выберите «Удаленная настройка», когда будет предложено выбрать службу, с которой нужно поэкспериментировать.
  4. Введите Имя и (необязательно) Описание для вашего эксперимента и нажмите Далее .
  5. Заполните поля Таргетинг , сначала выбрав приложение, которое использует ваш эксперимент. Вы также можете настроить таргетинг на участие в эксперименте определенных пользователей, выбрав один или несколько из следующих вариантов:

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

  7. При желании установите событие активации, чтобы в вашем эксперименте учитывались только пользователи, которые первыми инициировали какое-либо событие Analytics, а затем нажмите Далее .

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

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

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

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

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

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

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

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

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

    Swift

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

    Цель-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");
            }
        }
    });

    Котлин + KTX

    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")
            }
        }

    C ++

    firebase::InitResult init_result;
    auto* instance_id_object = firebase::instance_id::InstanceId::GetInstanceId(
        firebase::App::GetInstance(), &init_result);
    instance_id_object->GetToken().OnCompletion(
        [](const firebase::Future<std::string>& future) {
          if (future.status() == kFutureStatusComplete &&
              future.error() == firebase::instance_id::kErrorNone) {
            printf("Instance ID Token %s\n", future.result()->c_str());
          }
        });
    

    Единство

    Firebase.InstanceId.FirebaseInstanceId.DefaultInstance.GetTokenAsync().ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("Instance ID Token {0}", task.Result));
        }
      });
    
  2. На панели навигации консоли Firebase нажмите A / B Testing .
  3. Щелкните Черновик (и / или Выполняется для экспериментов с удаленной конфигурацией), наведите указатель мыши на эксперимент, щелкните контекстное меню ( ), а затем щелкните Управление тестовыми устройствами .
  4. Введите токен аутентификации установки Firebase для тестового устройства и выберите вариант эксперимента для отправки на это тестовое устройство.
  5. Запустите приложение и убедитесь, что выбранный вариант поступает на тестовое устройство.

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

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

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

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

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

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

Наблюдать за экспериментом

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

  1. На панели навигации консоли Firebase нажмите « Увеличить» , затем нажмите « A / B-тестирование» .
  2. Щелкните " Выполнение" , а затем щелкните название своего эксперимента. На этой странице вы можете просмотреть различную статистику о проводящемся эксперименте, включая целевой показатель и другие показатели. Для каждой метрики доступна следующая информация:

    • Улучшение : мера улучшения показателя для данного варианта по сравнению с исходным уровнем (или контрольной группой). Вычисляется путем сравнения диапазона значений для варианта с диапазоном значений для базовой линии.
    • Вероятность превышения базового уровня : оценочная вероятность того, что данный вариант превосходит базовый уровень для выбранной метрики.
    • Вероятность быть лучшим вариантом : оценочная вероятность того, что данный вариант превосходит другие варианты для выбранной метрики.
    • Ценность на пользователя . Это прогнозируемый диапазон, в который значение показателя со временем попадет на основе результатов эксперимента.
    • Общее значение : наблюдаемое совокупное значение для контрольной группы или варианта. Это значение используется для измерения того, насколько хорошо работает каждый вариант эксперимента, и используется для расчета улучшения , диапазона значений , вероятности превышения базового уровня и вероятности достижения наилучшего варианта . В зависимости от измеряемой метрики этот столбец может иметь название «Продолжительность на пользователя», «Уровень удержания» или «Коэффициент конверсии».
  3. Чтобы увеличить количество пользователей, включенных в эксперимент, нажмите « Увеличить распределение» , а затем выберите увеличенный процент, чтобы добавить в эксперимент больше подходящих пользователей.

  4. После того, как ваш эксперимент продлится некоторое время (по крайней мере, 7 дней для FCM и обмена сообщениями в приложении или 14 дней для Remote Config), данные на этой странице показывают, какой вариант, если таковой имеется, является «лидером». Некоторые измерения сопровождаются гистограммой, которая представляет данные в визуальном формате.

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

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

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

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

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

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

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

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

  1. На панели навигации консоли Firebase нажмите « Увеличить» , затем нажмите « A / B-тестирование» .
  2. Нажмите « Завершено» или « Выполняется» , наведите указатель мыши на эксперимент, щелкните контекстное меню ( ), а затем нажмите « Дублировать» или « Остановить» .

Пользовательский таргетинг

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

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

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

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

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

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

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

Показатели 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 Событие Google Analytics, которое запускается, когда пользователь впервые открывает приложение после его установки или переустановки. Используется как часть воронки конверсии.
notification_open Событие Analytics, которое запускается, когда пользователь открывает уведомление, отправленное композитором уведомлений. Используется как часть воронки конверсии.

Прочие показатели

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

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

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

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

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

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

  1. В списке активных экспериментов выберите нужный эксперимент, чтобы открыть страницу результатов эксперимента.
  2. В контекстном меню на панели обзора эксперимента выберите « Просмотреть в BigQuery» (этот параметр недоступен для проектов на бесплатном уровне).

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

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

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