Создавайте эксперименты по обмену сообщениями с помощью A/B-тестирования

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

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

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

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

Эксперимент, использующий компоновщик уведомлений, позволяет оценить несколько вариантов одного уведомительного сообщения.

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

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

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

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

  4. Введите имя и (необязательно) описание вашего эксперимента и нажмите кнопку «Далее» .

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

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

  7. В разделе «Варианты» введите сообщение для отправки группе базовой линии в поле «Введите текст сообщения» . Чтобы не отправлять сообщение группе базовой линии, оставьте это поле пустым.

  8. (необязательно) Чтобы добавить в эксперимент несколько вариантов, нажмите «Добавить вариант» . По умолчанию эксперименты имеют одну базовую линию и один вариант.

  9. (необязательно) Введите название для каждого варианта в вашем эксперименте, чтобы заменить названия Вариант А , Вариант Б и т. д.

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

  11. Выберите варианты для вашего сообщения:

    • Дата доставки: выберите «Отправить сейчас» , чтобы запустить эксперимент немедленно после сохранения, или «Запланировано» , чтобы указать время запуска эксперимента в будущем.
    • Расширенные параметры: Чтобы выбрать расширенные параметры для всех уведомлений, включенных в ваш эксперимент, разверните Дополнительные параметры , а затем измените любой из перечисленных параметров сообщений.
  12. Нажмите «Обзор» , чтобы сохранить эксперимент.

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

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

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

  1. Получите регистрационный токен FCM следующим образом:

    Быстрый

    Messaging.messaging().token { token, error in
      if let error = error {
        print("Error fetching FCM registration token: \(error)")
      } else if let token = token {
        print("FCM registration token: \(token)")
        self.fcmRegTokenMessage.text  = "Remote FCM registration token: \(token)"
      }
    }

    Objective-C

    [[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) {
      if (error != nil) {
        NSLog(@"Error getting FCM registration token: %@", error);
      } else {
        NSLog(@"FCM registration token: %@", token);
        self.fcmRegTokenMessage.text = token;
      }
    }];

    Java

    FirebaseMessaging.getInstance().getToken()
        .addOnCompleteListener(new OnCompleteListener<String>() {
            @Override
            public void onComplete(@NonNull Task<String> task) {
              if (!task.isSuccessful()) {
                Log.w(TAG, "Fetching FCM registration token failed", task.getException());
                return;
              }
    
              // Get new FCM registration token
              String token = task.getResult();
    
              // Log and toast
              String msg = getString(R.string.msg_token_fmt, token);
              Log.d(TAG, msg);
              Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
            }
        });

    Kotlin

    FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
        if (!task.isSuccessful) {
            Log.w(TAG, "Fetching FCM registration token failed", task.exception)
            return@OnCompleteListener
        }
    
        // Get new FCM registration token
        val token = task.result
    
        // Log and toast
        val msg = getString(R.string.msg_token_fmt, token)
        Log.d(TAG, msg)
        Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
    })

    С++

    firebase::InitResult init_result;
    auto* installations_object = firebase::installations::Installations::GetInstance(
        firebase::App::GetInstance(), &init_result);
    installations_object->GetToken().OnCompletion(
        [](const firebase::Future<std::string>& future) {
          if (future.status() == kFutureStatusComplete &&
              future.error() == firebase::installations::kErrorNone) {
            printf("Installations Auth Token %s\n", future.result()->c_str());
          }
        });

    Единство

    Firebase.Messaging.FirebaseMessaging.DefaultInstance.GetTokenAsync().ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("FCM registration token {0}", task.Result));
        }
      });
  2. На панели навигации консоли Firebase нажмите A/B-тестирование .
  3. Нажмите «Черновик» , наведите указатель мыши на свой эксперимент, щелкните контекстное меню ( ), а затем нажмите «Управление тестовыми устройствами».
  4. Введите токен FCM для тестового устройства и выберите вариант эксперимента для отправки на это тестовое устройство.
  5. Запустите приложение и убедитесь, что выбранный вариант принимается на тестовом устройстве.

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

