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

При использовании Firebase Remote Config для развертывания настроек приложения с активной базой пользователей важно убедиться в правильности настроек. Для определения следующих параметров можно использовать A/B Testing :

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

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

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

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

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

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

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

  2. В консоли Firebase перейдите в раздел DevOps & Engagement > A/B Testing.

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

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

  5. (Необязательно) Чтобы добавить в эксперимент более одного варианта, нажмите « Добавить еще один вариант» .

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

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

  8. Определите критерии таргетинга для вашего эксперимента, используя условия Remote Config :

    • Повторное использование существующего условия: если существующее условие в вашем шаблоне Remote Config уже соответствует вашей целевой аудитории, выберите его из списка.

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

    • Создайте новое условие: если ни одно из существующих условий не удовлетворяет вашим требованиям к таргетингу, или если вы предпочитаете продублировать существующее условие (например, если вы предпочитаете не использовать условие, которое уже используется другими параметрами), создайте новое условие, сначала выбрав приложение, которое использует ваш эксперимент. Если вы создаете отдельное или дублирующее условие для эксперимента, убедитесь, что новое условие имеет более высокий приоритет, чем существующее; в противном случае пользователи будут соответствовать существующему условию в первую очередь, и в эксперимент не будет поступать новых пользователей.

      Затем вы можете выбрать определенную подгруппу пользователей, нажав кнопку и выбрав один или несколько вариантов из следующего списка:

      • Версия: Одна или несколько версий вашего приложения
      • Номер сборки: номер сборки (Apple) или код версии (Android) вашего приложения.
      • Платформа: Одна или несколько платформ (iOS, Android или Web) для таргетирования.
      • Операционная система: Нацеливание на пользователей веб-приложения на основе их операционной системы и версии.
      • Браузер: Нацеливание на пользователей веб-приложения на основе их веб-браузера и версии браузера.
      • Категория устройства: Нацеливайте рекламу на пользователей веб-приложения в зависимости от того, мобильное у них устройство или нет.
      • Языки: Один или несколько языков и региональных настроек, используемых для отбора пользователей, которые могут быть включены в эксперимент.
      • Страна/Регион: Одна или несколько стран или регионов для отбора пользователей, которых следует включить в эксперимент.
      • Целевая аудитория пользователей: Analytics аудитории, используемые для таргетирования пользователей, которые могут быть включены в эксперимент.
      • Свойство пользователя: Одно или несколько свойств пользователя Analytics для выбора пользователей, которые могут быть включены в эксперимент.
      • Пользователь в случайном процентном соотношении: Нацелить случайный процент пользователей в заданном процентильном диапазоне.
      • Импортированный сегмент: Целевые пользователи, принадлежащие к пользовательским импортированным сегментам, загруженным в ваш проект.
      • Дата/время: Нацеливание на пользователей на основе указанного временного интервала и даты.
      • Первое открытие: Нацеливайте таргетинг на пользователей в зависимости от того, когда они впервые открыли ваше приложение.
      • Идентификатор установки: Укажите целевые тестовые устройства или экземпляры клиентов, используя их идентификаторы установки Firebase (FID).
      • Пользователь существует: Нацелить на всех пользователей во всех приложениях проекта.
      • Пользовательский сигнал: Нацеливание на пользователей на основе пользовательских сигналов ключ-значение на стороне клиента, передаваемых во время выполнения.
  9. Установите охват: введите процент пользователей вашего приложения, соответствующих критериям, заданным в разделе «Целевые пользователи» , который вы хотите равномерно распределить между базовой группой и одним или несколькими вариантами в вашем эксперименте. Это может быть любой процент от 0% до 100%. Пользователи случайным образом назначаются каждому эксперименту, включая дублирующиеся эксперименты.

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

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

    • app_install
    • app_remove
    • app_update

    Выбранное вами событие Analytics в качестве события активации не должно также использоваться в качестве основной метрики (или в качестве дополнительной метрики) в том же эксперименте. В противном случае в консоли Firebase возникнет ошибка проверки, и запуск эксперимента будет невозможен.

  11. В разделе «Цели» эксперимента выберите основной показатель для отслеживания и добавьте из списка любые дополнительные показатели, которые вы хотите отслеживать. К ним относятся встроенные цели (покупки, доход, удержание пользователей, у которых не было сбоев и т. д.), события конверсии Analytics и другие события Analytics . После завершения нажмите «Далее» .

  12. Нажмите «Сохранить» , чтобы сохранить эксперимент. Для начала проведения эксперимента необходимо опубликовать шаблон.

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

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

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

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

