В этой статье рассказывается о ресурсах "Google Аналитика 4". Если вы используете ресурс Universal Analytics, перейдите к этому разделу Справочного центра.

Схема BigQuery Export

В этой статье описываются формат и схема данных ресурсов типа "Google Аналитика 4" и данных Google Аналитики для Firebase, экспортируемых в BigQuery.

Наборы данных

Для каждого ресурса типа "Google Аналитика 4" и проекта Firebase, связанного с BigQuery, в проект BigQuery добавляется один набор данных под названием "analytics_<property_id>". В качестве значения property_id подставляется идентификатор ресурса Аналитики, который можно найти в настройках ресурса типа "Google Аналитика 4" и в настройках аналитики приложений на платформе Firebase. В этот набор данных будет выполняться экспорт данных из всех ресурсов типа "Google Аналитика 4" и приложений, для которых включен экспорт BigQuery.

Таблицы

Для каждого набора данных создается по одной таблице на каждый день в пределах периода времени, к которому относится экспортируемая информация. Названия таких таблиц имеют формат events_ГГГГММДД.

Также создается таблица с данными по всем событиям в приложении, зарегистрированным в течение текущего дня, которая получает название в формате events_intraday_ГГГГММДД. Она заполняется в реальном времени по мере регистрации событий.

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

Чтобы импортировать события в течение дня, перейдите из тестовой среды в обычный режим.

Строки

Каждая строка таблицы содержит сведения об одном событии, загруженные с помощью Analytics SDK.

Столбцы

Ниже приведены столбцы таблицы экспортируемых данных.

 

Имя поля Тип данных Описание
Приложение    
app_info RECORD Запись с информацией о приложении.
app_info.id STRING Название или идентификатор пакета приложения.
app_info.firebase_app_id STRING Идентификатор приложения в Firebase, связанный с приложением.
app_info.install_source STRING Магазин, из которого установлено приложение.
app_info.version STRING Параметр versionName (для устройств Android) или краткая версия пакета.
Устройство    
device RECORD Запись с информацией об устройстве.
device.category STRING Тип устройства (смартфон, планшет или компьютер).
device.mobile_brand_name STRING Бренд устройства.
device.mobile_model_name STRING Название модели устройства.
device.mobile_marketing_name STRING Торговое наименование устройства.
device.mobile_os_hardware_model STRING Сведения о модели устройства, полученные непосредственно из операционной системы.
device.operating_system STRING Операционная система устройства.
device.operating_system_version STRING Версия операционной системы.
device.vendor_id STRING Идентификатор IDFV (только если идентификатор IDFA не извлекается).
device.advertising_id STRING Рекламный идентификатор или IDFA.
device.language STRING Язык операционной системы.
device.time_zone_offset_seconds INTEGER Смещение времени относительно GMT (в секундах).
device.is_limited_ad_tracking BOOLEAN

Информация о настройке ограничения отслеживания объявлений.

В iOS 14 и более поздних версиях возвращается значение "ложь", если идентификатор IDFA отличен от нуля.

