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

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

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

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

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

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

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

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

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

  2. В разделе «Взаимодействие» навигационного меню консоли Firebase нажмите A/B Testing .

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

  4. Введите Имя и необязательное Описание для вашего эксперимента и нажмите Далее .

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

    • Версия: Одна или несколько версий вашего приложения.
    • Номер сборки: Код версии приложения.
    • Языки: один или несколько языков и локалей, используемых для выбора пользователей, которые могут быть включены в эксперимент.
    • Страна/регион: одна или несколько стран или регионов для выбора пользователей, которые должны быть включены в эксперимент.
    • Аудитория пользователей: Analytics аудитории, используемые для таргетинга пользователей, которые могут быть включены в эксперимент.
    • Свойство пользователя: одно или несколько свойств пользователя Analytics для выбора пользователей, которые могут быть включены в эксперимент.
    • Первое открытие: таргетинг пользователей на основе того, когда они впервые открыли ваше приложение.

      Таргетинг пользователей по времени первого открытия доступен после выбора приложения Android или iOS. Поддерживается следующими версиями Remote Config SDK: Apple platforms SDK v9.0.0+ и Android SDK v21.1.1+ ( Firebase BoM v30.3.0+).

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

  6. Установите процент целевых пользователей: введите процент пользователей вашего приложения, соответствующих критериям, заданным в разделе «Целевые пользователи» , который вы хотите равномерно разделить между базовым значением и одним или несколькими вариантами в вашем эксперименте. Это может быть любой процент от 0,01% до 100%. Пользователи случайным образом назначаются для каждого эксперимента, включая дублированные эксперименты.

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

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

    • app_install
    • app_remove
    • app_update
    • dynamic_link_first_open
  8. Для Goals эксперимента выберите основную метрику для отслеживания и добавьте любые дополнительные метрики, которые вы хотите отслеживать из списка. К ним относятся встроенные цели (покупки, доход, удержание, пользователи без сбоев и т. д.), события конверсии Analytics и другие события Analytics . По завершении нажмите Next .

  9. В разделе Variants выберите базовую линию и хотя бы один вариант для эксперимента. Используйте список Choose or create new, чтобы добавить один или несколько параметров для эксперимента. Вы можете создать параметр, который ранее не использовался в консоли Firebase , но он должен существовать в вашем приложении, чтобы иметь какой-либо эффект. Вы можете повторить этот шаг, чтобы добавить несколько параметров в свой эксперимент.

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

  11. Измените один или несколько параметров для определенных вариантов. Любые неизмененные параметры остаются неизменными для пользователей, не включенных в эксперимент.

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

  13. Нажмите «Обзор» , чтобы сохранить эксперимент.

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

Проверьте свой эксперимент на тестовом устройстве

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

  1. Получите токен аутентификации для установки следующим образом:

    Быстрый

    do {
      let result = try await Installations.installations()
        .authTokenForcingRefresh(true)
      print("Installation auth token: \(result.authToken)")
    } catch {
      print("Error fetching token: \(error)")
    }

    Objective-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));
        }
      });
  2. На панели навигации консоли Firebase нажмите A/B-тестирование .
  3. Нажмите «Черновик» (и/или «Выполнение» для экспериментов Remote Config), наведите курсор на свой эксперимент, щелкните контекстное меню ( ), а затем нажмите «Управление тестовыми устройствами» .
  4. Введите токен аутентификации установки для тестового устройства и выберите вариант эксперимента для отправки на это тестовое устройство.
  5. Запустите приложение и убедитесь, что выбранный вариант принимается на тестовом устройстве.

Дополнительную информацию об установках Firebase см. в разделе Управление установками Firebase .

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

Независимо от того, создаете ли вы эксперимент с помощью Remote Config , Notifications Composer или Firebase In-App Messaging , вы можете проверить и запустить свой эксперимент, отслеживать его ход и увеличивать количество пользователей, включенных в текущий эксперимент.

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