Редактировать эксперимент

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

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

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

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

    • Процентное отклонение от базового уровня : Показатель улучшения метрики для данного варианта по сравнению с базовым уровнем. Рассчитывается путем сравнения диапазона значений для варианта с диапазоном значений для базового уровня.
    • Вероятность превзойти базовый показатель : оценочная вероятность того, что данный вариант превзойдет базовый показатель по выбранной метрике.
    • observed_metric per user : На основе результатов эксперимента это прогнозируемый диапазон, в который будет попадать значение метрики с течением времени.
    • Total observed_metric : Накопленное значение для базового варианта или варианта. Это значение используется для оценки эффективности каждого варианта эксперимента и применяется для расчета показателей улучшения , диапазона значений , вероятности превзойти базовый вариант и вероятности стать лучшим вариантом . В зависимости от измеряемого показателя, этот столбец может быть обозначен как «Длительность на пользователя», «Доход на пользователя», «Коэффициент удержания» или «Коэффициент конверсии».
  4. После того, как ваш эксперимент продлится некоторое время (14 дней для Remote Config ), данные на этой странице укажут, какой вариант, если таковой имеется, является «лидером». Некоторые измерения сопровождаются гистограммой, которая представляет данные в визуальном формате.

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

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

  1. В разделе DevOps & Engagement навигационного меню консоли Firebase нажмите Remote Config .
  2. Перейдите во вкладку «A/B-тесты» .
  3. Нажмите «Завершено» или «Выполняется» , выберите эксперимент, который хотите запустить для всех пользователей, затем нажмите контекстное меню ( ) и выберите «Развернуть вариант» .
  4. Для запуска эксперимента на всех пользователях выполните следующие действия:
    • Для эксперимента Remote Config выберите вариант, чтобы определить, какие значения параметров Remote Config следует обновить. Критерии таргетинга, определенные при создании эксперимента, добавляются в качестве нового условия в ваш шаблон, чтобы гарантировать, что развертывание затронет только пользователей, на которых направлен эксперимент. После нажатия кнопки «Просмотреть» в разделе «Удаленная конфигурация» для проверки изменений, нажмите кнопку «Опубликовать изменения» , чтобы завершить развертывание.

Расширить эксперимент

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

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

Повторите эксперимент

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

Прекратите эксперимент

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

Идентификация веб-клиента и сохранение результатов экспериментов

Когда пользователь впервые запускает веб-приложение с использованием Firebase A/B Testing в браузере, генерируется уникальный идентификатор установки Firebase (FID). Этот FID постоянно хранится в IndexedDB браузера для идентификации экземпляра приложения в разных сессиях.

Firebase A/B Testing идентификатор FID используется для распределения пользователей по вариантам эксперимента, а Google Analytics — для агрегации событий с целью измерения и анализа поведения пользователей в каждом варианте.

Поскольку идентификатор приложения (FID) хранится в IndexedDB, Firebase A/B Testing рассматривает пользователя как нового, если он заходит в ваше приложение из другого браузера или в режиме инкогнито, или если он очищает IndexedDB своего браузера. Это означает, что пользователь может быть включен в разные варианты эксперимента при использовании разных браузеров или сеансов просмотра.

Целевой пользователь

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

В консоли Firebase поддерживаются следующие типы правил. Аналогичные функции доступны в REST API Remote Config , как подробно описано в справочнике по условным выражениям .

