Об A/B-тестах Firebase

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

Размер образца

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

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

Вы можете редактировать выбранные параметры проведения экспериментов, в том числе:

  • Название эксперимента
  • Описание
  • Условия таргетинга
  • Варианты значений

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

  1. Откройте страницу результатов эксперимента, который вы хотите изменить.
  2. В меню Еще выберите Редактировать текущий эксперимент .
  3. Внесите изменения и нажмите «Опубликовать» .

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

Логика назначения вариантов удаленной конфигурации

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

Аудитории Google Analytics подвержены задержкам и не доступны сразу, если пользователь изначально соответствует критериям аудитории:

  • Когда вы создаете новую аудиторию, накопление новых пользователей может занять 24–48 часов.
  • Новые пользователи обычно включаются в соответствующую аудиторию через 24–48 часов после того, как они получают право на участие.

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

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

События активации

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

Варианты веса

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

Интерпретация результатов теста

Firebase A/B-тестирование использует частотный вывод, чтобы помочь вам понять вероятность того, что результаты вашего эксперимента могли возникнуть исключительно благодаря случайности. Эта вероятность представлена ​​значением вероятности или p-значением . Значение p — это вероятность того, что разница в производительности между двумя вариантами могла возникнуть из-за случайной случайности, измеряемая значением от 0 до 1. При A/B-тестировании используется уровень значимости 0,05, так что:

  • Значение p менее 0,05 указывает на статистически значимую разницу между вариантами, то есть маловероятно, что она возникла случайно.
  • Значение p больше 0,05 указывает на то, что разница между вариантами не является статистически значимой.

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

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

Результаты разделены на данные наблюдений и данные вывода . Наблюдаемые данные рассчитываются непосредственно на основе данных Google Analytics, а данные вывода предоставляют значения p и доверительные интервалы, которые помогут вам оценить статистическую значимость наблюдаемых данных.

По каждой метрике отображается следующая статистика:

Наблюдаемые данные

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

Данные вывода

  • 95% ДИ (разница средних значений) отображает интервал, который содержит «истинное» значение отслеживаемого показателя с достоверностью 95%. Например, если ваш эксперимент дает 95 % ДИ для расчетного общего дохода от 5 до 10 долларов США, существует 95 % вероятность того, что истинная разница в средних значениях составляет от 5 до 10 долларов США. Если диапазон CI включает 0, статистически значимой разницы между вариантом и исходным уровнем не обнаружено.

    Значения доверительного интервала отображаются в формате, соответствующем отслеживаемому показателю. Например, время (в HH:MM:SS ) для удержания пользователей, доход в долларах США от рекламы на пользователя и процент для коэффициента конверсии.

  • P-значение , которое представляет вероятность отсутствия истинной разницы между вариантом и базовым уровнем; другими словами, любая наблюдаемая разница, скорее всего, обусловлена ​​случайностью. Чем ниже значение p, тем выше уверенность в том, что наблюдаемые результаты останутся верными в будущем. Значение 0,05 или ниже указывает на значительную разницу и низкую вероятность того, что результаты были случайными. P-значения основаны на одностороннем тесте , где значение варианта больше, чем базовое значение. Firebase использует t-тест неравной дисперсии для непрерывных переменных (числовые значения, например доход) и z-критерий пропорций для данных о конверсиях (двоичные значения, такие как удержание пользователей, пользователи без сбоев, пользователи, которые запускают событие Google Analytics).

Результаты эксперимента дают важную информацию для каждого варианта эксперимента, в том числе:

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

Интерпретация результатов экспериментов с помощью Google Optimize

Результаты Firebase A/B-тестирования для экспериментов, начатых до 23 октября 2023 г., были получены с помощью Google Optimize. Google Optimize использовал байесовский вывод для создания подробной статистики на основе данных вашего эксперимента.

Результаты делятся на «наблюдаемые данные» и «смоделированные данные». Наблюдаемые данные были рассчитаны непосредственно на основе аналитических данных, а смоделированные данные были получены в результате применения нашей байесовской модели к наблюдаемым данным.

По каждой метрике отображается следующая статистика:

Наблюдаемые данные

  • Общая стоимость (сумма показателей для всех пользователей в варианте)
  • Среднее значение (среднее значение показателя для пользователей в варианте)
  • % разницы от базового уровня

Смоделированные данные

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

В целом результаты эксперимента дают нам три важных вывода для каждого варианта эксперимента:

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

Решимость лидера

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

Для экспериментов, в которых использовалась Google Optimize , Firebase заявила, что вариант является «явным лидером», если у него более 95% шансов быть лучше базового варианта по основному показателю. Если несколько вариантов соответствовали критерию «явного лидера», только наиболее эффективный вариант в целом был отмечен как «явный лидер».

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

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

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