Поток и платформа    
stream_id STRING Числовой идентификатор потока.
platform STRING Платформа, на которой создано приложение.
Пользователь    
user_first_touch_timestamp INTEGER Время (в микросекундах), когда пользователь впервые запустил приложение или посетил сайт.
user_id STRING Идентификатор пользователя, заданный с помощью setUserId API.
user_pseudo_id STRING Идентификатор-псевдоним, предназначенный для пользователя, например идентификатор экземпляра приложения.
user_properties RECORD Повторная запись со свойствами пользователя, заданными с помощью setUserProperty API.
user_properties.key STRING Название свойства пользователя.
user_properties.value RECORD Запись со значением свойства пользователя.
user_properties.value.string_value STRING Строковое значение свойства пользователя.
user_properties.value.int_value INTEGER Значение свойства пользователя, являющееся целым числом.
user_properties.value.double_value FLOAT Значение свойства пользователя, являющееся числом двойной точности.
user_properties.value.float_value FLOAT Это поле в настоящее время не используется.
user_properties.value.set_timestamp_micros INTEGER Время последнего изменения свойства пользователя (в микросекундах).
user_ltv RECORD Запись с информацией об общей ценности пользователя. Это поле не заполняется в таблицах за день.
user_ltv.revenue FLOAT Общая ценность пользователя (доход от него). Это поле не заполняется в таблицах за день.
user_ltv.currency STRING Валюта, в которой выражена общая ценность пользователя. Это поле не заполняется в таблицах за день.
Кампания   Примечание: при атрибуции в поле traffic_source используется модель Последний клик (несколько каналов). Значения traffic_source не изменяются, если пользователь после установки взаимодействует с последующими кампаниями.
traffic_source RECORD Название источника трафика, через который был впервые привлечен пользователь. Это поле не заполняется в таблицах за день.
traffic_source.name STRING Название кампании, благодаря которой был впервые привлечен пользователь. Это поле не заполняется в таблицах за день.
traffic_source.medium STRING Название канала, через который был впервые привлечен пользователь (например, поисковая реклама, обычный поиск или электронная почта). Это поле не заполняется в таблицах за день.
traffic_source.source STRING Название сети, через которую был впервые привлечен пользователь. Это поле не заполняется в таблицах за день.
География    
geo RECORD Запись с геоданными пользователя.
geo.continent STRING Континент, где были зарегистрированы события. Определяется по IP-адресу.
geo.sub_continent STRING Макрорегион, где были зарегистрированы события. Определяется по IP-адресу.
geo.country STRING Страна, где были зарегистрированы события. Определяется по IP-адресу.
geo.region STRING Регион, где были зарегистрированы события. Определяется по IP-адресу.
geo.metro STRING Городская агломерация, где были зарегистрированы события. Определяется по IP-адресу.
geo.city STRING Город, где были зарегистрированы события. Определяется по IP-адресу.
Событие    
event_date STRING Дата, когда было зарегистрировано событие (в формате ГГГГММДД, часовой пояс приложения).
event_timestamp INTEGER Время, когда событие было зарегистрировано в клиенте (в микросекундах, UTC).
event_previous_timestamp INTEGER Время, когда событие было зарегистрировано в клиенте в прошлый раз (в микросекундах, UTC).
event_name STRING Название события.
event_params RECORD Повторная запись с параметрами события.
event_params.key STRING Ключ параметра события.
event_params.value RECORD Запись со значением параметра события.
event_params.value.string_value STRING Строка – значение параметра события.
event_params.value.int_value INTEGER Целое число – значение параметра события.
event_params.value.double_value FLOAT Число двойной точности – значение параметра события.
event_params.value.float_value FLOAT Число с плавающей запятой – значение параметра события.Это поле в настоящее время не используется.
event_value_in_usd FLOAT Ценность параметра "value" в долларах США.
event_bundle_sequence_id INTEGER Порядковый идентификатор пакета, в котором были загружены события.
event_server_timestamp_offset INTEGER Смещение временной метки между временем сбора и загрузки (в микросекундах).
Электронная торговля    
ecommerce RECORD Запись с информацией об электронной торговле.
ecommerce.total_item_quantity INTEGER Общее количество товаров в этом событии, представляющее собой сумму items.quantity.
ecommerce.purchase_revenue_in_usd FLOAT Доход от покупок в этом событии (в долларах США/условных единицах). Заполняется только для события purchase.
ecommerce.purchase_revenue FLOAT Доход от покупок в этом событии (в местной валюте/условных единицах). Заполняется только для события purchase.
ecommerce.refund_value_in_usd ecommerce.refund_value_in_usd Сумма возврата средств в этом событии (в долларах США/условных единицах). Заполняется только для события refund.
ecommerce.refund_value FLOAT Сумма возврата средств в этом событии (в местной валюте/условных единицах). Заполняется только для события refund.
ecommerce.shipping_value_in_usd FLOAT Стоимость доставки в этом событии (в долларах США/условных единицах).
ecommerce.shipping_value FLOAT Стоимость доставки в этом событии (в местной валюте).
ecommerce.tax_value_in_usd FLOAT Сумма налога в этом событии (в долларах США/условных единицах).
ecommerce.tax_value FLOAT Сумма налога в этом событии (в местной валюте/условных единицах).
ecommerce.transaction_id STRING Идентификатор транзакции электронной торговли.
ecommerce.unique_items INTEGER Количество уникальных товаров в этом событии на основе item_id (идентификатора товара), item_name (названия товара) и item_brand (бренда товара).
Товары    
items RECORD Повторная запись товаров, включенных в это событие.
items.item_id STRING Идентификатор товара.
items.item_name STRING Название товара.
items.item_brand STRING Бренд товара.
items.item_variant STRING Разновидность товара.
items.item_category STRING Категория товара.
items.item_category2 STRING Подкатегория товара.
items.item_category3 STRING Подкатегория товара.
items.item_category4 STRING Подкатегория товара.
items.item_category5 STRING Подкатегория товара.
items.price_in_usd FLOAT Цена товара (в долларах США/условных единицах).
items.price FLOAT Цена товара (в местной валюте).
items.quantity INTEGER Количество единиц товара.
items.item_revenue_in_usd FLOAT Доход от этого товара, рассчитанный как price_in_usd * quantity (цена в долларах США, умноженная на количество). Заполняется только для событий purchase (в долларах США/условных единицах).
items.item_revenue FLOAT Доход от этого товара, рассчитанный как price * quantity (цена, умноженная на количество). Заполняется только для событий purchase (в местной валюте/условных единицах).
items.item_refund_in_usd FLOAT Сумма возврата средств для этого товара, рассчитанная как price_in_usd * quantity (цена в долларах США, умноженная на количество). Заполняется только для событий refund (в долларах США/условных единицах).
items.item_refund FLOAT Сумма возврата средств для этого товара, рассчитанная как price * quantity (цена, умноженная на количество). Заполняется только для событий refund (в местной валюте/условных единицах).
items.coupon STRING Код купона, примененный для этого товара.
items.affiliation STRING Параметр, позволяющий установить принадлежность товара определенному поставщику или магазину.
items.location_id STRING Местоположение, связанное с товаром.
items.item_list_id STRING Идентификатор списка, в котором пользователь увидел товар.
items.item_list_name STRING Название списка, в котором пользователь увидел товар.
Items.item_list_index STRING Номер товара в списке.
items.promotion_id STRING Идентификатор промоакции товара.
items.promotion_name STRING Название промоакции товара.
items.creative_name STRING Название используемого объявления.
items.creative_slot STRING Название рекламного места.
Веб    
web_info RECORD Запись с информацией о сайте.
web_info.hostname STRING Имя хоста, связанного с зарегистрированным событием.
web_info.browser STRING Браузер, в котором пользователь просматривал контент.
web_info.browser_version STRING Версия браузера, в котором пользователь просматривал контент.

 

 