Тип правила Оператор(ы) Ценности) Примечание
Приложение == Выберите из списка идентификаторов приложений (App ID) для приложений, связанных с вашим проектом Firebase. При добавлении приложения в Firebase вы указываете идентификатор пакета или имя пакета Android, которое определяет атрибут, отображаемый как идентификатор приложения в правилах Remote Config .

Используйте этот атрибут следующим образом:
  • Для платформ Apple: используйте CFBundleIdentifier приложения. Идентификатор пакета можно найти на вкладке «Общие» для основной целевой платформы вашего приложения в Xcode.
  • Для Android: используйте applicationId приложения. Вы можете найти applicationId в файле build.gradle(.kts) на уровне приложения.
Версия приложения Для строковых значений:
точно совпадает,
содержит,
не содержит
содержит регулярное выражение

Для числовых значений:
<, <=, =, !=, >, >=

Укажите целевую(ые) версию(и) вашего приложения.

Перед использованием этого правила необходимо использовать правило App ID для выбора приложения Android/Apple, связанного с вашим проектом Firebase.

Для платформ Apple: используйте параметр CFBundleShortVersionString приложения.

Примечание: Убедитесь, что ваше приложение Apple использует Firebase Apple Platforms SDK версии 6.24.0 или выше, поскольку в более ранних версиях CFBundleShortVersionString не отправляется (см. примечания к выпуску ).

Для Android: используйте versionName приложения.

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

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

Номер сборки Для строковых значений:
точно совпадает,
содержит,
не содержит
регулярное выражение

Для числовых значений:
=, ≠, >, ≥, <, ≤

Укажите целевые сборки вашего приложения.

Перед использованием этого правила необходимо использовать правило App ID для выбора приложения Apple или Android, связанного с вашим проектом Firebase.

Этот оператор доступен только для приложений Apple и Android. Он соответствует значению CFBundleVersion приложения для Apple и versionCode для Android. Сравнение строк для этого правила чувствительно к регистру.

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

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

Платформа == iOS
Android
Веб
Операционная система ==

Укажите целевую(ые) операционную(ые) систему(ы).

Перед использованием этого правила необходимо использовать правило App ID для выбора веб-приложения, связанного с вашим проектом Firebase.

Это правило принимает значение true для данного экземпляра веб-приложения, если операционная система и её версия соответствуют целевому значению в указанном списке.
Браузер ==

Укажите целевой(ые) браузер(ы).

Перед использованием этого правила необходимо использовать правило App ID для выбора веб-приложения, связанного с вашим проектом Firebase.

Это правило принимает значение true для данного экземпляра веб-приложения, если браузер и его версия соответствуют целевому значению в указанном списке.
Категория устройства есть, не есть мобильный Это правило определяет, является ли устройство, обращающееся к вашему веб-приложению, мобильным или немобильным (настольный компьютер или консоль). Этот тип правила доступен только для веб-приложений.
Языки находится в Выберите один или несколько языков. Это правило принимает значение true для данного экземпляра приложения, если этот экземпляр приложения установлен на устройстве, использующем один из перечисленных языков.
Страна/Регион находится в Выберите один или несколько регионов или стран. Это правило принимает значение true для данного экземпляра приложения, если этот экземпляр находится в любом из перечисленных регионов или стран. Код страны устройства определяется с использованием IP-адреса устройства в запросе или кода страны, определенного Firebase Analytics (если данные Analytics передаются в Firebase).
Целевая аудитория пользователей Включает как минимум один Выберите одну или несколько аудиторий из списка, которые вы настроили для своего проекта Google Analytics .

Для выбора приложения, связанного с вашим проектом Firebase, требуется правило App ID.

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

Свойство пользователя Для строковых значений:
содержит,
не содержит
точно совпадает,
содержит регулярное выражение

Для числовых значений:
=, ≠, >, ≥, <, ≤

