Помимо просмотра данных экспериментов 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 .
Для начала выполните следующие действия, как описано в этом руководстве:
- Включите экспорт BigQuery для Google Analytics в консоли Firebase.
- Получите доступ к данным A/B Testing с помощью BigQuery
- Изучите примеры запросов.
Включите экспорт BigQuery для Google Analytics в консоли Firebase.
Если вы используете тарифный план Spark, вы можете бесплатно использовать песочницу BigQuery для доступа к BigQuery , с учетом ограничений песочницы . Дополнительную информацию см. в разделах «Цены» и «Песочница BigQuery .
Во-первых, убедитесь, что вы экспортируете данные Analytics в BigQuery :
- Откройте вкладку «Интеграции» , доступ к которой можно получить через > «Настройки проекта» в консоли Firebase .
- Если вы уже используете BigQuery с другими сервисами Firebase, нажмите «Управление» . В противном случае нажмите «Связать» .
- Ознакомьтесь с информацией о подключении Firebase к BigQuery , затем нажмите «Далее» .
- В разделе «Настройка интеграции» включите переключатель Google Analytics .
Выберите регион и укажите параметры экспорта.
Перейдите по ссылке на 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). - Дата эксперимента: Для более быстрого и эффективного составления запроса рекомендуется ограничивать запросы разделами таблицы ежедневных событий Google Analytics , содержащими данные вашего эксперимента — таблицами, обозначенными суффиксом
YYYYMMDD. Таким образом, если ваш эксперимент проводился со 2 февраля 2024 года по 2 мая 2024 года, вам следует указать_TABLE_SUFFIX between '20240202' AND '20240502'. Пример см. в разделе « Выбор значений конкретного эксперимента» . - Названия событий: Как правило, они соответствуют целевым показателям , которые вы настроили в эксперименте. Например, события
in_app_purchase,ad_impressionили событияuser_retention.
После того, как вы соберете необходимую информацию для формирования запроса:
- Откройте BigQuery в консоли Google Cloud .
- Выберите свой проект, затем выберите «Создать SQL-запрос» .
- Добавьте свой запрос. Примеры запросов для выполнения см. в разделе «Изучить примеры запросов» .
- Нажмите «Выполнить» .
Запросите данные эксперимента, используя автоматически сгенерированный запрос в консоли Firebase.
Если вы используете тарифный план Blaze, на странице обзора экспериментов представлен пример запроса, который возвращает название эксперимента, варианты, названия событий и количество событий для просматриваемого эксперимента.
Чтобы получить и выполнить автоматически сгенерированный запрос:
- В консоли Firebase откройте A/B Testing и выберите эксперимент A/B Testing , для которого хотите выполнить запрос, чтобы открыть обзор эксперимента .
- В меню «Параметры», под пунктом «Интеграция 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 Testing из таблиц событий Google Analytics .
Извлеките значения стандартного отклонения для покупок и экспериментов из всех проведенных экспериментов.
Вы можете использовать данные результатов экспериментов для независимой проверки результатов Firebase A/B Testing . Следующий SQL-запрос BigQuery извлекает варианты экспериментов, количество уникальных пользователей в каждом варианте, суммирует общий доход от событий in_app_purchase и ecommerce_purchase , а также стандартные отклонения для всех экспериментов в диапазоне времени, указанном в качестве начальной и конечной дат _TABLE_SUFFIX . Вы можете использовать данные, полученные из этого запроса, с генератором статистической значимости для односторонних t-тестов, чтобы убедиться, что результаты, предоставляемые Firebase, соответствуют вашему собственному анализу.
Для получения более подробной информации о том, как A/B Testing рассчитывает выводы, см. раздел «Интерпретация результатов тестирования» .
/*
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