Информация для тех, кто планирует обновить SDK для Android до версии 17.2.5 или SDK для iOS до версии 16.20.0 или более поздних версий

Если вы используете старые версии SDK и собираетесь обновить их до версии 17.2.5 (для Android) или до 16.20.0 (для iOS), либо до более поздних версий, учтите следующее:

  • После обновления у вас будет доступ к данным о позициях только в рамках массива повторяющихся объектов. Данные в стандартных параметрах будут недоступны, поскольку поддерживались только в более ранних версиях SDK.
  • Это изменение позволит поддерживать анализ нескольких товаров.
  • В результате вам может быть необходимо исправить ссылки на данные о позициях и товарах.
Воспользуйтесь этим скриптом, чтобы перенести существующие наборы данных BigQuery со старой схемы экспорта на новую
  1. Войдите в консоль Cloud Platform Console и откройте страницу "Управление ресурсами".
  2. Перейдите к нужному проекту и нажмите Открыть Google Cloud Shell вверху страницы.
  3. Когда откроется оболочка, скопируйте приведенный ниже скрипт в файл migration_script.sql:
    1. Выполните команду cat > migration_script.sql.
    2. Скопируйте в оболочку приведенный ниже скрипт.
    3. Нажмите Ctrl + D, чтобы сохранить изменения и выйти.
    Скрипт (migration_script.sql):
      SELECT
      @date AS event_date,
      event.timestamp_micros AS event_timestamp,
      event.previous_timestamp_micros AS event_previous_timestamp,
      event.name AS event_name,
      event.value_in_usd  AS event_value_in_usd,
       user_dim.bundle_info.bundle_sequence_id AS event_bundle_sequence_id,
      user_dim.bundle_info.server_timestamp_offset_micros as event_server_timestamp_offset,
      (
      SELECT
        ARRAY_AGG(STRUCT(event_param.key AS key,
            STRUCT(event_param.value.string_value AS string_value,
              event_param.value.int_value AS int_value,
              event_param.value.double_value AS double_value, 
              event_param.value.float_value AS float_value) AS value))
      FROM
        UNNEST(event.params) AS event_param) AS event_params,
      user_dim.first_open_timestamp_micros AS user_first_touch_timestamp,
      user_dim.user_id AS user_id,
      user_dim.app_info.app_instance_id AS user_pseudo_id,
      "" AS stream_id,
      user_dim.app_info.app_platform AS platform,
      STRUCT( user_dim.ltv_info.revenue AS revenue,
        user_dim.ltv_info.currency AS currency ) AS user_ltv,
      STRUCT( user_dim.traffic_source.user_acquired_campaign AS name,
          user_dim.traffic_source.user_acquired_medium AS medium,
          user_dim.traffic_source.user_acquired_source AS source ) AS traffic_source,
      STRUCT( user_dim.geo_info.continent AS continent,
        user_dim.geo_info.country AS country,
        user_dim.geo_info.region AS region,
        user_dim.geo_info.city AS city ) AS geo,
      STRUCT( user_dim.device_info.device_category AS category,
        user_dim.device_info.mobile_brand_name,
        user_dim.device_info.mobile_model_name,
        user_dim.device_info.mobile_marketing_name,
        user_dim.device_info.device_model AS mobile_os_hardware_model,
        @platform AS operating_system,
        user_dim.device_info.platform_version AS operating_system_version,
        user_dim.device_info.device_id AS vendor_id,
        user_dim.device_info.resettable_device_id AS advertising_id,
        user_dim.device_info.user_default_language AS language,
        user_dim.device_info.device_time_zone_offset_seconds AS time_zone_offset_seconds,
        IF(user_dim.device_info.limited_ad_tracking, "Yes", "No") AS is_limited_ad_tracking ) AS device,
      STRUCT( user_dim.app_info.app_id AS id,
        @firebase_app_id  AS firebase_app_id,
        user_dim.app_info.app_version AS version,
        user_dim.app_info.app_store AS install_source ) AS app_info,
      (
      SELECT
        ARRAY_AGG(STRUCT(user_property.key AS key,
            STRUCT(user_property.value.value.string_value AS string_value,
              user_property.value.value.int_value AS int_value,
              user_property.value.value.double_value AS double_value,
              user_property.value.value.float_value AS float_value,
              user_property.value.set_timestamp_usec AS set_timestamp_micros ) AS value))
      FROM
        UNNEST(user_dim.user_properties) AS user_property) AS user_properties
    FROM
      `SCRIPT_GENERATED_TABLE_NAME`,
      UNNEST(event_dim) AS event
      
  4. Откройте новую оболочку и скопируйте приведенный ниже скрипт в файл migration.sh:
    1. Выполните команду cat > migration.sh.
    2. Скопируйте в оболочку приведенный ниже скрипт.
    3. Нажмите Ctrl + D, чтобы сохранить изменения и выйти.
    Добавьте в приведенный ниже скрипт свой идентификатор ресурса Аналитики, идентификатор проекта BigQuery, идентификатор приложения в Firebase, название набора данных BigQuery, а также укажите даты начала и окончания для нужных данных.
    Скрипт (migration.sh):
    # Идентификатор ресурса Аналитики для проекта. Найдите его в настройках Google Аналитики на платформе Firebase.
    PROPERTY_ID=ваш идентификатор ресурса Аналитики
    
    # Проект Bigquery Export.
    BQ_PROJECT_ID="ваш идентификатор проекта BigQuery" (например, "firebase-public-project")
    
    # Идентификатор вашего приложения в Firebase.
    FIREBASE_APP_ID="идентификатор вашего приложения в Firebase" (например, "1:300830567303:ios:09b1ab1d3ca29bda")
    
    # Набор данных, из которого выполняется импорт.
    BQ_DATASET="название набора данных BigQuery, из которого выполняется импорт" (например, "com_firebase_demo_IOS")
    
    # Платформа
    PLATFORM="платформа приложения – ANDROID или IOS"
    
    # Диапазон дат, данные за которые необходимо перенести, включая [START_DATE,END_DATE].
    START_DATE=20180324
    END_DATE=20180327
    
    # Изменять следующий скрипт не рекомендуется.
    startdate=$(date -d"$START_DATE"  +%Y%m%d) || exit -1
    enddate=$(date -d"$END_DATE"  +%Y%m%d) || exit -1
    
    # Выполните итерации для заданных дат.
    DATE="$startdate"
    while [ "$DATE" -le "$enddate" ]; do
    
            # Таблица BigQuery на основе приведенных выше параметров.
            BQ_TABLE="$BQ_PROJECT_ID.$BQ_DATASET.app_events_$DATE"
    
            echo "Migrating $BQ_TABLE"
    
            cat migration_script.sql | sed -e "s/SCRIPT_GENERATED_TABLE_NAME/$BQ_TABLE/g" | bq query \
            --debug_mode \
            --allow_large_results \
            --noflatten_results \
            --use_legacy_sql=False \
            --destination_table analytics_$PROPERTY_ID.events_$DATE \
            --batch \
            --append_table \
            --parameter=firebase_app_id::$FIREBASE_APP_ID \
            --parameter=date::$DATE \
            --parameter=platform::$PLATFORM \
            --project_id=$BQ_PROJECT_ID
    
    
            temp=$(date -I -d "$DATE + 1 day")
            DATE=$(date -d "$temp" +%Y%m%d)
    
    done
    exit
    
    # ОКОНЧАНИЕ СКРИПТА
    
    
  5. Откройте новую оболочку и выполните команду bash migration.sh.

 

