Проверка данных персонализации с помощью BigQuery

При назначении пользователю персонализации функция Remote Config регистрирует событие personalization_assignment Analytics , что позволяет использовать BigQuery для проверки и анализа событий персонализации и связанных с ними событий.

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

Включите экспорт 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» .

Далее, давайте получим доступ к событиям персонализации в BigQuery и проанализируем их.

Доступ к данным персонализации Remote Config с помощью BigQuery

Для запроса аналитических данных для эксперимента:

  1. Откройте BigQuery в консоли Google Cloud . Вы также можете открыть его непосредственно из событий Analytics , используя ссылку «Просмотреть необработанные события в BigQuery внизу страницы.
  2. Выберите свой проект Firebase , разверните его, затем разверните запись analytics_ ANALYTICS_PROPERTY_ID и нажмите events_ .

    Access personalization events in the Cloud console

  3. В раскрывающемся списке «Запрос» выберите «В новой вкладке» .

    Появляется автоматически сгенерированный пример запроса.

  4. Чтобы просмотреть события персонализации и связанные с ними данные, обновите запрос, выбрав события personalization_assignment . Следующий пример запроса вернет полное событие назначения персонализации для определенного временного интервала, ограничив результаты 10:

    # Select all personalization_assignment events
    SELECT *
    FROM `PROJECT_NAME.analytics_ANALYTICS_PROPERTY_ID.events_DATE_SHARD`
    WHERE event_name = 'personalization_assignment'
    LIMIT 10
    

    Совет: Чтобы выполнить поиск по всем таблицам событий, а не только по сегментированной таблице, можно заменить дату в таблице событий звездочкой (например, PROJECT_NAME .analytics_ ANALYTICS_PROPERTY_ID .events_* ). Это не рекомендуется в сценариях, не связанных с тестированием, или для больших наборов данных.

  5. В редакторе запросов выберите «Выполнить запрос». Результаты отобразятся в нижней панели.

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

Какие данные персонализации экспортируются в BigQuery ?

Данные персонализации включены в таблицы Google Analytics в BigQuery и хранятся в событиях personalization_assignment .

Основные поля, предоставляемые в событии персонализации, такие же, как и в любом событии Analytics , как описано в [GA4] Схема экспорта BigQuery . В основном вас будут интересовать user_pseudo_id i (который можно использовать для различения разных пользователей), временные метки событий и другие свойства пользователя.

Подробные сведения о персонализации хранятся в поле event_params и описаны в следующей таблице:

Параметр Тип данных Описание
персонализация_идентификатор НИТЬ Предоставляет универсальный уникальный идентификатор (UUID) для назначенной персонализации.
группа НИТЬ Указывает, был ли пользователь отнесен к группе персонализации (P13N) или к базовой группе (BASELINE).
arm_index ЦЕЛОЕ Представляет собой альтернативное значение, присвоенное пользователю, — целое число от 0 до 4.
arm_key НИТЬ Содержит имя параметра, используемого в персонализации.
arm_value НИТЬ Содержит строковое значение альтернативного варианта, присвоенное в процессе персонализации.
engaged_session_event ЦЕЛОЕ Включает количество сессий, в которых участвует пользователь. Дополнительную информацию см. в разделе «О сессиях» .
firebase_event_origin НИТЬ Указывает источник события. Для событий personalization_assignment это всегда будет fp .
firebase_screen_class НИТЬ Указывает имя класса экрана, на котором пользователь был активен в момент назначения персонализации. Дополнительную информацию см. в разделе «Автоматически собираемые события» .
firebase_screen_id ЦЕЛОЕ Отображает идентификатор экрана, на котором находился пользователь в момент назначения персонализации. Дополнительную информацию см. в разделе «Автоматически собираемые события» .
first_open_time НИТЬ Предоставляет метку времени в миллисекундах UTC, когда пользователь впервые открыл приложение. Дополнительную информацию см. в разделе «Автоматически собираемые события» .
ga_session_id ЦЕЛОЕ Предоставляет идентификатор сессии Google Analytics . Дополнительную информацию см. в разделе «О сессиях» . Вы можете использовать его для сопоставления события personalization_assignment с другими событиями Analytics .
ga_session_number ЦЕЛОЕ Предоставляет номер сессии Google Analytics . Дополнительную информацию см. в разделе «О сессиях» .

Примеры запросов

Для извлечения параметров, специфичных для персонализации, из событий personalization_assignment можно использовать следующий SQL-запрос:

    # Expand nested personalization parameters
    SELECT
     timestamp_micros(event_timestamp) AS event_time,
     user_pseudo_id,
     (
       SELECT event_params.value.string_value
       FROM UNNEST(event_params) event_params
       WHERE event_params.key = 'group'
     ) AS personalization_group,
     (
       SELECT event_params.value.string_value
       FROM UNNEST(event_params) event_params
       WHERE event_params.key = 'personalization_id'
     ) AS personalization_id,
     (
       SELECT event_params.value.string_value,
       FROM UNNEST(event_params) event_params
       WHERE event_params.key = 'arm_key'
     ) AS arm_key,
     (
       SELECT event_params.value.string_value
       FROM UNNEST(event_params) event_params
       WHERE event_params.key = 'arm_value'
     ) AS arm_value,
     (
       SELECT event_params.value.int_value
       FROM UNNEST(event_params) event_params
       WHERE event_params.key = 'ga_session_id'
     ) AS ga_session_id,
    FROM `PROJECT_NAME.analytics_ANALYTICS_ACCOUNT_ID.events_DATE_SHARD`
    WHERE event_name = 'personalization_assignment'
    LIMIT 10