Начать эксперимент

  1. В разделе «Взаимодействие» навигационного меню консоли Firebase нажмите A/B Testing .
  2. Нажмите «Черновик» , а затем нажмите на название вашего эксперимента.
  3. Чтобы убедиться, что в вашем приложении есть пользователи, которые будут включены в ваш эксперимент, разверните сведения о проекте и проверьте наличие числа больше 0% в разделе «Таргетинг и распространение» (например, 1% пользователей, соответствующих критериям ).
  4. Чтобы изменить эксперимент, нажмите «Изменить» .
  5. Чтобы начать эксперимент, нажмите Начать эксперимент . Вы можете запустить до 24 экспериментов на проект одновременно.

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

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

  1. В разделе «Взаимодействие» навигационного меню консоли Firebase нажмите A/B Testing .
  2. Нажмите 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".
  3. После того, как ваш эксперимент продлится некоторое время (не менее 7 дней для FCM и In-App Messaging или 14 дней для Remote Config ), данные на этой странице покажут, какой вариант, если таковой имеется, является «лидером». Некоторые измерения сопровождаются столбчатой ​​диаграммой, которая представляет данные в визуальном формате.

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

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

  1. В разделе «Взаимодействие» навигационного меню консоли Firebase нажмите A/B Testing .
  2. Нажмите «Завершено» или «Выполняется» , выберите эксперимент, который вы хотите запустить для всех пользователей, нажмите контекстное меню ( ) «Развернуть вариант» .
  3. Распространите свой эксперимент на всех пользователей, выполнив одно из следующих действий:

    • Для эксперимента, в котором используется компоновщик уведомлений , используйте диалоговое окно « Развернуть сообщение» , чтобы отправить сообщение оставшимся целевым пользователям, которые не участвовали в эксперименте.
    • Для эксперимента Remote Config выберите вариант, чтобы определить, какие значения параметров Remote Config следует обновить. Критерии таргетинга, определенные при создании эксперимента, добавляются в качестве нового условия в ваш шаблон, чтобы гарантировать, что развертывание затронет только пользователей, на которых нацелен эксперимент. После нажатия кнопки Review в Remote Config для просмотра изменений нажмите кнопку Publish changes , чтобы завершить развертывание.
    • Для эксперимента In-App Messaging используйте диалоговое окно, чтобы определить, какой вариант необходимо развернуть как отдельную кампанию In-App Messaging . После выбора вы будете перенаправлены на экран создания FIAM для внесения любых изменений (если требуется) перед публикацией.

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

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

  1. В разделе «Взаимодействие» навигационного меню консоли Firebase нажмите A/B Testing .
  2. Выберите текущий эксперимент, который вы хотите отредактировать.
  3. В Обзоре эксперимента щелкните контекстное меню ( ), а затем щелкните Изменить запущенный эксперимент .
  4. В диалоговом окне «Нацеливание» отображается опция увеличения процента пользователей, участвующих в текущем эксперименте. Выберите число, превышающее текущий процент, и нажмите «Опубликовать» . Эксперимент будет распространен на указанный вами процент пользователей.

Дублировать или остановить эксперимент

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

Ориентация на пользователя

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

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

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

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

Аудитория(и) пользователей включает в себя все,
включает в себя по крайней мере одно из,
не включает в себя все,
не включает в себя по крайней мере один из
Выберите одну или несколько аудиторий Analytics , чтобы охватить пользователей, которые могут быть включены в ваш эксперимент. Некоторые эксперименты, нацеленные на аудитории Google Analytics могут потребовать несколько дней для накопления данных, поскольку они подвержены задержке обработки данных Analytics . Вы, скорее всего, столкнетесь с этой задержкой с новыми пользователями, которые обычно регистрируются в квалификационные аудитории через 24–48 часов после создания, или для недавно созданных аудиторий .

Для Remote Config это означает, что даже если пользователь технически соответствует требованиям аудитории, но Analytics еще не добавил пользователя в аудиторию на момент выполнения `fetchAndActivate()`, пользователь не будет включен в эксперимент.

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

Для чисел:
<, ≤, =, ≥, >
Свойство пользователя Analytics используется для выбора пользователей, которые могут быть включены в эксперимент, с рядом вариантов выбора значений свойств пользователя.

На клиенте можно задать только строковые значения для свойств пользователя. Для условий, использующих числовые операторы, служба Remote Config преобразует значение соответствующего свойства пользователя в целое число/число с плавающей точкой.
При использовании оператора contains regex вы можете создавать регулярные выражения в формате RE2 . Ваше регулярное выражение может соответствовать всей или части целевой строки версии. Вы также можете использовать якоря ^ и $ для соответствия началу, концу или всей целевой строке.
Страна/регион Н/Д Одна или несколько стран или регионов, используемых для отбора пользователей, которые могут быть включены в эксперимент.
Языки Н/Д Один или несколько языков и локалей, используемых для выбора пользователей, которые могут быть включены в эксперимент.
Первый открытый До
После

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

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

Таргетинг пользователей по первому открытию доступен после выбора приложения Android или iOS. В настоящее время поддерживается следующими версиями Remote Config SDK: платформы Apple SDK v9.0.0+ и Android SDK v21.1.1+ ( Firebase BoM v30.3.0+).

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

Метрики A/B Testing

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

Например, предположим, что вы используете Remote Config для запуска двух разных игровых потоков в своем приложении и хотите оптимизировать покупки в приложении и доход от рекламы, но вы также хотите отслеживать стабильность и удержание пользователей каждого варианта. В этом случае вы можете рассмотреть возможность выбора Estimated total income в качестве целевой метрики, поскольку она включает доход от покупок в приложении и доход от рекламы, а затем для Other metrics to track вы можете добавить следующее:

  • Чтобы отслеживать ежедневное и еженедельное удержание пользователей, добавьте Удержание (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 .

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

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

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

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

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

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

  6. Нажмите ссылку на 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 .

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

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

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

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

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

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

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

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

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

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

В следующих разделах приведены примеры запросов, которые можно использовать для извлечения данных эксперимента A/B 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