Независимо от того, создаете ли вы эксперимент с помощью 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. Нажмите «Выполняется» , а затем нажмите на название вашего эксперимента или выполните поиск. На этой странице вы можете просмотреть различные наблюдаемые и смоделированные статистические данные о вашем текущем эксперименте, включая следующие:

    • Процент отличия от базового значения : показатель улучшения показателя для данного варианта по сравнению с базовым значением. Рассчитывается путём сравнения диапазона значений варианта с диапазоном значений базового значения.
    • Вероятность превзойти базовый уровень : расчетная вероятность того, что данный вариант превзойдет базовый уровень для выбранной метрики.
    • observed_metric per user : на основе результатов эксперимента это прогнозируемый диапазон, в который попадет значение метрики с течением времени.
    • Общая observed_metric : наблюдаемое кумулятивное значение для базового уровня или варианта. Это значение используется для оценки эффективности каждого варианта эксперимента и для расчета показателей «Улучшение» , «Диапазон значений» , «Вероятность превзойти базовый уровень» и «Вероятность быть лучшим вариантом» . В зависимости от измеряемой метрики этот столбец может быть назван «Длительность на пользователя», «Доход на пользователя», «Коэффициент удержания» или «Коэффициент конверсии».
  3. После того, как ваш эксперимент продлится некоторое время (не менее 7 дней для FCM и In-App Messaging или 14 дней для Remote Config ), данные на этой странице покажут, какой вариант, если таковой имеется, является «лидером». Некоторые измерения сопровождаются столбчатой ​​диаграммой, которая представляет данные в наглядном формате.

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

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

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

    • Для эксперимента, в котором используется компоновщик уведомлений , используйте диалоговое окно « Развернуть сообщение» , чтобы отправить сообщение оставшимся целевым пользователям, которые не участвовали в эксперименте.
    • Для эксперимента Remote Config выберите вариант, чтобы определить, какие значения параметров Remote Config нужно обновить. Критерии таргетинга, заданные при создании эксперимента, добавляются в шаблон как новое условие, чтобы гарантировать, что внедрение коснётся только пользователей, на которых направлен эксперимент. После нажатия кнопки «Просмотр» в Remote Config для просмотра изменений нажмите кнопку «Опубликовать изменения» , чтобы завершить внедрение.
    • Для эксперимента 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 часов после создания, или с недавно созданными аудиториями .
Свойство пользователя Для текста:
содержит,
не содержит,
точно совпадает,
содержит регулярное выражение

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

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

Метрики A/B Testing

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

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

  • Расчет общего дохода , чтобы увидеть, как ваш совокупный доход от покупок в приложении и рекламы отличается в двух вариантах.
  • Удерживание (1 день) , удержание (2-3 дня) , удержание (4-7 дней) для отслеживания вашего ежедневного/еженедельного удержания пользователей

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

Показатели цели

Метрическая Описание
Пользователи без сбоев Процент пользователей, которые не столкнулись с ошибками в вашем приложении, которые были обнаружены Firebase Crashlytics SDK в ходе эксперимента.
Предполагаемый доход от рекламы Предполагаемый доход от рекламы.
Предполагаемый общий доход Совокупная стоимость покупки и предполагаемые доходы от рекламы.
Доход от покупки Суммарное значение всех событий purchase и in_app_purchase .
Удержание (1 день) Количество пользователей, которые ежедневно возвращаются в ваше приложение.
Удержание (2-3 дня) Количество пользователей, которые возвращаются в ваше приложение в течение 2–3 дней.
Удержание (4-7 дней) Количество пользователей, которые возвращаются в ваше приложение в течение 4–7 дней.
Удержание (8-14 дней) Количество пользователей, которые возвращаются в ваше приложение в течение 8–14 дней.
Удержание (15+ дней) Количество пользователей, которые возвращаются в ваше приложение через 15 или более дней после последнего использования.
первый_открытый Событие Analytics , которое срабатывает при первом открытии пользователем приложения после его установки или переустановки. Используется как часть воронки конверсии.

Другие показатели

Метрическая Описание
уведомление_отклонить Событие Analytics , которое срабатывает при отклонении уведомления, отправленного компоновщиком уведомлений (только для Android).
уведомление_получить Событие Analytics , которое срабатывает при получении уведомления, отправленного компоновщиком уведомлений, когда приложение находится в фоновом режиме (только для Android).
os_update Событие Analytics , которое отслеживает момент обновления операционной системы устройства до новой версии. Подробнее см. в разделе Автоматически собираемые события .
экран_вид Событие Analytics , отслеживающее просмотры экранов в вашем приложении. Подробнее см. в разделе Отслеживание просмотров экранов .
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 .

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

  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, нажмите «Управление» . В противном случае нажмите «Связать» .
  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 : это ваш 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 . Следующий 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