Создавайте эксперименты по обмену сообщениями с помощью A/B-тестирования

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

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

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

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

Эксперимент, в котором используется композитор уведомлений, позволяет оценить несколько вариантов одного уведомления.

  1. Войдите в консоль Firebase и убедитесь, что Google Analytics включен в вашем проекте, чтобы эксперимент имел доступ к данным Analytics.

    Если вы не включили Google Analytics при создании проекта, вы можете включить его на вкладке «Интеграции» , доступ к которой можно получить, выбрав » > «Настройки проекта» в консоли Firebase .

  2. В разделе «Взаимодействие» на панели навигации консоли Firebase нажмите «A/B-тестирование» .

  3. Нажмите «Создать эксперимент» , а затем выберите «Уведомления» , когда будет предложено выбрать службу, с которой вы хотите поэкспериментировать.

  4. Введите имя и (необязательно) описание вашего эксперимента и нажмите «Далее» .

  5. Заполните поля «Таргетинг» , сначала выбрав приложение, в котором используется ваш эксперимент. Вы также можете настроить таргетинг на участие в эксперименте определенной группы пользователей, выбрав следующие варианты:

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

  7. В разделе «Варианты» введите сообщение для отправки базовой группе в поле Введите текст сообщения . Чтобы не отправлять сообщения базовой группе, оставьте это поле пустым.

  8. (необязательно) Чтобы добавить в эксперимент несколько вариантов, нажмите «Добавить вариант» . По умолчанию эксперименты имеют один базовый план и один вариант.

  9. (необязательно) Введите название для каждого варианта в эксперименте, чтобы заменить названия «Вариант А» , «Вариант Б » и т. д.

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

  11. Выберите варианты вашего сообщения:

    • Дата доставки: выберите «Отправить сейчас» , чтобы запустить эксперимент сразу после сохранения, или «Запланировано» , чтобы указать время запуска эксперимента в будущем.
    • Расширенные параметры. Чтобы выбрать дополнительные параметры для всех уведомлений, включенных в ваш эксперимент, разверните Дополнительные параметры и измените любой из перечисленных параметров сообщения.
  12. Нажмите «Просмотр» , чтобы сохранить эксперимент.

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

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

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

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

    Быстрый

    Messaging.messaging().token { token, error in
      if let error = error {
        print("Error fetching FCM registration token: \(error)")
      } else if let token = token {
        print("FCM registration token: \(token)")
        self.fcmRegTokenMessage.text  = "Remote FCM registration token: \(token)"
      }
    }
    

    Цель-C

    [[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) {
      if (error != nil) {
        NSLog(@"Error getting FCM registration token: %@", error);
      } else {
        NSLog(@"FCM registration token: %@", token);
        self.fcmRegTokenMessage.text = token;
      }
    }];
    

    Java

    FirebaseMessaging.getInstance().getToken()
        .addOnCompleteListener(new OnCompleteListener<String>() {
            @Override
            public void onComplete(@NonNull Task<String> task) {
              if (!task.isSuccessful()) {
                Log.w(TAG, "Fetching FCM registration token failed", task.getException());
                return;
              }
    
              // Get new FCM registration token
              String token = task.getResult();
    
              // Log and toast
              String msg = getString(R.string.msg_token_fmt, token);
              Log.d(TAG, msg);
              Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
            }
        });

    Kotlin+KTX

    FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
        if (!task.isSuccessful) {
            Log.w(TAG, "Fetching FCM registration token failed", task.exception)
            return@OnCompleteListener
        }
    
        // Get new FCM registration token
        val token = task.result
    
        // Log and toast
        val msg = getString(R.string.msg_token_fmt, token)
        Log.d(TAG, msg)
        Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
    })

    С++

    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());
          }
        });
        

    Unity

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

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

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

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

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

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

Мониторинг эксперимента

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

На клиенте вы можете установить только строковые значения для свойств пользователя. Для условий, в которых используются числовые операторы, служба Remote Config преобразует значение соответствующего свойства пользователя в целое число или число с плавающей запятой.
Используя оператор contains regex , вы можете создавать регулярные выражения в формате RE2 . Ваше регулярное выражение может соответствовать всей строке целевой версии или ее части. Вы также можете использовать привязки ^ и $ для соответствия началу, концу или всей целевой строке.
Страна/регион Н/Д Одна или несколько стран или регионов, используемых для выбора пользователей, которые могут быть включены в эксперимент.
Языки Н/Д Один или несколько языков и локалей, используемых для выбора пользователей, которые могут быть включены в эксперимент.
Первое открытие Больше, чем
Меньше, чем
Между
Таргетинг на пользователей основан на том, когда они впервые открыли ваше приложение, указанном в днях.
Последнее взаимодействие с приложением Больше, чем
Меньше, чем
Между
Таргетируйте пользователей на основе последнего взаимодействия с вашим приложением, указанного в днях.

Метрики A/B-тестирования

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

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

  • Расчетный общий доход , чтобы увидеть, как ваш совокупный доход от покупок в приложении и дохода от рекламы различается в двух вариантах.
  • Удержание (1 день) , Удержание (2–3 дня) , Удержание (4–7 дней) для отслеживания ежедневного/еженедельного удержания пользователей.

В следующих таблицах представлена ​​подробная информация о том, как рассчитываются показатели цели и другие показатели.

Показатели цели

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

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

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

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

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

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

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

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

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

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

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

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