Продолжительность эксперимента

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

  1. В ходе эксперимента было собрано достаточно данных, чтобы дать полезный результат. Данные экспериментов и результатов обновляются один раз в день. Вы можете воспользоваться онлайн-калькулятором размера выборки, чтобы оценить рекомендуемый размер выборки для вашего эксперимента.
  2. Эксперимент длился достаточно долго, чтобы обеспечить репрезентативную выборку ваших пользователей и измерить долгосрочную эффективность. Две недели — это рекомендуемое минимальное время выполнения типичного эксперимента Remote Config.

Данные эксперимента обрабатываются в течение максимум 90 дней после начала эксперимента. Через 90 дней эксперимент автоматически прекращается. Результаты эксперимента больше не обновляются в консоли Firebase, и эксперимент перестает отправлять значения параметров, специфичные для эксперимента. На этом этапе клиенты начинают получать значения параметров на основе условий, установленных в шаблоне Remote Config. Исторические данные эксперимента сохраняются до тех пор, пока вы не удалите эксперимент.

Схема BigQuery

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

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

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

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

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

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

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

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

  1. Откройте вкладку «Интеграции» , доступ к которой можно получить, выбрав > «Настройки проекта» в консоли Firebase .
  2. Если вы уже используете BigQuery с другими сервисами Firebase, нажмите «Управление» . В противном случае нажмите «Ссылка» .
  3. Прочтите статью «Связывание Firebase с BigQuery» , затем нажмите «Далее» .
  4. В разделе «Настроить интеграцию» включите переключатель Google Analytics .
  5. Выберите регион и выберите настройки экспорта.

  6. Нажмите «Ссылка на BigQuery» .

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

Доступ к данным A/B-тестирования в 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 ).
  • Дата эксперимента. Чтобы составить более быстрый и эффективный запрос, рекомендуется ограничивать запросы разделами таблицы ежедневных событий Google Analytics, которые содержат данные эксперимента — таблицы, идентифицированные суффиксом YYYYMMDD . Итак, если ваш эксперимент проводился со 2 февраля 2024 г. по 2 мая 2024 г., вы должны указать _TABLE_SUFFIX between '20240202' AND '20240502' . Пример см. в разделе Выбор значений конкретного эксперимента .
  • Названия событий. Обычно они соответствуют целевым показателям , которые вы настроили в эксперименте. Например, события in_app_purchase , ad_impression или user_retention .

После того, как вы соберете информацию, необходимую для создания запроса:

  1. Откройте BigQuery в консоли Google Cloud.
  2. Выберите свой проект, затем выберите «Создать SQL-запрос» .
  3. Добавьте свой запрос. Примеры запросов для выполнения см. в разделе Изучение примеров запросов .
  4. Нажмите «Выполнить» .

Запрос данных эксперимента с помощью автоматически созданного запроса консоли Firebase.

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

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

  1. В консоли Firebase откройте A/B-тестирование и выберите эксперимент A/B-тестирования, который вы хотите запросить, чтобы открыть обзор эксперимента .
  2. В меню «Параметры» в разделе «Интеграция с BigQuery» выберите «Запросить данные эксперимента» . Откроется ваш проект в BigQuery в консоли консоли Google Cloud и будет предоставлен базовый запрос, который вы можете использовать для запроса данных эксперимента.

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

  /*
    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

Дополнительные примеры запросов см. в разделе Изучение примеров запросов .

Изучите примеры запросов

В следующих разделах представлены примеры запросов, которые можно использовать для извлечения данных экспериментов A/B-тестирования из таблиц событий Google Analytics.

Извлеките значения стандартного отклонения покупок и экспериментов из всех экспериментов.

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

Дополнительные сведения о том, как A/B-тестирование вычисляет логические выводы, см. в разделе Интерпретация результатов теста .

  /*
    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;

Выберите значения конкретного эксперимента

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

  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

Пределы

A/B-тестирование ограничено 300 экспериментами, 24 действующими экспериментами и 24 черновыми экспериментами. Эти ограничения используются совместно с развертываниями Remote Config. Например, если у вас есть два текущих внедрения и три текущих эксперимента, вы можете иметь до 19 дополнительных внедрений или экспериментов.

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

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

В эксперименте может быть максимум 8 вариантов (включая базовый) и до 25 параметров для каждого варианта. Размер эксперимента может достигать примерно 200 КиБ. Сюда входят имена вариантов, параметры вариантов и другие метаданные конфигурации.