Старая схема экспорта

user_dim

Название поля Тип данных Описание
user_dim RECORD Запись с пользовательскими параметрами.
user_dim.user_id STRING Идентификатор пользователя, установленный с помощью setUserId API.
user_dim.first_open_timestamp_micros INTEGER Время в микросекундах, когда пользователь впервые запустил приложение.
user_dim.user_properties RECORD Повторная запись с пользовательскими параметрами, установленными в setUserProperty API.
user_dim.user_properties.key STRING Название свойства пользователя.
user_dim.user_properties.value RECORD Запись с информацией о свойстве пользователя.
user_dim.user_properties.value.value RECORD Запись со значением свойства пользователя.
user_dim.user_properties.value.value.string_value STRING Строковое значение свойства пользователя.
user_dim.user_properties.value.value.int_value INTEGER Значение свойства пользователя в виде целого числа.
user_dim.user_properties.value.value.double_value FLOAT Свойство пользователя в виде числа двойной точности.
user_dim.user_properties.value.set_timestamp_usec INTEGER Время последнего изменения свойства пользователя (в микросекундах).
user_dim.user_properties.value.index INTEGER Индекс свойства пользователя (от 0 до 24).
user_dim.device_info RECORD Запись с информацией об устройстве.
user_dim.device_info.device_category STRING Тип устройства (смартфон, планшет или компьютер).
user_dim.device_info.mobile_brand_name STRING Торговая марка устройства.
user_dim.device_info.mobile_model_name STRING Название модели устройства.
user_dim.device_info.mobile_marketing_name STRING Торговое наименование устройства.
user_dim.device_info.device_model STRING Модель устройства.
user_dim.device_info.platform_version STRING Версия операционной системы.
user_dim.device_info.device_id STRING Идентификатор IDFV (только если нет идентификатора IDFA).
user_dim.device_info.resettable_device_id STRING Рекламный идентификатор или IDFA.
user_dim.device_info.user_default_language STRING Язык операционной системы.
user_dim.device_info.device_time_zone_offset_seconds INTEGER Смещение времени относительно GMT (в секундах).
user_dim.device_info.limited_ad_tracking BOOLEAN Информация о настройке ограничения отслеживания объявлений.
user_dim.geo_info RECORD Запись с геоданными пользователя.
user_dim.geo_info.continent STRING Континент, где были зарегистрированы события. Определяется по IP-адресу.
user_dim.geo_info.country STRING Страна, где были зарегистрированы события. Определяется по IP-адресу.
user_dim.geo_info.region STRING Регион, где были зарегистрированы события. Определяется по IP-адресу.
user_dim.geo_info.city STRING Город, где были зарегистрированы события. Определяется по IP-адресу.
user_dim.app_info RECORD Запись с информацией о приложении.
user_dim.app_info.app_version STRING Параметр versionName (для устройств Android) или краткая версия пакета.
user_dim.app_info.app_instance_id STRING Уникальный идентификатор данного экземпляра приложения.
user_dim.app_info.app_store STRING Интернет-магазин, в котором было установлено приложение.
user_dim.app_info.app_platform STRING Платформа, на которой запущено приложение.
user_dim.traffic_source RECORD Название источника трафика, через который был привлечен пользователь.Это поле не заполняется в таблицах за текущий день.
user_dim.traffic_source.user_acquired_campaign STRING Название маркетинговой кампании, которая привлекла пользователя.Это поле не заполняется в таблицах за текущий день.
user_dim.traffic_source.user_acquired_medium STRING Название канала, который привлек пользователя (например, поисковая реклама, обычный поиск или сообщение по электронной почте). Это поле не заполняется в таблицах за день.
user_dim.traffic_source.user_acquired_source STRING Название сети, которая привлекла пользователя.Это поле не заполняется в таблицах за текущий день.
user_dim.bundle_info RECORD Запись с информацией о пакете, в котором были загружены события.
user_dim.bundle_info.bundle_sequence_id INTEGER Порядковый идентификатор пакета, в котором были загружены события.
user_dim.ltv_info RECORD Запись с информацией о показателе "Общая ценность" для данного пользователя.Это поле не заполняется в таблицах за текущий день.
user_dim.ltv_info.revenue FLOAT Показатель "Общая ценность" (доход) для данного пользователя.Это поле не заполняется в таблицах за текущий день.
user_dim.ltv_info.currency STRING Показатель "Общая ценность" (валюта) для данного пользователя.Это поле не заполняется в таблицах за текущий день.
 

event_dim

Название поля Тип данных Описание
event_dim RECORD Повторная запись с информацией о событиях в этом пакете.
event_dim.date STRING Дата, когда было зарегистрировано событие (часовой пояс, заданный в формате ГГГГММДД в приложении)
event_dim.name STRING Название события.
event_dim.params RECORD Повторная запись с параметрами события.
event_dim.params.key STRING Ключ параметра события.
event_dim.params.value RECORD Запись со значением параметра события.
event_dim.params.value.string_value STRING Строка, соответствующая значению параметра события.
event_dim.params.value.int_value INTEGER Целое число, соответствующее значению параметра события.
event_dim.params.value.double_value FLOAT Число двойной точности, соответствующее значению параметра события.
event_dim.timestamp_micros INTEGER Момент времени, в который событие было зарегистрировано в клиенте (в микросекундах, UTC).
event_dim.previous_timestamp_micros INTEGER Момент времени, в который событие было зарегистрировано в клиенте (в микросекундах, UTC).
Эта информация оказалась полезной?
Как можно улучшить эту статью?
Поиск
Удалить поисковый запрос
Закрыть поиск
Приложения Google
Главное меню
Поиск по Справочному центру
true
69256
false