Когда вы используете Firebase Remote Config для развертывания настроек приложения с активной пользовательской базой, вы хотите убедиться, что все сделано правильно. Вы можете использовать эксперименты A/B Testing , чтобы лучше определить следующее:
- Лучший способ реализовать функцию для оптимизации взаимодействия с пользователем. Слишком часто разработчики приложений не узнают, что их пользователям не нравится новая функция или обновленный пользовательский интерфейс, пока рейтинг их приложения в магазине приложений не снизится. A/B-тестирование может помочь определить, нравятся ли вашим пользователям новые варианты функций или они предпочитают приложение в том виде, в котором оно существует. Кроме того, сохранение большинства ваших пользователей в базовой группе гарантирует, что большая часть вашей пользовательской базы сможет продолжать использовать ваше приложение без каких-либо изменений в его поведении или внешнем виде до завершения эксперимента.
- Лучший способ оптимизировать пользовательский опыт для достижения бизнес-целей. Иногда вы вносите изменения в продукт, чтобы максимизировать такие показатели, как доход или удержание. С помощью A/B-тестирования вы устанавливаете свою бизнес-цель, а Firebase выполняет статистический анализ, чтобы определить, превосходит ли вариант базовый уровень для выбранной вами цели.
Чтобы провести A/B-тестирование вариантов функций с базовым уровнем, выполните следующие действия:
- Создайте свой эксперимент.
- Проверьте свой эксперимент на тестовом устройстве.
- Управляйте своим экспериментом.
Создать эксперимент
Эксперимент Remote Config позволяет оценить несколько вариантов одного или нескольких параметров Remote Config .
Войдите в консоль Firebase и убедитесь, что Google Analytics включен в вашем проекте, чтобы эксперимент имел доступ к данным Analytics .
Если вы не включили Google Analytics при создании проекта, вы можете включить его на вкладке «Интеграции» , доступ к которой можно получить, выбрав > «Настройки проекта» в консоли Firebase .
В разделе «Взаимодействие» навигационного меню консоли Firebase нажмите A/B Testing .
Нажмите «Создать эксперимент» , а затем выберите Remote Config когда будет предложено выбрать службу, с которой вы хотите поэкспериментировать.
Введите имя и (необязательно) описание вашего эксперимента и нажмите «Далее» .
Заполните поля «Таргетинг» , сначала выбрав приложение, в котором используется ваш эксперимент. Вы также можете настроить таргетинг на участие в эксперименте группы пользователей, нажав и , а затем выбрав параметры из следующего списка:
- Версия: одна или несколько версий вашего приложения.
- Номер сборки: код версии приложения.
- Языки: один или несколько языков и локалей, используемых для выбора пользователей, которые могут быть включены в эксперимент.
- Страна/регион: одна или несколько стран или регионов для выбора пользователей, которых следует включить в эксперимент.
- Аудитория пользователей: аудитории Analytics , используемые для таргетинга на пользователей, которые могут быть включены в эксперимент.
- Свойство пользователя: одно или несколько свойств пользователя Analytics для выбора пользователей, которые могут быть включены в эксперимент.
Первое открытие: таргетинг на пользователей на основе того, когда они впервые открыли ваше приложение.
Таргетинг на пользователей по времени первого открытия доступен после выбора приложения для Android или iOS. Он поддерживается следующими версиями SDK Remote Config : SDK для платформ Apple v9.0.0+ и Android SDK v21.1.1+ ( Firebase BoM v30.3.0+).
Analytics также должна быть включена на клиенте во время первого открытого события.
Установите процент целевых пользователей. Введите процент пользовательской базы вашего приложения, соответствующей критериям, установленным в разделе «Целевые пользователи» , которую вы хотите равномерно разделить между базовым показателем и одним или несколькими вариантами в вашем эксперименте. Это может быть любой процент от 0,01% до 100%. Пользователи случайным образом назначаются для каждого эксперимента, включая дублированные эксперименты.
При необходимости установите событие активации, чтобы гарантировать, что в вашем эксперименте будут учитываться только данные пользователей, которые первыми инициировали какое-либо событие Analytics . Обратите внимание, что все пользователи, соответствующие вашим параметрам таргетинга, получат экспериментальные значения Remote Config , но в результаты эксперимента будут включены только те пользователи, которые запускают событие активации.
Чтобы эксперимент был действительным, убедитесь, что выбранное вами событие происходит после того, как ваше приложение активирует полученные значения конфигурации. Кроме того, нельзя использовать следующие события, поскольку они всегда происходят до активации извлеченных значений:
-
app_install
-
app_remove
-
app_update
-
dynamic_link_first_open
-
В разделе « Цели эксперимента» выберите основной показатель для отслеживания и добавьте из списка дополнительные показатели, которые хотите отслеживать. К ним относятся встроенные цели (покупки, доход, удержание, бесперебойная работа пользователей и т. д.), события конверсий Analytics и другие события Analytics . По завершении нажмите «Далее» .
В разделе «Варианты» выберите базовый вариант и хотя бы один вариант эксперимента. Используйте список «Выбрать или создать новый» , чтобы добавить один или несколько параметров для экспериментов. Вы можете создать параметр, который ранее не использовался в консоли Firebase , но он должен существовать в вашем приложении, чтобы иметь какой-либо эффект. Вы можете повторить этот шаг, чтобы добавить в эксперимент несколько параметров.
(необязательно) Чтобы добавить в эксперимент несколько вариантов, нажмите «Добавить еще один вариант» .
Измените один или несколько параметров для конкретных вариантов. Любые неизмененные параметры одинаковы для пользователей, не включенных в эксперимент.
Разверните «Вес вариантов» , чтобы просмотреть или изменить вес варианта для эксперимента. По умолчанию каждый вариант имеет одинаковый вес. Обратите внимание, что неравномерные веса могут увеличить время сбора данных, и веса не могут быть изменены после начала эксперимента .
Нажмите «Просмотр» , чтобы сохранить эксперимент.
Вам разрешено проводить до 300 экспериментов в каждом проекте, из которых может состоять до 24 текущих экспериментов, а остальные могут быть черновыми или завершенными.
Проверьте свой эксперимент на тестовом устройстве
Для каждой установки Firebase вы можете получить связанный с ней токен аутентификации установки. Вы можете использовать этот токен для тестирования конкретных вариантов эксперимента на тестовом устройстве, на котором установлено ваше приложение. Чтобы проверить свой эксперимент на тестовом устройстве, выполните следующие действия:
- Получите токен аутентификации установки следующим образом:
Быстрый
do { let result = try await Installations.installations() .authTokenForcingRefresh(true) print("Installation auth token: \(result.authToken)") } catch { print("Error fetching token: \(error)") }
Цель-C
[[FIRInstallations installations] authTokenForcingRefresh:true completion:^(FIRInstallationsAuthTokenResult *result, NSError *error) { if (error != nil) { NSLog(@"Error fetching Installation token %@", error); return; } NSLog(@"Installation auth token: %@", [result authToken]); }];
Java
FirebaseInstallations.getInstance().getToken(/* forceRefresh */true) .addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() { @Override public void onComplete(@NonNull Task<InstallationTokenResult> task) { if (task.isSuccessful() && task.getResult() != null) { Log.d("Installations", "Installation auth token: " + task.getResult().getToken()); } else { Log.e("Installations", "Unable to get Installation auth token"); } } });
Kotlin
val forceRefresh = true FirebaseInstallations.getInstance().getToken(forceRefresh) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d("Installations", "Installation auth token: " + task.result?.token) } else { Log.e("Installations", "Unable to get Installation auth token") } }
С++
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.Installations.FirebaseInstallations.DefaultInstance.GetTokenAsync(forceRefresh: true).ContinueWith( task => { if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) { UnityEngine.Debug.Log(System.String.Format("Installations token {0}", task.Result)); } });
- На панели навигации консоли Firebase нажмите A/B-тестирование .
- Нажмите «Черновик» (и/или «Выполнение экспериментов удаленной настройки»), наведите указатель мыши на свой эксперимент, щелкните контекстное меню ( more_vert ), а затем нажмите «Управление тестовыми устройствами» .
- Введите токен аутентификации установки для тестового устройства и выберите вариант эксперимента для отправки на это тестовое устройство.
- Запустите приложение и подтвердите, что выбранный вариант получен на тестовом устройстве.
Дополнительную информацию об установках Firebase см. в разделе «Управление установками Firebase» .
Управляйте своим экспериментом
Независимо от того, создаете ли вы эксперимент с помощью Remote Config , Composer Notifications или Firebase In-App Messaging , вы можете затем проверить и запустить эксперимент, отслеживать его во время его выполнения и увеличивать количество пользователей, включенных в текущий эксперимент.
Когда ваш эксперимент будет завершен, вы можете принять к сведению настройки, используемые победившим вариантом, а затем распространить эти настройки на всех пользователей. Или вы можете провести еще один эксперимент.
Начать эксперимент
- В разделе «Взаимодействие» навигационного меню консоли Firebase нажмите A/B Testing .
- Нажмите «Черновик» , а затем нажмите на название эксперимента.
- Чтобы убедиться, что в вашем приложении есть пользователи, которые будут включены в ваш эксперимент, разверните сведения о черновике и проверьте, чтобы в разделе «Таргетинг и распространение» было число больше 0 % (например, 1 % пользователей, соответствующих критериям ).
- Чтобы изменить эксперимент, нажмите «Изменить» .
- Чтобы начать эксперимент, нажмите « Начать эксперимент» . Одновременно можно проводить до 24 экспериментов в каждом проекте.
Мониторинг эксперимента
После того, как эксперимент продлится некоторое время, вы сможете следить за его ходом и посмотреть, как выглядят ваши результаты для пользователей, которые уже участвовали в вашем эксперименте.
- В разделе «Взаимодействие» навигационного меню консоли Firebase нажмите A/B Testing .
Нажмите «Выполнение» , а затем нажмите или найдите название своего эксперимента. На этой странице вы можете просмотреть различные наблюдаемые и смоделированные статистические данные о проводимом эксперименте, в том числе следующие:
- % разницы от базового уровня : мера улучшения показателя для данного варианта по сравнению с базовым уровнем. Рассчитывается путем сравнения диапазона значений варианта с диапазоном значений базового плана.
- Вероятность превышения базового уровня : расчетная вероятность того, что данный вариант превысит базовый уровень для выбранного показателя.
- observed_metric для каждого пользователя : на основе результатов эксперимента это прогнозируемый диапазон, в который значение метрики попадет с течением времени.
- Общая observed_metric : наблюдаемое совокупное значение для базового уровня или варианта. Значение используется для измерения эффективности каждого варианта эксперимента и расчета улучшения , диапазона значений , вероятности достижения базового уровня и вероятности быть лучшим вариантом . В зависимости от измеряемого показателя этот столбец может быть помечен как «Продолжительность на пользователя», «Доход на пользователя», «Коэффициент удержания» или «Коэффициент конверсии».
После того, как ваш эксперимент продлится некоторое время (не менее 7 дней для FCM и In-App Messaging или 14 дней для Remote Config ), данные на этой странице покажут, какой вариант, если таковой имеется, является «лидером». Некоторые измерения сопровождаются гистограммой, представляющей данные в визуальном формате.
Проведите эксперимент для всех пользователей
После того, как эксперимент продлится достаточно долго и у вас появится «лидер» или выигрышный вариант для вашей целевой метрики, вы можете опубликовать эксперимент для 100 % пользователей. Это позволит вам выбрать вариант для публикации для всех пользователей в дальнейшем. Даже если ваш эксперимент не выявил явного победителя, вы все равно можете опубликовать вариант для всех своих пользователей.
- В разделе «Взаимодействие» навигационного меню консоли Firebase нажмите A/B Testing .
- Нажмите «Завершено» или «Выполняется» , выберите эксперимент, который вы хотите опубликовать для всех пользователей, нажмите контекстное меню ( ) «Развернуть вариант» .
Распространите эксперимент для всех пользователей, выполнив одно из следующих действий:
- Для эксперимента, в котором используется композитор уведомлений , используйте диалоговое окно « Развертывание сообщения» , чтобы отправить сообщение остальным целевым пользователям, которые не участвовали в эксперименте.
- Для эксперимента Remote Config выберите вариант, чтобы определить, какие значения параметров Remote Config нужно обновить. Критерии таргетинга, определенные при создании эксперимента, добавляются в качестве нового условия в ваш шаблон, чтобы гарантировать, что внедрение затронет только пользователей, на которых направлен эксперимент. После нажатия кнопки «Просмотр» в Remote Config для просмотра изменений нажмите «Опубликовать изменения» , чтобы завершить развертывание.
- Для эксперимента 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 часов после создания, или с недавно созданными аудиториями . Для Remote Config это означает, что даже если пользователь технически соответствует требованиям для аудитории, если Analytics еще не добавила пользователя в аудиторию при выполнении `fetchAndActivate()`, пользователь не будет включен в эксперимент. | |
Свойство пользователя | Для текста: содержит, не содержит, точно совпадает, содержит регулярное выражение Для чисел: <, ≤, =, ≥, > | Свойство пользователя Analytics используется для выбора пользователей, которые могут быть включены в эксперимент, с рядом параметров для выбора значений свойств пользователя. На клиенте вы можете установить только строковые значения для свойств пользователя. Для условий, в которых используются числовые операторы, служба Remote Config преобразует значение соответствующего свойства пользователя в целое число или число с плавающей запятой. | Используя оператор contains regex , вы можете создавать регулярные выражения в формате RE2 . Ваше регулярное выражение может соответствовать всей строке целевой версии или ее части. Вы также можете использовать привязки ^ и $ для соответствия началу, концу или всей целевой строке. | |
Страна/регион | Н/Д | Одна или несколько стран или регионов, используемых для выбора пользователей, которые могут быть включены в эксперимент. | ||
Языки | Н/Д | Один или несколько языков и локалей, используемых для выбора пользователей, которые могут быть включены в эксперимент. | ||
Первое открытие | До После | Таргетируйте пользователей на основе того, когда они впервые открывают ваше приложение:
| Таргетинг на пользователей по первому открытию доступен после выбора приложения для Android или iOS. В настоящее время он поддерживается следующими версиями SDK Remote Config : SDK для платформ Apple v9.0.0+ и Android SDK v21.1.1+ ( Firebase BoM v30.3.0+). Analytics также должна быть включена на клиенте во время первого открытого события. |
Метрики A/B Testing
Создавая эксперимент, вы выбираете основную или целевую метрику, которая используется для определения выигрышного варианта. Вам также следует отслеживать другие показатели, которые помогут вам лучше понять эффективность каждого варианта эксперимента и отслеживать важные тенденции, которые могут различаться для каждого варианта, например удержание пользователей, стабильность приложения и доход от покупок в приложении. В ходе эксперимента вы можете отслеживать до пяти нецелевых показателей.
Например, предположим, что вы используете Remote Config для запуска двух разных игровых процессов в своем приложении и хотите оптимизировать покупки в приложении и доходы от рекламы, но вы также хотите отслеживать стабильность и удержание пользователей каждого варианта. В этом случае вы можете рассмотреть возможность выбора «Оценочный общий доход» в качестве целевого показателя, поскольку он включает в себя доход от покупок в приложении и доход от рекламы, а затем в разделе «Другие показатели для отслеживания » вы можете добавить следующее:
- Чтобы отслеживать ежедневное и еженедельное удержание пользователей, добавьте «Удержание (2–3 дня)» и «Удержание (4–7 дней)» .
- Чтобы сравнить стабильность двух игровых процессов, добавьте пользователей без сбоев .
- Чтобы просмотреть более подробные сведения о каждом типе дохода, добавьте Доход от покупок и Расчетный доход от рекламы .
В следующих таблицах представлена подробная информация о том, как рассчитываются показатели цели и другие показатели.
Показатели цели
Метрика | Описание |
---|---|
Пользователи без сбоев | Процент пользователей, которые не столкнулись с ошибками в вашем приложении, обнаруженными Firebase Crashlytics SDK в ходе эксперимента. |
Предполагаемый доход от рекламы | Ориентировочный доход от рекламы. |
Предполагаемый общий доход | Совокупная стоимость покупки и расчетный доход от рекламы. |
Доход от покупки | Суммарное значение для всех событий purchase и in_app_purchase . |
Хранение (1 день) | Количество пользователей, которые ежедневно возвращаются в ваше приложение. |
Удержание (2-3 дня) | Количество пользователей, которые возвращаются в ваше приложение в течение 2–3 дней. |
Удержание (4-7 дней) | Количество пользователей, которые возвращаются в ваше приложение в течение 4–7 дней. |
Удержание (8-14 дней) | Количество пользователей, которые возвращаются в ваше приложение в течение 8–14 дней. |
Хранение (15+ дней) | Количество пользователей, которые возвращаются в ваше приложение через 15 или более дней после последнего его использования. |
first_open | Событие Analytics , которое срабатывает, когда пользователь впервые открывает приложение после его установки или переустановки. Используется как часть воронки конверсии. |
Другие показатели
Метрика | Описание |
---|---|
уведомление_отклонить | Событие Analytics , которое срабатывает, когда уведомление, отправленное композитором уведомлений, отклоняется (только для Android). |
уведомление_получить | Событие Analytics , которое срабатывает при получении уведомления, отправленного композитором уведомлений, когда приложение находится в фоновом режиме (только для Android). |
os_update | Событие Analytics , которое отслеживает обновление операционной системы устройства до новой версии. Дополнительные сведения см. в разделе Автоматически собираемые события . |
screen_view | Событие Analytics , которое отслеживает экраны, просматриваемые в вашем приложении. Подробнее см. в разделе Отслеживание просмотров экрана . |
session_start | Событие Analytics , которое подсчитывает сеансы пользователей в вашем приложении. Дополнительные сведения см. в разделе Автоматически собираемые события . |
Экспорт данных BigQuery
Помимо просмотра данных экспериментов A/B 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
Когда вы используете Firebase Remote Config для развертывания настроек приложения с активной пользовательской базой, вы хотите убедиться, что все сделано правильно. Вы можете использовать эксперименты A/B Testing , чтобы лучше определить следующее:
- Лучший способ реализовать функцию для оптимизации взаимодействия с пользователем. Слишком часто разработчики приложений не узнают, что их пользователям не нравится новая функция или обновленный пользовательский интерфейс, пока рейтинг их приложения в магазине приложений не снизится. A/B-тестирование может помочь определить, нравятся ли вашим пользователям новые варианты функций или они предпочитают приложение в том виде, в котором оно существует. Кроме того, сохранение большинства ваших пользователей в базовой группе гарантирует, что большая часть вашей пользовательской базы сможет продолжать использовать ваше приложение без каких-либо изменений в его поведении или внешнем виде до завершения эксперимента.
- Лучший способ оптимизировать пользовательский опыт для достижения бизнес-целей. Иногда вы вносите изменения в продукт, чтобы максимизировать такие показатели, как доход или удержание. С помощью A/B-тестирования вы устанавливаете свою бизнес-цель, а Firebase выполняет статистический анализ, чтобы определить, превосходит ли вариант базовый уровень для выбранной вами цели.
Чтобы провести A/B-тестирование вариантов функций с базовым уровнем, выполните следующие действия:
- Создайте свой эксперимент.
- Проверьте свой эксперимент на тестовом устройстве.
- Управляйте своим экспериментом.
Создать эксперимент
Эксперимент Remote Config позволяет оценить несколько вариантов одного или нескольких параметров Remote Config .
Войдите в консоль Firebase и убедитесь, что Google Analytics включен в вашем проекте, чтобы эксперимент имел доступ к данным Analytics .
Если вы не включили Google Analytics при создании проекта, вы можете включить его на вкладке «Интеграции» , доступ к которой можно получить, выбрав > «Настройки проекта» в консоли Firebase .
В разделе «Взаимодействие» навигационного меню консоли Firebase нажмите A/B Testing .
Нажмите «Создать эксперимент» , а затем выберите Remote Config когда будет предложено выбрать службу, с которой вы хотите поэкспериментировать.
Введите имя и (необязательно) описание вашего эксперимента и нажмите «Далее» .
Заполните поля «Таргетинг» , сначала выбрав приложение, в котором используется ваш эксперимент. Вы также можете настроить таргетинг на участие в эксперименте группы пользователей, нажав и , а затем выбрав параметры из следующего списка:
- Версия: одна или несколько версий вашего приложения.
- Номер сборки: код версии приложения.
- Языки: один или несколько языков и локалей, используемых для выбора пользователей, которые могут быть включены в эксперимент.
- Страна/регион: одна или несколько стран или регионов для выбора пользователей, которых следует включить в эксперимент.
- Аудитория пользователей: аудитории Analytics , используемые для таргетинга на пользователей, которые могут быть включены в эксперимент.
- Свойство пользователя: одно или несколько свойств пользователя Analytics для выбора пользователей, которые могут быть включены в эксперимент.
Первое открытие: таргетинг на пользователей на основе того, когда они впервые открыли ваше приложение.
Таргетинг на пользователей по времени первого открытия доступен после выбора приложения для Android или iOS. Он поддерживается следующими версиями SDK Remote Config : SDK для платформ Apple v9.0.0+ и Android SDK v21.1.1+ ( Firebase BoM v30.3.0+).
Analytics также должна быть включена на клиенте во время первого открытого события.
Установите процент целевых пользователей. Введите процент пользовательской базы вашего приложения, соответствующей критериям, установленным в разделе «Целевые пользователи» , которую вы хотите равномерно разделить между базовым показателем и одним или несколькими вариантами в вашем эксперименте. Это может быть любой процент от 0,01% до 100%. Пользователи случайным образом назначаются для каждого эксперимента, включая дублированные эксперименты.
При необходимости установите событие активации, чтобы гарантировать, что в вашем эксперименте будут учитываться только данные пользователей, которые первыми инициировали какое-либо событие Analytics . Обратите внимание, что все пользователи, соответствующие вашим параметрам таргетинга, получат экспериментальные значения Remote Config , но в результаты эксперимента будут включены только те пользователи, которые запускают событие активации.
Чтобы эксперимент был действительным, убедитесь, что выбранное вами событие происходит после того, как ваше приложение активирует полученные значения конфигурации. Кроме того, нельзя использовать следующие события, поскольку они всегда происходят до активации извлеченных значений:
-
app_install
-
app_remove
-
app_update
-
dynamic_link_first_open
-
В разделе « Цели эксперимента» выберите основной показатель для отслеживания и добавьте из списка дополнительные показатели, которые хотите отслеживать. К ним относятся встроенные цели (покупки, доход, удержание, бесперебойная работа пользователей и т. д.), события конверсий Analytics и другие события Analytics . По завершении нажмите «Далее» .
В разделе «Варианты» выберите базовый вариант и хотя бы один вариант эксперимента. Используйте список «Выбрать или создать новый» , чтобы добавить один или несколько параметров для экспериментов. Вы можете создать параметр, который ранее не использовался в консоли Firebase , но он должен существовать в вашем приложении, чтобы иметь какой-либо эффект. Вы можете повторить этот шаг, чтобы добавить в эксперимент несколько параметров.
(необязательно) Чтобы добавить в эксперимент несколько вариантов, нажмите «Добавить еще один вариант» .
Измените один или несколько параметров для конкретных вариантов. Любые неизмененные параметры одинаковы для пользователей, не включенных в эксперимент.
Разверните «Вес вариантов» , чтобы просмотреть или изменить вес варианта для эксперимента. По умолчанию каждый вариант имеет одинаковый вес. Обратите внимание, что неравномерные веса могут увеличить время сбора данных, и веса не могут быть изменены после начала эксперимента .
Нажмите «Просмотр» , чтобы сохранить эксперимент.
Вам разрешено до 300 экспериментов по проекту, которые могут состоять из 24 экспериментов, а остальные в качестве проекта или завершены.
Проверить свой эксперимент на тестовом устройстве
Для каждой установки Firebase вы можете получить связанный с ней токен установки. Вы можете использовать этот токен для проверки конкретных вариантов эксперимента на тестовом устройстве с установленным приложением. Чтобы проверить свой эксперимент на тестовом устройстве, сделайте следующее:
- Получите токен установки Auth следующим образом:
Быстрый
do { let result = try await Installations.installations() .authTokenForcingRefresh(true) print("Installation auth token: \(result.authToken)") } catch { print("Error fetching token: \(error)") }
Цель-C
[[FIRInstallations installations] authTokenForcingRefresh:true completion:^(FIRInstallationsAuthTokenResult *result, NSError *error) { if (error != nil) { NSLog(@"Error fetching Installation token %@", error); return; } NSLog(@"Installation auth token: %@", [result authToken]); }];
Java
FirebaseInstallations.getInstance().getToken(/* forceRefresh */true) .addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() { @Override public void onComplete(@NonNull Task<InstallationTokenResult> task) { if (task.isSuccessful() && task.getResult() != null) { Log.d("Installations", "Installation auth token: " + task.getResult().getToken()); } else { Log.e("Installations", "Unable to get Installation auth token"); } } });
Kotlin
val forceRefresh = true FirebaseInstallations.getInstance().getToken(forceRefresh) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d("Installations", "Installation auth token: " + task.result?.token) } else { Log.e("Installations", "Unable to get Installation auth token") } }
С++
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.Installations.FirebaseInstallations.DefaultInstance.GetTokenAsync(forceRefresh: true).ContinueWith( task => { if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) { UnityEngine.Debug.Log(System.String.Format("Installations token {0}", task.Result)); } });
- На панели навигационной навигации консоли Firebase нажмите A/B -тестирование .
- Нажмите Draft (и/или запуск для удаленных конфигурационных экспериментов), наведите на эксперимент, нажмите на контекстное меню ( more_vert ), а затем нажмите «Управление тестовыми устройствами» .
- Введите токен установки Auth для тестового устройства и выберите вариант эксперимента для отправки на это тестовое устройство.
- Запустите приложение и подтвердите, что выбранный вариант получен на тестовом устройстве.
Чтобы узнать больше о установках Firebase , см. Управление установками Firebase .
Управляйте своим экспериментом
Независимо от того, создаете ли вы эксперимент с Remote Config , композитором уведомлений или Firebase In-App Messaging , вы можете затем проверить и начать эксперимент, отслеживать эксперимент во время работы, и увеличить количество пользователей, включенных в ваш эксперимент.
Когда ваш эксперимент будет проведен, вы можете принять к сведению настройки, используемые выигрышным вариантом, а затем развернуть эти настройки для всех пользователей. Или вы можете провести другой эксперимент.
Начните эксперимент
- В разделе Engage в меню навигации консоли Firebase нажмите A/B Testing .
- Нажмите на черновик , а затем нажмите на заголовок своего эксперимента.
- Чтобы подтвердить, что в вашем приложении есть пользователи, которые будут включены в ваш эксперимент, разверните детали проекта и проверьте номер более 0% в разделе таргетирования и распространения (например, 1% пользователей, соответствующих критериям ).
- Чтобы изменить свой эксперимент, нажмите «Редактировать» .
- Чтобы начать эксперимент, нажмите « Начать эксперимент» . Вы можете запустить до 24 экспериментов на проект за раз.
Следите за экспериментом
Как только эксперимент на некоторое время работает, вы можете проверить его прогресс и посмотреть, как выглядят ваши результаты для пользователей, которые до сих пор участвовали в вашем эксперименте.
- В разделе Engage в меню навигации консоли Firebase нажмите A/B Testing .
Нажмите «Запуск» , а затем нажмите или найдите название вашего эксперимента. На этой странице вы можете просмотреть различные наблюдаемые и смоделированные статистические данные о своем эксперименте, включая следующее:
- % отличия от исходной линии : мера улучшения метрики для данного варианта по сравнению с базовой линией. Рассчитано путем сравнения диапазона значений для варианта с диапазоном значений для базовой линии.
- Вероятность преодолеть базовую линию : предполагаемая вероятность того, что заданный вариант превзойдет базовую линию для выбранной метрики.
- observed_metric на пользователя : на основе результатов эксперимента это прогнозируемый диапазон, что значение метрического значения упадет с течением времени.
- Total observed_metric : наблюдаемое кумулятивное значение для базовой линии или варианта. Значение используется для измерения того, насколько хорошо выполняется каждый экспериментальный вариант, и используется для расчета улучшения , диапазона значений , вероятности преодоления базовой линии и вероятности стать лучшим вариантом . В зависимости от измеренной метрики, этот столбец может быть помечен как «продолжительность на одного пользователя», «доход на одного пользователя», «коэффициент удержания» или «коэффициент конверсии».
После того, как ваш эксперимент проходил некоторое время (не менее 7 дней для обмена сообщениями FCM и In-App Messaging или 14 дней для Remote Config ), данные на этой странице указывают, какой вариант, если таковой имеется, является «лидером». Некоторые измерения сопровождаются стержней, которая представляет данные в визуальном формате.
Разверните эксперимент для всех пользователей
После того, как эксперимент прошел достаточно долго, чтобы у вас был «лидер», или выигрышный вариант, для вашего показателя цели вы можете выпустить эксперимент 100% пользователей. Это позволяет вам выбрать вариант для публикации всем пользователям, движущимся вперед. Даже если ваш эксперимент не создал четкого победителя, вы все равно можете выпустить вариант для всех ваших пользователей.
- В разделе Engage в меню навигации консоли Firebase нажмите A/B Testing .
- Нажмите «Завершенное» или «Запуск» , нажмите на эксперимент, который вы хотите выпустить для всех пользователей, щелкните вариант Context Menu ( ).
Разверните эксперимент на всех пользователей, выполнив одно из следующих действий:
- Для эксперимента, который использует композитор уведомлений , используйте диалоговое окно « Разлистые сообщения» , чтобы отправить сообщение оставшимся целевым пользователям, которые не были частью эксперимента.
- Для Remote Config эксперимента выберите вариант, чтобы определить, какие значения параметров Remote Config для обновления. Критерии таргетирования, определенные при создании эксперимента, добавляются в виде нового условия в вашем шаблоне, чтобы убедиться, что развертывание влияет только на пользователей, нацеленных на эксперимент. После нажатия просмотра в удаленной конфигурации, чтобы просмотреть изменения, нажмите «Опубликовать изменения» , чтобы завершить развертывание.
- Для эксперимента In-App Messaging используйте диалог, чтобы определить, какой вариант должен быть развернут в качестве отдельной кампании In-App Messaging . После выбора вас перенаправлен на экран Fiam Compose, чтобы внести какие -либо изменения (если это необходимо) перед публикацией.
Расширить эксперимент
Если вы обнаружите, что эксперимент не приносит достаточно пользователей для A/B Testing чтобы объявить лидера, вы можете увеличить распространение своего эксперимента, чтобы достичь большего процента пользовательской базы приложения.
- В разделе Engage в меню навигации консоли Firebase нажмите A/B Testing .
- Выберите эксперимент, который вы хотите отредактировать.
- В обзоре эксперимента нажмите «Контекстное меню» ( ), а затем нажмите «Редактировать эксперимент» .
- Диалог таргетирования отображает возможность увеличить процент пользователей, которые находятся в эксперименте. Выберите число больше, чем текущий процент, и нажмите «Публиковать» . Эксперимент будет выдвинут до процента пользователей, которые вы указали.
Дублировать или остановить эксперимент
- В разделе Engage в меню навигации консоли Firebase нажмите A/B Testing .
- Нажмите «Завершенное» или «Запуск» , удерживайте указатель над экспериментом, нажмите «Контекстное меню» ( ), а затем нажмите Duplicate Experiment или остановите эксперимент .
Пользовательский таргетинг
Вы можете ориентироваться на пользователей, чтобы включить в свой эксперимент, используя следующие критерии нацеливания пользователя.
Критерий таргетирования | Оператор (ы) | Ценности) | Примечание | |
---|---|---|---|---|
Версия | содержит, не содержит, точно совпадает, Содержит регулярность | Введите значение для одной или нескольких версий приложений, которые вы хотите включить в эксперимент. | При использовании какого-либо из содержимого , не содержит или совпадает с именно операторами, вы можете предоставить список значений, разделяемый запятыми. При использовании оператора Regex вы можете создавать регулярные выражения в формате RE2 . Ваше регулярное выражение может соответствовать всем или части строки целевой версии. Вы также можете использовать якоря ^ и $ , чтобы соответствовать началу, конец или целевой строке. | |
Пользовательская аудитория (ы) | Включает все, Включает хотя бы один из, не включает все, не включает в себя хотя бы один из | Выберите одну или несколько Analytics аудиторий для целевых пользователей, которые могут быть включены в ваш эксперимент. | Некоторым экспериментам, которые нацелены на аудиторию Google Analytics могут потребоваться несколько дней для накопления данных, поскольку они подвергаются задержке обработки данных Analytics . Скорее всего, вы столкнетесь с этой задержкой с новыми пользователями, которые обычно зачисляются в квалифицированную аудиторию через 24-48 часов после создания или для недавно созданной аудитории . Для Remote Config это означает, что даже если пользователь технически квалифицирует аудиторию, если Analytics еще не добавила пользователя в аудиторию, когда будет выполнена `fetchAndativate ()`, пользователь не будет включен в эксперимент. | |
Пользовательское свойство | Для текста: содержит, не содержит, точно совпадает, Содержит регулярность Для чисел: <, ≤, =, ≥,> | Свойство пользователя Analytics используется для выбора пользователей, которые могут быть включены в эксперимент, с диапазоном параметров для выбора значений пользователя. На клиенте вы можете установить только строковые значения для свойств пользователя. Для условий, которые используют числовые операторы, служба Remote Config преобразует значение соответствующего свойства пользователя в целое число/float. | При использовании оператора Regex вы можете создавать регулярные выражения в формате RE2 . Ваше регулярное выражение может соответствовать всем или части строки целевой версии. Вы также можете использовать якоря ^ и $ , чтобы соответствовать началу, конец или целевой строке. | |
Страна/регион | Н/Д | Одна или несколько стран или регионов, используемых для выбора пользователей, которые могут быть включены в эксперимент. | ||
Языки | Н/Д | Один или несколько языков и локалов, используемых для выбора пользователей, которые могут быть включены в эксперимент. | ||
Первый открытый | До После | Целевые пользователи в зависимости от первого раза, когда они открывают ваше приложение:
| Пользовательский таргетинг от First Open доступен после выбора приложения Android или iOS. В настоящее время он поддерживается следующими Remote Config SDK: Apple Platforms SDK v9.0.0+ и Android SDK V21.1.1+ ( Firebase BoM V30.3.0+). Analytics также должна была быть включена на клиенту во время первого открытого события. |
A/B Testing
Когда вы создаете свой эксперимент, вы выбираете первичную или целевую метрику, которая используется для определения победного варианта. Вы также должны отслеживать другие метрики, чтобы помочь вам лучше понять производительность каждого экспериментального варианта и отслеживать важные тенденции, которые могут отличаться для каждого варианта, таких как удержание пользователей, стабильность приложений и доход за покупку в приложении. Вы можете отслеживать до пяти нецелевых метрик в вашем эксперименте.
Например, скажем, вы используете Remote Config для запуска двух разных игровых потоков в вашем приложении и хотите оптимизировать для покупок в приложении и дохода от рекламы, но вы также хотите отслеживать стабильность и удержание пользователя каждого варианта. В этом случае вы можете рассмотреть вопрос о выборе предполагаемого общего дохода в качестве показателя цели, поскольку он включает в себя доходы от покупки в приложении и доход от рекламы, а затем для отслеживания других показателей , вы можете добавить следующее:
- Чтобы отслеживать ежедневное и еженедельное удержание пользователей, добавьте удержание (2-3 дня) и удержание (4-7 дней) .
- Чтобы сравнить стабильность между двумя игровыми потоками, добавьте пользователей без сбоев .
- Чтобы увидеть более подробные представления о каждом типе дохода, добавьте доход за покупку и предполагаемый доход от рекламы .
Следующие таблицы предоставляют подробную информацию о том, как рассчитываются метрики целей и другие метрики.
Метрики цели
Показатель | Описание |
---|---|
Пользователи без сбоев | Процент пользователей, которые не столкнулись с ошибками в вашем приложении, которые были обнаружены SDK Firebase Crashlytics SDK во время эксперимента. |
Расчетный доход от рекламы | Расчетный рекламный доход. |
Расчетный общий доход | Комбинированная стоимость для покупки и оценочных доходов от рекламы. |
Покупать доход | Комбинированное значение для всех событий purchase и in_app_purchase . |
Удержание (1 день) | Количество пользователей, которые ежедневно возвращаются в ваше приложение. |
Удержание (2-3 дня) | Количество пользователей, которые возвращаются в ваше приложение в течение 2-3 дней. |
Удержание (4-7 дней) | Количество пользователей, которые возвращаются в ваше приложение в течение 4-7 дней. |
Удержание (8-14 дней) | Количество пользователей, которые возвращаются в ваше приложение в течение 8-14 дней. |
Удержание (15+ дней) | Количество пользователей, которые возвращаются в ваше приложение через 15 или более дней после того, как они в последний раз использовали его. |
First_open | Analytics событие, которое запускает, когда пользователь сначала открывает приложение после установки или переустановки. Используется как часть воронки конверсии. |
Другие метрики
Показатель | Описание |
---|---|
уведомление_dismiss | Analytics событие, которое запускает, когда уведомление, отправленное композитором уведомлений, уволено (только для Android). |
natification_receive | Analytics событие, которое запускает, когда получает уведомление, отправленное композитором уведомлений, приложение находится в фоновом режиме (только для Android). |
OS_UPDATE | Analytics событие, которое отслеживает, когда операционная система устройства обновляется до новой версии. Чтобы узнать больше, см. Автоматически собранные события . |
screen_view | Analytics событие, которое отслеживает экраны, просматриваемые в вашем приложении. Чтобы узнать больше, см . Screenview . |
session_start | Analytics событие, которое подсчитывает пользовательские сеансы в вашем приложении. Чтобы узнать больше, см. Автоматически собранные события . |
BigQuery Data Export
В дополнение к просмотру данных эксперимента 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
содержит индекс (Zero) для эксперимента.
Вы можете использовать эти свойства пользователя эксперимента для извлечения данных эксперимента. Это дает вам возможность нарезать ваш эксперимент по -разному и независимо проверять результаты 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» .
- Добавьте свой запрос. Например, запросы для запуска, см. Примеры Explore .
- Нажмите запустить .
Данные эксперимента по запросу с использованием автогенерированного запроса консоли Firebase Console
Если вы используете план пламени, страница обзора эксперимента предоставляет образец запроса, который возвращает имя эксперимента, варианты, имена событий и количество событий для эксперимента, который вы просматриваете.
Чтобы получить и запустить автоматическое запрос:
- На консоли 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 . Этот пример запроса возвращает имя эксперимента, имена вариантов (включая базовую линию), имена событий и количество событий.
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
Когда вы используете Firebase Remote Config для развертывания настройки для приложения с активной пользовательской базой, вы хотите убедиться, что вы правильно ее поняли. Вы можете использовать эксперименты A/B Testing чтобы наилучшим образом определить следующее:
- Лучший способ реализации функции для оптимизации пользовательского опыта. Слишком часто разработчики приложений не узнают, что их пользователи не любят новую функцию или обновленную пользовательскую работу, пока рейтинг их приложения в App Store не снизится. A/B тестирование может помочь измерить, любят ли ваши пользователи новые варианты функций, или они предпочитают приложение, которое оно существует. Кроме того, удержание большинства ваших пользователей в базовой группе гарантирует, что большая часть вашей пользовательской базы может продолжать использовать ваше приложение без каких -либо изменений в его поведении или внешности, пока эксперимент не завершится.
- Лучший способ оптимизировать пользовательский опыт для бизнес -цели. Иногда вы внедряете изменения продукта, чтобы максимизировать метрическую доход или удержание. При тестировании A/B вы устанавливаете свою бизнес -цель, а Firebase выполняет статистический анализ, чтобы определить, превосходит ли вариант базовый уровень для выбранной вашей цели.
К вариантам тестирования A/B с базовой линией, сделайте следующее:
- Создайте свой эксперимент.
- Проверить свой эксперимент на тестовом устройстве.
- Управляйте своим экспериментом.
Создать эксперимент
Remote Config эксперимент позволяет оценивать несколько вариантов по одному или нескольким Remote Config .
Войдите в консоль Firebase и убедитесь, что Google Analytics включена в вашем проекте, чтобы эксперимент имел доступ к данным Analytics .
Если вы не включили Google Analytics при создании своего проекта, вы можете включить его на вкладке Integrations , к которой вы можете получить доступ, используя > Настройки проекта в консоли Firebase .
В разделе Engage в меню навигации консоли Firebase нажмите A/B Testing .
Нажмите «Создать эксперимент» , а затем выберите Remote Config когда предложено для службы, с которой вы хотите поэкспериментировать.
Введите имя и необязательное описание для вашего эксперимента и нажмите «Далее» .
Заполните поля таргетинга , сначала выбирая приложение, которое использует ваш эксперимент. Вы также можете ориентироваться на подмножество ваших пользователей для участия в вашем эксперименте, нажав и , затем выбрав параметры из следующего списка:
- Версия: одна или несколько версий вашего приложения
- Номер сборки: код версии приложения
- Языки: один или несколько языков и локалов, используемых для выбора пользователей, которые могут быть включены в эксперимент
- Страна/регион: одна или несколько стран или регионов для выбора пользователей, которые должны быть включены в эксперимент
- Аудитория пользователя: Analytics аудитория, используемая для нацеливания пользователей, которые могут быть включены в эксперимент
- Свойство пользователя: одна или несколько свойств пользователя Analytics для выбора пользователей, которые могут быть включены в эксперимент
Сначала Open: целевые пользователи в зависимости от первого раза, когда они открыли ваше приложение
Пользовательский таргетинг по первым открытым времени доступен после выбора приложения Android или iOS. Он поддерживается следующими версиями Remote Config SDK: Apple Platforms SDK v9.0.0+ и Android SDK V21.1.1+ ( Firebase BoM V30.3.0+).
Analytics также должна была быть включена на клиенте во время первого открытого события.
Установите процент целевых пользователей: введите процент пользовательской базы вашего приложения, соответствующего критериям, установленным при целевых пользователях , которые вы хотите равномерно разделить между базовой линией и одним или несколькими вариантами в вашем эксперименте. Это может быть любой процент между 0,01% до 100%. Пользователи случайным образом назначаются для каждого эксперимента, включая дублированные эксперименты.
При желании установите событие активации, чтобы гарантировать, что в вашем эксперименте подсчитаны только данные от пользователей, которые сначала запустили некоторые Analytics события. Обратите внимание, что все пользователи, соответствующие вашим параметрам таргетинга, получат Remote Config , но только те, кто запускает событие активации, будут включены в результаты вашего эксперимента.
Чтобы обеспечить действительный эксперимент, убедитесь, что выбранное вами событие происходит после того, как ваше приложение активирует извлекаемые значения конфигурации. Кроме того, следующие события не могут быть использованы, потому что они всегда встречаются до активации извлеченных значений:
-
app_install
-
app_remove
-
app_update
-
dynamic_link_first_open
-
Для целей эксперимента выберите первичную метрику для отслеживания и добавьте любые дополнительные показатели, которые вы хотите отслеживать из списка. К ним относятся встроенные цели (покупки, доход, удержание, бесплатные пользователи и т. Д.), События конверсии Analytics и другие Analytics события. Когда закончите, нажмите Далее .
В разделе вариантов выберите базовую линию и, по крайней мере, один вариант для эксперимента. Используйте выберите или создайте новый список, чтобы добавить один или несколько параметров для экспериментов. Вы можете создать параметр, который ранее не использовался в консоли Firebase , но он должен существовать в вашем приложении, чтобы оно имело какое -либо влияние. Вы можете повторить этот шаг, чтобы добавить несколько параметров в ваш эксперимент.
(необязательно) Чтобы добавить более одного варианта в эксперимент, нажмите « Добавить другой вариант» .
Измените один или несколько параметров для конкретных вариантов. Любые неизменные параметры одинаковы для пользователей, не включенных в эксперимент.
Разверните варианты веса для просмотра или изменения веса варианта для эксперимента. По умолчанию каждый вариант взвешивается одинаково. Обратите внимание, что неравномерные веса могут увеличить время сбора данных, и веса не могут быть изменены после начала эксперимента .
Нажмите обзор , чтобы сохранить свой эксперимент.
Вам разрешено до 300 экспериментов по проекту, которые могут состоять из 24 экспериментов, а остальные в качестве проекта или завершены.
Проверить свой эксперимент на тестовом устройстве
Для каждой установки Firebase вы можете получить связанный с ней токен установки. Вы можете использовать этот токен для проверки конкретных вариантов эксперимента на тестовом устройстве с установленным приложением. Чтобы проверить свой эксперимент на тестовом устройстве, сделайте следующее:
- Получите токен установки Auth следующим образом:
Быстрый
do { let result = try await Installations.installations() .authTokenForcingRefresh(true) print("Installation auth token: \(result.authToken)") } catch { print("Error fetching token: \(error)") }
Цель-C
[[FIRInstallations installations] authTokenForcingRefresh:true completion:^(FIRInstallationsAuthTokenResult *result, NSError *error) { if (error != nil) { NSLog(@"Error fetching Installation token %@", error); return; } NSLog(@"Installation auth token: %@", [result authToken]); }];
Java
FirebaseInstallations.getInstance().getToken(/* forceRefresh */true) .addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() { @Override public void onComplete(@NonNull Task<InstallationTokenResult> task) { if (task.isSuccessful() && task.getResult() != null) { Log.d("Installations", "Installation auth token: " + task.getResult().getToken()); } else { Log.e("Installations", "Unable to get Installation auth token"); } } });
Kotlin
val forceRefresh = true FirebaseInstallations.getInstance().getToken(forceRefresh) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d("Installations", "Installation auth token: " + task.result?.token) } else { Log.e("Installations", "Unable to get Installation auth token") } }
С++
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.Installations.FirebaseInstallations.DefaultInstance.GetTokenAsync(forceRefresh: true).ContinueWith( task => { if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) { UnityEngine.Debug.Log(System.String.Format("Installations token {0}", task.Result)); } });
- На панели навигационной навигации консоли Firebase нажмите A/B -тестирование .
- Нажмите Draft (и/или запуск для удаленных конфигурационных экспериментов), наведите на эксперимент, нажмите на контекстное меню ( more_vert ), а затем нажмите «Управление тестовыми устройствами» .
- Введите токен установки Auth для тестового устройства и выберите вариант эксперимента для отправки на это тестовое устройство.
- Запустите приложение и подтвердите, что выбранный вариант получен на тестовом устройстве.
Чтобы узнать больше о установках Firebase , см. Управление установками Firebase .
Управляйте своим экспериментом
Независимо от того, создаете ли вы эксперимент с Remote Config , композитором уведомлений или Firebase In-App Messaging , вы можете затем проверить и начать эксперимент, отслеживать эксперимент во время работы, и увеличить количество пользователей, включенных в ваш эксперимент.
Когда ваш эксперимент будет проведен, вы можете принять к сведению настройки, используемые выигрышным вариантом, а затем развернуть эти настройки для всех пользователей. Или вы можете провести другой эксперимент.
Начните эксперимент
- В разделе Engage в меню навигации консоли Firebase нажмите A/B Testing .
- Нажмите на черновик , а затем нажмите на заголовок своего эксперимента.
- Чтобы подтвердить, что в вашем приложении есть пользователи, которые будут включены в ваш эксперимент, разверните детали проекта и проверьте номер более 0% в разделе таргетирования и распространения (например, 1% пользователей, соответствующих критериям ).
- Чтобы изменить свой эксперимент, нажмите «Редактировать» .
- Чтобы начать эксперимент, нажмите « Начать эксперимент» . Вы можете запустить до 24 экспериментов на проект за раз.
Следите за экспериментом
Как только эксперимент на некоторое время работает, вы можете проверить его прогресс и посмотреть, как выглядят ваши результаты для пользователей, которые до сих пор участвовали в вашем эксперименте.
- В разделе Engage в меню навигации консоли Firebase нажмите A/B Testing .
Нажмите «Запуск» , а затем нажмите или найдите название вашего эксперимента. На этой странице вы можете просмотреть различные наблюдаемые и смоделированные статистические данные о своем эксперименте, включая следующее:
- % отличия от исходной линии : мера улучшения метрики для данного варианта по сравнению с базовой линией. Рассчитано путем сравнения диапазона значений для варианта с диапазоном значений для базовой линии.
- Вероятность преодолеть базовую линию : предполагаемая вероятность того, что заданный вариант превзойдет базовую линию для выбранной метрики.
- observed_metric на пользователя : на основе результатов эксперимента это прогнозируемый диапазон, что значение метрического значения упадет с течением времени.
- Total observed_metric : наблюдаемое кумулятивное значение для базовой линии или варианта. Значение используется для измерения того, насколько хорошо выполняется каждый экспериментальный вариант, и используется для расчета улучшения , диапазона значений , вероятности преодоления базовой линии и вероятности стать лучшим вариантом . В зависимости от измеренной метрики, этот столбец может быть помечен как «продолжительность на одного пользователя», «доход на одного пользователя», «коэффициент удержания» или «коэффициент конверсии».
После того, как ваш эксперимент проходил некоторое время (не менее 7 дней для обмена сообщениями FCM и In-App Messaging или 14 дней для Remote Config ), данные на этой странице указывают, какой вариант, если таковой имеется, является «лидером». Некоторые измерения сопровождаются стержней, которая представляет данные в визуальном формате.
Разверните эксперимент для всех пользователей
После того, как эксперимент прошел достаточно долго, чтобы у вас был «лидер», или выигрышный вариант, для вашего показателя цели вы можете выпустить эксперимент 100% пользователей. Это позволяет вам выбрать вариант для публикации всем пользователям, движущимся вперед. Даже если ваш эксперимент не создал четкого победителя, вы все равно можете выпустить вариант для всех ваших пользователей.
- В разделе Engage в меню навигации консоли Firebase нажмите A/B Testing .
- Нажмите «Завершенное» или «Запуск» , нажмите на эксперимент, который вы хотите выпустить для всех пользователей, щелкните вариант Context Menu ( ).
Разверните эксперимент на всех пользователей, выполнив одно из следующих действий:
- Для эксперимента, который использует композитор уведомлений , используйте диалоговое окно « Разлистые сообщения» , чтобы отправить сообщение оставшимся целевым пользователям, которые не были частью эксперимента.
- Для Remote Config эксперимента выберите вариант, чтобы определить, какие значения параметров Remote Config для обновления. Критерии таргетирования, определенные при создании эксперимента, добавляются в виде нового условия в вашем шаблоне, чтобы убедиться, что развертывание влияет только на пользователей, нацеленных на эксперимент. После нажатия просмотра в удаленной конфигурации, чтобы просмотреть изменения, нажмите «Опубликовать изменения» , чтобы завершить развертывание.
- Для эксперимента In-App Messaging используйте диалог, чтобы определить, какой вариант должен быть развернут в качестве отдельной кампании In-App Messaging . После выбора вас перенаправлен на экран Fiam Compose, чтобы внести какие -либо изменения (если это необходимо) перед публикацией.
Расширить эксперимент
Если вы обнаружите, что эксперимент не приносит достаточно пользователей для A/B Testing чтобы объявить лидера, вы можете увеличить распространение своего эксперимента, чтобы достичь большего процента пользовательской базы приложения.
- В разделе Engage в меню навигации консоли Firebase нажмите A/B Testing .
- Выберите эксперимент, который вы хотите отредактировать.
- В обзоре эксперимента нажмите «Контекстное меню» ( ), а затем нажмите «Редактировать эксперимент» .
- Диалог таргетирования отображает возможность увеличить процент пользователей, которые находятся в эксперименте. Выберите число больше, чем текущий процент, и нажмите «Публиковать» . The experiment will be pushed out to the percentage of users you have specified.
Duplicate or stop an experiment
- In the Engage section of the Firebase console navigation menu, click A/B Testing .
- Click Completed or Running , hold the pointer over your experiment, click the context menu ( ), and then click Duplicate experiment or Stop experiment .
User targeting
You can target the users to include in your experiment using the following user-targeting criteria.
Targeting criterion | Operator(s) | Ценности) | Примечание | |
---|---|---|---|---|
Версия | содержит, does not contain, matches exactly, contains regex | Enter a value for one or more app versions that you want to include in the experiment. | When using any of the contains , does not contain , or matches exactly operators, you can provide a comma-separated list of values. When using the contains regex operator, you can create regular expressions in RE2 format. Your regular expression can match all or part of the target version string. You can also use the ^ and $ anchors to match the beginning, end, or entirety of a target string. | |
User audience(s) | includes all of, includes at least one of, does not include all of, does not include at least one of | Select one or more Analytics audiences to target users who might be included in your experiment. | Some experiments that target Google Analytics audiences may require a few days to accumulate data because they are subject to Analytics data processing latency . You are most likely to encounter this delay with new users, who are typically enrolled into qualifying audiences 24-48 hours after creation, or for recently-created audiences . For Remote Config , this means that even if a user technically qualifies for an audience, if Analytics has not yet added the user to the audience when `fetchAndActivate()` is executed, the user will not be included in the experiment. | |
User property | For text: содержит, does not contain, exactly matches, contains regex For numbers: <, ≤, =, ≥, > | An Analytics user property is used to select users who might be included in an experiment, with a range of options for selecting user property values. On the client, you can set only string values for user properties. For conditions that use numeric operators, the Remote Config service converts the value of the corresponding user property into an integer/float. | When using the contains regex operator, you can create regular expressions in RE2 format. Your regular expression can match all or part of the target version string. You can also use the ^ and $ anchors to match the beginning, end, or entirety of a target string. | |
Country/Region | Н/Д | One or more countries or regions used to select users who might be included in the experiment. | ||
Языки | Н/Д | One or more languages and locales used to select users who might be included in the experiment. | ||
First open | До После | Target users based on the first time they open your app:
| User targeting by first open is available after you select an Android or iOS app. It is currently supported by the following Remote Config SDK versions: Apple platforms SDK v9.0.0+ and Android SDK v21.1.1+ ( Firebase BoM v30.3.0+). Analytics must also have been enabled on the client during the first open event. |
A/B Testing metrics
When you create your experiment, you choose a primary, or goal metric, that is used to determine the winning variant. You should also track other metrics to help you better understand each experiment variant's performance and track important trends that may differ for each variant, like user retention, app stability and in-app purchase revenue. You can track up to five non-goal metrics in your experiment.
For example, say you're using Remote Config to launch two different game flows in your app and want to optimize for in-app purchases and ad revenue, but you also want to track the stability and user retention of each variant. In this case, you might consider choosing Estimated total revenue as your goal metric because it includes in-app purchase revenue and ad revenue, and then, for Other metrics to track , you might add the following:
- To track your daily and weekly user retention, add Retention (2-3 days) and Retention (4-7 days) .
- To compare stability between the two game flows, add Crash-free users .
- To see more detailed views of each revenue type, add Purchase revenue and Estimated ad revenue .
The following tables provide details on how goal metrics and other metrics are calculated.
Goal metrics
Metric | Описание |
---|---|
Crash-free users | The percentage of users who have not encountered errors in your app that were detected by the Firebase Crashlytics SDK during the experiment. |
Estimated ad revenue | Estimated ad earnings. |
Estimated total revenue | Combined value for purchase and estimated ad revenues. |
Purchase revenue | Combined value for all purchase and in_app_purchase events. |
Retention (1 day) | The number of users who return to your app on a daily basis. |
Retention (2-3 days) | The number of users who return to your app within 2-3 days. |
Retention (4-7 days) | The number of users who return to your app within 4-7 days. |
Retention (8-14 days) | The number of users who return to your app within 8-14 days. |
Retention (15+ days) | The number of users who return to your app 15 or more days after they last used it. |
first_open | An Analytics event that triggers when a user first opens an app after installing or reinstalling it. Used as part of a conversion funnel. |
Other metrics
Metric | Описание |
---|---|
notification_dismiss | An Analytics event that triggers when a notification sent by the Notifications composer is dismissed (Android only). |
notification_receive | An Analytics event that triggers when a notification sent by the Notifications composer is received while the app is in the background (Android only). |
os_update | An Analytics event that tracks when the device operating system is updated to a new version.To learn more, see Automatically collected events . |
screen_view | An Analytics event that tracks screens viewed within your app. To learn more, see Track Screenviews . |
session_start | An Analytics event that counts user sessions in your app. To learn more, see Automatically collected events . |
BigQuery data export
In addition to viewing A/B Testing experiment data in the Firebase console, you can inspect and analyze experiment data in BigQuery . While A/B Testing does not have a separate BigQuery table, experiment and variant memberships are stored on every Google Analytics event within the Analytics event tables.
The user properties that contain experiment information are of the form userProperty.key like "firebase_exp_%"
or userProperty.key = "firebase_exp_01"
where 01
is the experiment ID, and userProperty.value.string_value
contains the (zero-based) index of the experiment variant.
You can use these experiment user properties to extract experiment data. This gives you the power to slice your experiment results in many different ways and independently verify the results of A/B Testing .
To get started, complete the following as described in this guide:
- Enable BigQuery export for Google Analytics in the Firebase console
- Access A/B Testing data using BigQuery
- Explore example queries
Enable BigQuery export for Google Analytics in the Firebase console
If you're on the Spark plan, you can use the BigQuery sandbox to access BigQuery at no cost, subject to Sandbox limits . See Pricing and the BigQuery sandbox for more information.
First, make sure that you're exporting your Analytics data to BigQuery :
- Open the Integrations tab, which you can access using > Project settings in the Firebase console .
- If you're already using BigQuery with other Firebase services, click Manage . Otherwise, click Link .
- Review About Linking Firebase to BigQuery , then click Next .
- In the Configure integration section, enable the Google Analytics toggle.
Select a region and choose export settings.
Click Link to BigQuery .
Depending on how you chose to export data, it may take up to a day for the tables to become available. For more information about exporting project data to BigQuery , see Export project data to BigQuery .
Access A/B Testing data in BigQuery
Before querying for data for a specific experiment, you'll want to obtain some or all of the following to use in your query:
- Experiment ID: You can obtain this from the URL of the Experiment overview page. For example, if your URL looks like
https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25
, the experiment ID is 25 . - Google Analytics property ID : This is your 9-digit Google Analytics property ID. You can find this within Google Analytics ; it also appears in BigQuery when you expand your project name to show the name of your Google Analytics event table (
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
, oruser_retention
events.
After you gather the information you need to generate your query:
- Open BigQuery in the Google Cloud console.
- Select your project, then select Create SQL query .
- Add your query. For example queries to run, see Explore example queries .
- Click Run .
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:
- From the Firebase console, open A/B Testing and select the A/B Testing experiment you want to query to open the Experiment overview .
- 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