Когда вы обращаетесь к своим пользователям или начинаете новую маркетинговую кампанию, вы хотите убедиться, что делаете это правильно. Тестирование A/B может помочь вам найти оптимальную формулировку и презентацию, тестируя варианты сообщений на выбранных частях вашей пользовательской базы. Независимо от того, является ли ваша цель лучшим удержанием или конверсией в предложении, тестирование A/B может выполнить статистический анализ, чтобы определить, превосходит ли вариант сообщения базовый уровень для выбранной вами цели.
Для A/B-тестирования вариантов функций с использованием базового уровня выполните следующие действия:
- Создайте свой эксперимент.
- Проверьте свой эксперимент на тестовом устройстве.
- Управляйте своим экспериментом.
Создать эксперимент
Эксперимент, использующий компоновщик уведомлений, позволяет оценить несколько вариантов одного уведомления.
Войдите в консоль Firebase и убедитесь, что в вашем проекте включен Google Analytics , чтобы эксперимент имел доступ к данным Analytics .
Если вы не включили Google Analytics при создании проекта, вы можете включить его на вкладке «Интеграции» , доступ к которой можно получить, выбрав > «Параметры проекта» в консоли Firebase .
В разделе «Вовлеченность» на панели навигации консоли Firebase нажмите A/B Testing .
Нажмите «Создать эксперимент» , а затем выберите «Уведомления» , когда будет предложено указать службу, с которой вы хотите провести эксперимент.
Введите Имя и необязательное Описание для вашего эксперимента и нажмите Далее .
Заполните поля Targeting , сначала выбрав приложение, которое использует ваш эксперимент. Вы также можете настроить таргетинг на подмножество пользователей для участия в вашем эксперименте, выбрав параметры, которые включают следующее:
- Версия: Одна или несколько версий вашего приложения.
- Аудитория пользователей: Analytics аудитории, используемые для таргетинга пользователей, которые могут быть включены в эксперимент.
- Свойство пользователя: одно или несколько свойств пользователя Analytics для выбора пользователей, которые могут быть включены в эксперимент.
- Страна/регион: Одна или несколько стран или регионов для выбора пользователей, которые могут быть включены в эксперимент.
- Язык устройства: один или несколько языков и локалей, используемых для выбора пользователей, которые могут быть включены в эксперимент.
- Первое открытие: таргетинг пользователей на основе того, когда они впервые открыли ваше приложение.
- Последнее взаимодействие с приложением: таргетинг пользователей на основе последнего времени их взаимодействия с вашим приложением.
Установите процент целевых пользователей: выберите процент пользователей вашего приложения, соответствующий критериям, заданным в разделе «Целевые пользователи» , который вы хотите равномерно разделить между базовым значением и одним или несколькими вариантами в вашем эксперименте. Это может быть любой процент от 0,01% до 100%. Проценты случайным образом переназначаются пользователям для каждого эксперимента, включая дублированные эксперименты.
В разделе Variants введите сообщение для отправки в базовую группу в поле Enter message text . Чтобы не отправлять сообщение в базовую группу, оставьте это поле пустым.
(необязательно) Чтобы добавить более одного варианта в ваш эксперимент, нажмите Добавить вариант . По умолчанию эксперименты имеют одну базовую линию и один вариант.
(необязательно) Введите название для каждого варианта в вашем эксперименте, чтобы заменить названия Вариант A , Вариант B и т. д.
Определите целевую метрику для вашего эксперимента, которая будет использоваться при оценке вариантов эксперимента вместе с любыми желаемыми дополнительными метриками из раскрывающегося списка. Эти метрики включают встроенные цели (вовлеченность, покупки, доход, удержание и т. д.), события конверсии Analytics и другие события Analytics .
Выберите варианты для вашего сообщения:
- Дата доставки: выберите «Отправить сейчас» , чтобы запустить эксперимент немедленно после сохранения, или «Запланировано» , чтобы указать время запуска эксперимента в будущем.
- Дополнительные параметры: Чтобы выбрать дополнительные параметры для всех уведомлений, включенных в ваш эксперимент, разверните Дополнительные параметры , а затем измените любой из перечисленных параметров сообщений.
Нажмите «Обзор» , чтобы сохранить эксперимент.
Вам разрешено проводить до 300 экспериментов на проект, из которых до 24 могут быть запущены, а остальные — черновыми или завершенными.
Проверьте свой эксперимент на тестовом устройстве
Для каждой установки Firebase вы можете получить связанный с ней токен регистрации FCM . Вы можете использовать этот токен для тестирования определенных вариантов эксперимента на тестовом устройстве с установленным приложением. Чтобы проверить ваш эксперимент на тестовом устройстве, выполните следующие действия:
- Получите регистрационный токен 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)" } }
Objective-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
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<std::string>& future) { if (future.status() == kFutureStatusComplete && future.error() == firebase::installations::kErrorNone) { printf("Installations Auth Token %s\n", future.result()->c_str()); } });
Единство
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)); } });
- На панели навигации консоли Firebase нажмите A/B-тестирование .
- Нажмите «Черновик» , наведите курсор на свой эксперимент, щелкните контекстное меню ( more_vert ), а затем нажмите «Управление тестовыми устройствами».
- Введите токен FCM для тестового устройства и выберите вариант эксперимента для отправки на это тестовое устройство.
- Запустите приложение и убедитесь, что выбранный вариант принимается на тестовом устройстве.
Управляйте своим экспериментом
Независимо от того, создаете ли вы эксперимент с помощью Remote Config , Notifications Composer или Firebase In-App Messaging , вы можете проверить и запустить свой эксперимент, отслеживать его ход и увеличивать количество пользователей, включенных в текущий эксперимент.
Когда ваш эксперимент будет завершен, вы можете записать настройки, используемые победившим вариантом, а затем распространить эти настройки на всех пользователей. Или вы можете запустить еще один эксперимент.
Начать эксперимент
- В разделе «Взаимодействие» навигационного меню консоли Firebase нажмите A/B Testing .
- Нажмите «Черновик» , а затем нажмите на название вашего эксперимента.
- Чтобы убедиться, что в вашем приложении есть пользователи, которые будут включены в ваш эксперимент, разверните сведения о проекте и проверьте наличие числа больше 0% в разделе «Таргетинг и распространение» (например, 1% пользователей, соответствующих критериям ).
- Чтобы изменить эксперимент, нажмите «Изменить» .
- Чтобы начать эксперимент, нажмите Начать эксперимент . Вы можете запустить до 24 экспериментов на проект одновременно.
Мониторинг эксперимента
По прошествии некоторого времени после начала эксперимента вы можете проверить его ход и посмотреть, как выглядят результаты для пользователей, которые уже приняли в нем участие.
- В разделе «Взаимодействие» навигационного меню консоли Firebase нажмите A/B Testing .
Нажмите Running , а затем нажмите или найдите название вашего эксперимента. На этой странице вы можете просмотреть различные наблюдаемые и смоделированные статистические данные о вашем запущенном эксперименте, включая следующее:
- % разницы от базовой линии : Мера улучшения метрики для данного варианта по сравнению с базовой линией. Рассчитывается путем сравнения диапазона значений для варианта с диапазоном значений для базовой линии.
- Вероятность превзойти базовый уровень : расчетная вероятность того, что данный вариант превзойдет базовый уровень для выбранной метрики.
- observed_metric per user : на основе результатов эксперимента это прогнозируемый диапазон, в который со временем попадет значение метрики.
- Total observed_metric : Наблюдаемое кумулятивное значение для базовой линии или варианта. Значение используется для измерения того, насколько хорошо работает каждый экспериментальный вариант, и используется для расчета Improvement , Value range , Probability to beat baseline , and Probability to be the best variant . В зависимости от измеряемой метрики этот столбец может быть назван "Duration per user," "Revenue per user," "Retention rate," или "Conversion rate".
После того, как ваш эксперимент продлится некоторое время (не менее 7 дней для FCM и In-App Messaging или 14 дней для Remote Config ), данные на этой странице покажут, какой вариант, если таковой имеется, является «лидером». Некоторые измерения сопровождаются столбчатой диаграммой, которая представляет данные в визуальном формате.
Проведите эксперимент для всех пользователей
После того, как эксперимент продлится достаточно долго, и у вас появится «лидер» или выигрышный вариант для вашей целевой метрики, вы можете выпустить эксперимент для 100% пользователей. Это позволяет вам выбрать вариант для публикации для всех пользователей в дальнейшем. Даже если ваш эксперимент не создал явного победителя, вы все равно можете выбрать выпустить вариант для всех своих пользователей.
- В разделе «Взаимодействие» навигационного меню консоли Firebase нажмите A/B Testing .
- Нажмите «Завершено» или «Выполняется» , выберите эксперимент, который вы хотите запустить для всех пользователей, нажмите контекстное меню ( ) «Развернуть вариант» .
Распространите свой эксперимент на всех пользователей, выполнив одно из следующих действий:
- Для эксперимента, в котором используется компоновщик уведомлений , используйте диалоговое окно « Развернуть сообщение» , чтобы отправить сообщение оставшимся целевым пользователям, которые не участвовали в эксперименте.
- Для эксперимента Remote Config выберите вариант, чтобы определить, какие значения параметров Remote Config следует обновить. Критерии таргетинга, определенные при создании эксперимента, добавляются в качестве нового условия в ваш шаблон, чтобы гарантировать, что развертывание затронет только пользователей, на которых нацелен эксперимент. После нажатия кнопки Review в Remote Config для просмотра изменений нажмите кнопку Publish changes , чтобы завершить развертывание.
- Для эксперимента In-App Messaging используйте диалоговое окно, чтобы определить, какой вариант необходимо развернуть как отдельную кампанию In-App Messaging . После выбора вы будете перенаправлены на экран создания FIAM для внесения любых изменений (если требуется) перед публикацией.
Расширить эксперимент
Если вы обнаружите, что эксперимент не привлекает достаточного количества пользователей для A/B Testing чтобы объявить лидера, вы можете расширить распространение своего эксперимента, чтобы охватить больший процент пользовательской базы приложения.
- В разделе «Взаимодействие» навигационного меню консоли Firebase нажмите A/B Testing .
- Выберите текущий эксперимент, который вы хотите отредактировать.
- В Обзоре эксперимента щелкните контекстное меню ( ), а затем щелкните Изменить запущенный эксперимент .
- В диалоговом окне «Нацеливание» отображается опция увеличения процента пользователей, участвующих в текущем эксперименте. Выберите число, превышающее текущий процент, и нажмите «Опубликовать» . Эксперимент будет распространен на указанный вами процент пользователей.
Дублировать или остановить эксперимент
- В разделе «Взаимодействие» навигационного меню консоли Firebase нажмите A/B Testing .
- Нажмите «Завершено» или «Выполняется» , наведите указатель мыши на свой эксперимент, щелкните контекстное меню ( ), а затем нажмите «Дублировать эксперимент» или «Остановить эксперимент» .
Ориентация на пользователя
Вы можете выбрать пользователей, которых хотите включить в свой эксперимент, используя следующие критерии таргетинга пользователей.
Критерий таргетинга | Оператор(ы) | Ценности) | Примечание |
---|---|---|---|
Версия | содержит, не содержит, точно совпадает, содержит регулярное выражение | Введите значение для одной или нескольких версий приложения, которые вы хотите включить в эксперимент. | При использовании любого из операторов «содержит» , «не содержит» или «точно соответствует » можно указать список значений, разделенных запятыми. При использовании оператора contains regex вы можете создавать регулярные выражения в формате RE2 . Ваше регулярное выражение может соответствовать всей или части целевой строки версии. Вы также можете использовать якоря ^ и $ для соответствия началу, концу или всей целевой строке. |
Аудитория(и) пользователей | включает в себя все, включает в себя по крайней мере одно из, не включает в себя все, не включает в себя по крайней мере один из | Выберите одну или несколько аудиторий Analytics , чтобы охватить пользователей, которые могут быть включены в ваш эксперимент. | Некоторые эксперименты, нацеленные на аудитории Google Analytics могут потребовать несколько дней для накопления данных, поскольку они подвержены задержке обработки данных Analytics . Вы, скорее всего, столкнетесь с этой задержкой с новыми пользователями, которые обычно регистрируются в квалификационные аудитории через 24–48 часов после создания, или для недавно созданных аудиторий . |
Собственность пользователя | Для текста: содержит, не содержит, точно совпадает, содержит регулярное выражение Для чисел: <, ≤, =, ≥, > | Свойство пользователя Analytics используется для выбора пользователей, которые могут быть включены в эксперимент, с рядом вариантов выбора значений свойств пользователя. На клиенте можно задать только строковые значения для свойств пользователя. Для условий, использующих числовые операторы, служба Remote Config преобразует значение соответствующего свойства пользователя в целое число/число с плавающей точкой. | При использовании оператора contains regex вы можете создавать регулярные выражения в формате RE2 . Ваше регулярное выражение может соответствовать всей или части целевой строки версии. Вы также можете использовать якоря ^ и $ для соответствия началу, концу или всей целевой строке. |
Страна/регион | Н/Д | Одна или несколько стран или регионов, используемых для отбора пользователей, которые могут быть включены в эксперимент. | |
Языки | Н/Д | Один или несколько языков и локалей, используемых для выбора пользователей, которые могут быть включены в эксперимент. | |
Первый открытый | Больше, чем Меньше, чем Между | Таргетинг пользователей на основе времени первого открытия ими вашего приложения (указывается в днях). | |
Последнее использование приложения | Больше, чем Меньше, чем Между | Таргетинг пользователей на основе времени их последнего взаимодействия с вашим приложением, указанного в днях. |
Метрики A/B Testing
При создании эксперимента вы выбираете основную или целевую метрику, которая используется для определения победившего варианта. Вам также следует отслеживать другие метрики, чтобы лучше понять эффективность каждого варианта эксперимента и отслеживать важные тенденции, которые могут различаться для каждого варианта, например, удержание пользователей, стабильность приложения и доход от покупок в приложении. В своем эксперименте вы можете отслеживать до пяти нецелевых метрик.
Например, предположим, что вы добавили новые покупки в приложении и хотите сравнить эффективность двух разных сообщений «подталкивания». В этом случае вы можете решить установить доход от покупки в качестве целевой метрики, поскольку вы хотите, чтобы выигрышный вариант представлял уведомление, которое привело к наибольшему доходу от покупки в приложении. И поскольку вы также хотите отслеживать, какой вариант привел к большему количеству будущих конверсий и удержанию пользователей, вы можете добавить следующее в Другие метрики для отслеживания :- Расчетный общий доход , чтобы увидеть, как ваш совокупный доход от покупок в приложении и рекламы отличается в двух вариантах
- Удержание (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 или более дней после последнего использования. |
первый_открытый | Событие Analytics , которое срабатывает, когда пользователь впервые открывает приложение после его установки или переустановки. Используется как часть воронки конверсии. |
Другие показатели
Метрическая | Описание |
---|---|
уведомление_отклонить | Событие Analytics , которое срабатывает при отклонении уведомления, отправленного составителем уведомлений (только для Android). |
уведомление_получить | Событие Analytics , которое срабатывает при получении уведомления, отправленного составителем уведомлений, когда приложение находится в фоновом режиме (только для Android). |
os_update | Событие Analytics , которое отслеживает, когда операционная система устройства обновляется до новой версии. Чтобы узнать больше, см. Автоматически собираемые события . |
экран_вид | Событие Analytics , отслеживающее просмотренные в вашем приложении экраны. Чтобы узнать больше, см. раздел Track Screenviews . |
начало_сеанса | Событие 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 .
Для начала выполните следующие действия, как описано в этом руководстве:
- Включите экспорт BigQuery для Google Analytics в консоли Firebase
- Доступ к данным A/B Testing с помощью BigQuery
- Изучите примеры запросов
Включите экспорт BigQuery для Google Analytics в консоли Firebase
Если вы используете план Spark, вы можете использовать песочницу BigQuery для доступа к BigQuery бесплатно, в соответствии с ограничениями песочницы . Для получения дополнительной информации см. Цены и песочница BigQuery .
Сначала убедитесь, что вы экспортируете данные Analytics в BigQuery :
- Откройте вкладку «Интеграции» , доступ к которой можно получить с помощью > «Настройки проекта» в консоли Firebase .
- Если вы уже используете BigQuery с другими службами Firebase, нажмите Manage . В противном случае нажмите Link .
- Ознакомьтесь с разделом «Связывание 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 property ID : это ваш 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 . Следующий оператор BigQuery SQL извлекает варианты эксперимента, количество уникальных пользователей в каждом варианте и суммирует общий доход от событий 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 . Этот пример запроса возвращает название эксперимента, названия вариантов (включая Baseline), названия событий и количество событий.
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