Примечание: На стороне клиента для пользовательских свойств можно задавать только строковые значения. Для условий, использующих числовые операторы, Remote Config преобразует значение соответствующего пользовательского свойства в целое число или число с плавающей запятой.
Выберите из списка доступных пользовательских свойств Google Analytics . Чтобы узнать, как использовать свойства пользователя для настройки приложения под конкретные сегменты вашей пользовательской базы, см. раздел Remote Config и свойства пользователя» .

Для получения более подробной информации о свойствах пользователей см. следующие руководства:

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

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

Примечание: Автоматически собираемые свойства пользователя недоступны при создании условий Remote Config .
Пользователь в случайном процентном соотношении Слайдер (в консоли Firebase. REST API использует операторы <= , > и between ". 0-100

Используйте это поле, чтобы применить изменения к случайной выборке экземпляров приложения (с размером выборки всего 0,0001%), используя ползунок для сегментации случайно перемешанных пользователей (экземпляров приложения) на группы.

Каждому экземпляру приложения постоянно присваивается случайное целое или дробное число в соответствии с начальным значением , определенным в этом проекте.

Правило будет использовать ключ по умолчанию (отображается как «Редактировать начальное значение» в консоли Firebase ), если вы не измените значение начального значения. Вы можете вернуть правило к использованию ключа по умолчанию, очистив поле «Начальное значение» .

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

Например, чтобы создать два связанных условия, каждое из которых применяется к непересекающимся 5% пользователей приложения, можно настроить одно условие на соответствие проценту от 0% до 5%, а другое — на соответствие диапазону от 5% до 10%. Чтобы некоторые пользователи случайным образом попадали в обе группы, используйте разные начальные значения для правил в каждом условии.

Импортированный сегмент находится в Выберите один или несколько импортированных сегментов. Это правило требует настройки пользовательских импортированных сегментов .
Дата/Время До, После Указанная дата и время, либо в часовом поясе устройства, либо в другом часовом поясе, например, "(GMT+11) Сиднейское время". Сравнивает текущее время со временем получения данных устройством.
Первый открытый До, После

Нацеливайте таргетинг на пользователей в зависимости от того, когда они впервые открывают ваше приложение:

  • Выберите «Новые пользователи» , чтобы нацелиться на пользователей, которые впервые откроют ваше приложение после указанной будущей даты и времени.
  • Выберите временной диапазон , чтобы выбрать пользователей, которые впервые открыли ваше приложение в течение указанного периода до или после указанной даты и времени. Объедините условия «До» и «После» , чтобы выбрать пользователей в определенном временном диапазоне.

Функция таргетирования пользователей по первому открытию доступна после выбора приложения для Android, iOS или веб-приложения.

Для работы требуются следующие SDK:

  • Firebase SDK для Google Analytics
  • SDK для платформ Apple версии 9.0.0+ или Android SDK версии 21.1.1+ ( Firebase BoM версии 30.3.0+) и JavaScript SDK версии 12.8.0+.

Analytics также должна быть включена на стороне клиента во время первого открытого события.

Идентификатор установки находится в Укажите один или несколько идентификаторов установок (до 50), на которые следует воздействовать. Это правило принимает значение true для данной установки, если идентификатор этой установки присутствует в списке значений, разделенных запятыми.

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

Используйте это правило условия, чтобы сопоставить всех пользователей в проекте, независимо от приложения или платформы.

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

Для числовых значений:
=, ≠, >, ≥, <, ≤

Для значений версий:
=, ≠, >, ≥, <, ≤

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

В клиентских средах поддерживаются следующие типы данных:
  • iOS: int, double
  • Android: int, long, double
  • Веб: номер

Число, обозначающее номер(а) версии, которую необходимо сопоставить (например, 2.1.0).

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

Метрики A/B Testing

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

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

  • Для отслеживания ежедневного и еженедельного удержания пользователей добавьте показатели «Удержание (2-3 дня)» и «Удержание (4-7 дней)» .
  • Для сравнения стабильности работы двух игровых процессов добавьте пользователей, у которых не было сбоев .
  • Для получения более подробной информации о каждом типе дохода добавьте доходы от покупок и предполагаемые доходы от рекламы .

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

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

Метрика Описание
Пользователи без сбоев Процент пользователей, которые не столкнулись с ошибками в вашем приложении, обнаруженными SDK Firebase Crashlytics во время эксперимента.

Примечание: Firebase Crashlytics не поддерживается для веб-приложений.

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

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

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

Данный показатель не поддерживается для веб-приложений.

screen_view Событие Analytics , отслеживающее просмотренные экраны в вашем приложении. Подробнее см. раздел «Отслеживание просмотров экранов» .
session_start Analytics событие, которое подсчитывает количество пользовательских сессий в вашем приложении. Подробнее см. в разделе «Автоматически собираемые события» .

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

Помимо просмотра данных экспериментов A/B Testing в консоли Firebase , вы можете проверять и анализировать данные экспериментов в BigQuery . Хотя для A/B Testing нет отдельной таблицы BigQuery , информация о принадлежности к экспериментам и вариантам хранится в таблицах событий Google Analytics Analytics .

Свойства пользователя, содержащие информацию об эксперименте, имеют вид userProperty.key like "firebase_exp_%" или userProperty.key = "firebase_exp_01" где 01 — идентификатор эксперимента, а userProperty.value.string_value содержит (начиная с нуля) индекс варианта эксперимента.

Вы можете использовать эти пользовательские свойства эксперимента для извлечения данных эксперимента. Это дает вам возможность анализировать результаты эксперимента различными способами и независимо проверять результаты A/B Testing .

Для начала выполните следующие действия, как описано в этом руководстве:

  1. Включите экспорт BigQuery для Google Analytics в консоли Firebase.
  2. Получите доступ к данным A/B Testing с помощью BigQuery
  3. Изучите примеры запросов.

Включите экспорт BigQuery для Google Analytics в консоли Firebase.

Если вы используете тарифный план Spark, вы можете бесплатно использовать песочницу BigQuery для доступа к BigQuery , с учетом ограничений песочницы . Дополнительную информацию см. в разделах «Цены» и «Песочница BigQuery .

Во-первых, убедитесь, что вы экспортируете данные Analytics в BigQuery :

  1. В консоли Firebase перейдите в... > Вкладка «Интеграции» .

  2. В карточке BigQuery нажмите «Управление» и убедитесь, что ваш проект экспортирует данные Analytics в BigQuery .

    Если на карточке написано «Ссылка» , значит, вам нужно настроить экспорт (перейдите к следующему шагу).

  3. Если вам необходимо настроить экспорт:

    1. Ознакомьтесь с информацией о подключении Firebase к BigQuery , затем нажмите «Далее» .

    2. В разделе «Настройка интеграции» включите Google Analytics .

    3. Выберите регион и укажите параметры экспорта.

    4. Перейдите по ссылке на BigQuery .

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

Доступ к данным A/B Testing в BigQuery

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

  • Идентификатор эксперимента: его можно получить из URL-адреса страницы обзора эксперимента . Например, если ваш URL-адрес выглядит так: https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25 , то идентификатор эксперимента равен 25 .
  • Идентификатор ресурса Google Analytics : это ваш 9-значный идентификатор ресурса Google Analytics . Вы можете найти его в Google Analytics ; он также отображается в BigQuery когда вы разворачиваете название своего проекта, чтобы показать название вашей таблицы событий Google Analytics ( project_name.analytics_000000000.events ).
  • Experiment date: To compose a faster and more efficient query, it's good practice to limit your queries to the Google Analytics daily event table partitions that contain your experiment data—tables identified with a YYYYMMDD suffix. So, if your experiment ran from February 2, 2024 through May 2, 2024, you'd specify a _TABLE_SUFFIX between '20240202' AND '20240502' . For an example, see Select a specific experiment's values .
  • Event names: Typically, these correspond with your goal metrics that you configured in the experiment. For example, in_app_purchase events, ad_impression , or user_retention events.

After you gather the information you need to generate your query:

  1. In the Google Cloud console, go to BigQuery .
  2. Select your project, then select Create SQL query .
  3. Add your query. For example queries to run, see Explore example queries .
  4. Нажмите «Выполнить» .

Query experiment data using the Firebase console's auto-generated query

If you're using the Blaze plan, the Experiment overview page provides a sample query that returns the experiment name, variants, event names, and the number of events for the experiment you're viewing.

To obtain and run the auto-generated query:

  1. In the Firebase console, go to DevOps & Engagement > A/B Testing .
  2. Select the A/B Testing experiment you want to query to open the Experiment overview .
  3. From the Options menu, beneath BigQuery integration , select Query experiment data . This opens your project in BigQuery within the Google Cloud console console and provides a basic query you can use to query your experiment data.

The following example shows a generated query for an experiment with three variants (including the baseline) named "Winter welcome experiment." It returns the active experiment name, variant name, unique event, and event count for each event. Note that the query builder doesn't specify your project name in the table name, as it opens directly within your project.

  /*
    This query is auto-generated by Firebase A/B Testing for your
    experiment "Winter welcome experiment".
    It demonstrates how you can get event counts for all Analytics
    events logged by each variant of this experiment's population.
  */
  SELECT
    'Winter welcome experiment' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'Welcome message (1)'
      WHEN '2' THEN 'Welcome message (2)'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_000000000.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN '20240202' AND '20240502')
    AND userProperty.key = 'firebase_exp_25'
  GROUP BY
    experimentVariant, eventName

