Создавайте эксперименты по обмену сообщениями с помощью 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)"
      }
    }

    Цель-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+KTX

    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 , Composer Notifications или Firebase In-App Messaging , вы можете затем проверить и запустить эксперимент, отслеживать его во время его выполнения и увеличивать количество пользователей, включенных в текущий эксперимент.

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

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

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

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

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

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

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

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

  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