For additional query examples, proceed to Explore example queries .

Explore example queries

The following sections provide examples of queries you can use to extract A/B Testing experiment data from Google Analytics event tables.

Extract purchase and experiment standard deviation values from all experiments

You can use experiment results data to independently verify Firebase A/B Testing results. The following BigQuery SQL statement extracts experiment variants, the number of unique users in each variant, and sums total revenue from in_app_purchase and ecommerce_purchase events, and standard deviations for all experiments within the time range specified as the _TABLE_SUFFIX begin and end dates. You can use the data you obtain from this query with a statistical significance generator for one-tailed t-tests to verify that the results Firebase provides match your own analysis.

For more information about how A/B Testing calculates inference, see Interpret test results .

  /*
    This query returns all experiment variants, number of unique users,
    the average USD spent per user, and the standard deviation for all
    experiments within the date range specified for _TABLE_SUFFIX.
  */
  SELECT
    experimentNumber,
    experimentVariant,
    COUNT(*) AS unique_users,
    AVG(usd_value) AS usd_value_per_user,
    STDDEV(usd_value) AS std_dev
  FROM
    (
      SELECT
        userProperty.key AS experimentNumber,
        userProperty.value.string_value AS experimentVariant,
        user_pseudo_id,
        SUM(
          CASE
            WHEN event_name IN ('in_app_purchase', 'ecommerce_purchase')
              THEN event_value_in_usd
            ELSE 0
            END) AS usd_value
      FROM `PROJECT_NAME.analytics_ANALYTICS_ID.events_*`
      CROSS JOIN UNNEST(user_properties) AS userProperty
      WHERE
        userProperty.key LIKE 'firebase_exp_%'
        AND event_name IN ('in_app_purchase', 'ecommerce_purchase')
        AND (_TABLE_SUFFIX BETWEEN 'YYYYMMDD' AND 'YYYMMDD')
      GROUP BY 1, 2, 3
    )
  GROUP BY 1, 2
  ORDER BY 1, 2;

Select a specific experiment's values

The following example query illustrates how to obtain data for a specific experiment in BigQuery . This sample query returns the experiment name, variant names (including Baseline), event names, and event counts.

  SELECT
    'EXPERIMENT_NAME' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'VARIANT_1_NAME'
      WHEN '2' THEN 'VARIANT_2_NAME'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_ANALYTICS_PROPERTY.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN 'YYYMMDD' AND 'YYYMMDD')
    AND userProperty.key = 'firebase_exp_EXPERIMENT_NUMBER'
  GROUP BY
    experimentVariant, eventName