[GA4] BigQuery Export 架构

本文介绍了 Google Analytics 4 媒体资源和 Google Analytics for Firebase 中的数据在导出至 BigQuery 时所采用的格式和架构。

数据集

对于每个关联到 BigQuery 的 Google Analytics 4 媒体资源和 Firebase 项目,系统都会在 BigQuery 项目中添加一个名为“analytics_<property_id>”的数据集。“媒体资源 ID”是指您的 Google Analytics 媒体资源 ID,可以在 Google Analytics 4 媒体资源的“媒体资源设置”以及 Firebase 中的“应用分析设置”下找到。任何 Google Analytics 4 媒体资源和应用在启用了 BigQuery Export 之后,其数据都会导出到与之对应的数据集中。

如果启用了“每天”导出选项,系统会每天在每个数据集中创建一个名为 events_YYYYMMDD 的表。

如果启用了“流式”导出选项,系统会创建一个名为 events_intraday_YYYYMMDD 的表。此表会随着全天事件的记录而不断填充。一旦 events_YYYYMMDD 完成,此表将在每天结束时删除。

并非所有设备都会在触发事件的同一天将其数据发送给 Google Analytics。考虑到这种延迟,Google Analytics 会在更新每天汇成的表 (events_YYYYMMDD) 时,填入在事件触发日期后最多三天内的事件。无论相应数据是否延迟,事件都会有正确的时间戳。系统不会记录在这三天过后才收到的事件。

如果您使用的是 BigQuery 沙盒,系统不会在当日导入事件,并且还需遵循其他限制

如果您想在当日导入,请从沙盒升级

events_YYYYMMDD 表中的每一列代表一个针对特定事件的参数。请注意,有些参数会嵌套在 RECORD 中,而且有些 RECORD(例如 itemsevent_params)是可重复的。下面介绍了表中的各列。

event
event 相关字段用于包含对事件进行唯一标识的信息。
字段名称 数据类型 说明
batch_event_index INTEGER 指明批处理中每个事件先后顺序(根据事件在设备上发生的顺序确定)的数字。
batch_ordering_id INTEGER 每次从给定网页发送网络请求时都会增加的单调递增数字。
batch_page_id INTEGER 分配给网页的序列号;互动中每增加一个网页,此数字就会递增。
event_date STRING 事件的记录日期(采用 YYYYMMDD 格式,以应用所注册时区为准)。
event_timestamp INTEGER 客户端中记录此事件的时间(以微秒为单位,采用世界协调时间 [UTC])。
event_previous_timestamp INTEGER 客户端中上一次记录此事件的时间(以微秒为单位,采用 UTC)。
event_name STRING 事件的名称。
event_value_in_usd FLOAT 事件“value”参数的货币换算值(以美元为单位)。
event_bundle_sequence_id INTEGER 用于上传这些事件的软件包的序列 ID。
event_server_timestamp_offset INTEGER 收集时间和上传时间之间的时间戳偏移量(以微秒为单位)。

event_params RECORD

event_params RECORD 可存储广告系列级和上下文事件参数,以及任何由用户定义的事件参数。系统会对与事件关联的每个键重复 event_params RECORD。

存储在 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 如果事件参数由浮点值表示,该参数会填入此字段。该字段目前未在使用。

item_params RECORD

item_params RECORD 可存储商品参数以及任何由用户定义的商品参数。存储在 item_params RECORD 中的这组参数对于每个实现都是唯一的。

字段名称 数据类型 说明
item_params.key STRING 商品参数的名称。
item_params.value RECORD 包含商品参数值的记录。
item_params.value.string_value STRING 如果商品参数由字符串表示,该参数会填入此字段。
item_params.value.int_value INTEGER 如果商品参数由整数表示,该参数会填入此字段。
item_params.value.double_value FLOAT 如果商品参数由双精度值表示,该参数会填入此字段。
item_params.value.float_value FLOAT 如果商品参数由浮点值表示,该参数会填入此字段。
user
user 相关字段用于包含对事件所关联用户进行唯一标识的信息。
字段名称 数据类型 说明
is_active_user BOOLEAN

用户在日历日的任何时间点处于活跃状态 (True) 还是无效状态 (False)

仅包含在每日表格 (events_YYYYMMDD)) 中。

user_id STRING 分配给用户的唯一 ID。
user_pseudo_id STRING 用户的假名 ID(例如,应用实例 ID)。在用户首次打开应用或访问网站时,系统为其分配的唯一标识符。
user_first_touch_timestamp INTEGER 用户首次打开应用或访问网站的时间(以微秒为单位)。

privacy_info 相关字段

privacy_info 相关字段用于包含根据意见征求模式启用后的用户同意情况获取的信息。
字段名称 数据类型 说明
privacy_info.ads_storage STRING

是否针对用户启用了广告定位。

可能的值:Yes、No、Unset

privacy_info.analytics_storage STRING

是否针对用户启用了 Google Analytics 存储机制。

可能的值:Yes、No、Unset

privacy_info.uses_transient_token STRING

网站用户是否拒绝了 Google Analytics 使用存储空间的请求,以及开发者是否启用了在没有 Cookie 的情况下基于服务器数据中的临时令牌进行衡量的功能。

可能的值:Yes、No、Unset

user_properties RECORD

user_properties RECORD 用于包含您已设置的任何用户属性。系统会对与用户关联的每个键重复此 RECORD。
字段名称 数据类型 说明
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 RECORD 用于包含与用户相关的生命周期价值信息。当日汇成的表中不会填充此 RECORD。
字段名称 数据类型 说明
user_ltv.revenue FLOAT 此用户的生命周期价值(收入)。当日汇成的表中不会填充此字段。
user_ltv.currency STRING 此用户的生命周期价值(币种)。当日汇成的表中不会填充此字段。
device
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 广告 ID/IDFA。
device.language STRING 操作系统语言。
device.time_zone_offset_seconds INTEGER 与格林尼治标准时间 (GMT) 的时差(以秒为单位)。
device.is_limited_ad_tracking BOOLEAN

设备的“限制广告跟踪”设置。

在 iOS14+ 上,如果 IDFA 不为零,则返回 false。

device.web_info.browser STRING 用户浏览内容时所用的浏览器。
device.web_info.browser_version STRING 用户浏览内容时所用浏览器的版本。
device.web_info.hostname STRING 与所记录事件相关联的主机名。

geo

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 地址)。
app_info
app_info RECORD 用于包含与触发事件的应用相关的信息。
字段名称 数据类型 说明
app_info.id STRING 应用的程序包名称或软件包 ID。
app_info.firebase_app_id STRING 与应用关联的 Firebase 应用 ID。
app_info.install_source STRING 表示该应用是通过哪个应用商店安装的。
app_info.version STRING 应用的 versionName (Android) 或短软件包版本。
collected_traffic_source

collected_traffic_source RECORD 包含随网页的第一个事件收集的流量来源数据。

字段名称 数据类型 说明
manual_campaign_id STRING 随事件收集的手动广告系列 ID (utm_id)。
manual_campaign_name STRING 随事件收集的手动广告系列名称 (utm_campaign)。
manual_source STRING 随事件收集的手动广告系列来源 (utm_source)。此外,还包含引荐参数(而不仅仅是 UTM 值)的解析参数。
manual_medium STRING 随事件收集的手动广告系列媒介 (utm_medium)。此外,还包含引荐参数(而不仅仅是 UTM 值)的解析参数。
manual_term STRING 随事件收集的手动关键字/字词 (utm_term)。
manual_content STRING 随事件收集的其他手动广告系列元数据 (utm_content)。
manual_creative_format STRING 随事件收集的人工广告系列广告素材格式 (utm_creative_format)。
manual_marketing_tactic STRING 随事件收集的人工广告系列营销策略 (utm_marketing_tactic)。
manual_source_platform STRING 随事件收集的人工广告系列来源平台 (utm_source_platform)。
gclid STRING 随事件收集的 Google 点击标识符。
dclid STRING 随事件收集、适用于 Display & Video 360 和 Campaign Manager 360 的 DoubleClick 点击标识符。
srsltid STRING 随事件收集的 Google Merchant Center 标识符。
session_traffic_source_last_click

session_traffic_source_last_click RECORD 包含 Google 广告和人工广告上下文中归因于最终点击的会话流量来源数据(如有)。

字段名称 数据类型 说明
session_traffic_source_last_click. manual_campaign.campaign_id STRING 发生了最终点击的人工广告系列的 ID
session_traffic_source_last_click. manual_campaign.campaign_name STRING 发生了最终点击的人工广告系列的名称
session_traffic_source_last_click. manual_campaign.medium STRING 发生了最终点击的人工广告系列的媒介(例如付费搜索、自然搜索、电子邮件)
session_traffic_source_last_click. manual_campaign.term STRING 发生了最终点击的人工广告系列的关键字/搜索字词
session_traffic_source_last_click. manual_campaign.content STRING 发生了最终点击的人工广告系列的其他元数据
session_traffic_source_last_click. manual_campaign.source_platform STRING 发生了最终点击的人工广告系列的平台(例如搜索引擎、社交媒体)
session_traffic_source_last_click. manual_campaign.source STRING 发生了最终点击的人工广告系列的平台内具体来源
session_traffic_source_last_click. manual_campaign.creative_format STRING 发生了最终点击的人工广告系列的广告素材格式
session_traffic_source_last_click. manual_campaign.marketing_tactic STRING 发生了最终点击的人工广告系列的营销策略
session_traffic_source_last_click. google_ads_campaign.customer_id STRING 与 Google Ads 账号相关联的客户 ID
session_traffic_source_last_click. google_ads_campaign.account_name STRING Google Ads 账号的名称
session_traffic_source_last_click. google_ads_campaign.campaign_id STRING Google Ads 广告系列的 ID
session_traffic_source_last_click. google_ads_campaign.campaign_name STRING Google Ads 广告系列的名称
session_traffic_source_last_click. google_ads_campaign.ad_group_id STRING Google Ads 广告系列中的广告组的 ID
session_traffic_source_last_click. google_ads_campaign.ad_group_name STRING Google Ads 广告系列中的广告组的名称
session_traffic_source_last_click.
cross_channel_campaign.campaign_name
STRING 发生了最终点击的跨渠道广告系列的名称
session_traffic_source_last_click.
cross_channel_campaign.campaign_id
STRING 发生了最终点击的跨渠道广告系列的 ID
session_traffic_source_last_click.
cross_channel_campaign.source_platform
STRING 发生了最终点击的跨渠道广告系列的平台
session_traffic_source_last_click.
cross_channel_campaign.source
STRING 发生了最终点击的跨渠道广告系列的平台内具体来源
session_traffic_source_last_click.
cross_channel_campaign.medium
STRING 发生了最终点击的跨渠道广告系列的媒介
session_traffic_source_last_click.
sa360_campaign.campaign_name
STRING 发生了最终点击的 SA360 广告系列的名称
session_traffic_source_last_click.
sa360_campaign.source
STRING 发生了最终点击的 SA360 广告系列的平台内具体来源
session_traffic_source_last_click.
sa360_campaign.medium
STRING 发生了最终点击的 SA360 广告系列的媒介
session_traffic_source_last_click.
sa360_campaign.ad_group_id
STRING SA360 广告系列中的广告组的 ID
session_traffic_source_last_click.
sa360_campaign.ad_group_name
STRING SA360 广告系列中的广告组的名称
session_traffic_source_last_click.
sa360_campaign.campaign_id
STRING 发生了最终点击的 SA360 广告系列的 ID
session_traffic_source_last_click.
sa360_campaign.creative_format
STRING 发生了最终点击的 SA360 广告系列的广告素材格式
session_traffic_source_last_click.
sa360_campaign.engine_account_name
STRING SA360 引擎账号的名称
session_traffic_source_last_click.
sa360_campaign.engine_account_type
STRING 包含 SA360 广告系列的引擎账号类型
session_traffic_source_last_click.
sa360_campaign.manager_account_name
STRING SA360 经理账号的名称
session_traffic_source_last_click.
dv360_campaign.advertiser_id
STRING DV360 广告客户的 ID
session_traffic_source_last_click.
dv360_campaign.advertiser_name
STRING DV360 广告客户的名称
session_traffic_source_last_click.
dv360_campaign.campaign_id
STRING 发生了最终点击的 DV360 广告系列的 ID
session_traffic_source_last_click.
dv360_campaign.campaign_name
STRING 发生了最终点击的 DV360 广告系列的名称
session_traffic_source_last_click.
dv360_campaign.creative_id
STRING 发生了最终点击的 DV360 广告系列的广告素材 ID
session_traffic_source_last_click.
dv360_campaign.creative_format
STRING 发生了最终点击的 DV360 广告系列的广告素材格式
session_traffic_source_last_click.
dv360_campaign.creative_name
STRING 发生了最终点击的 DV360 广告系列的广告素材名称
session_traffic_source_last_click.
dv360_campaign.marketing_tactic
STRING 发生了最终点击的 DV360 广告系列的营销策略
session_traffic_source_last_click.
dv360_campaign.exchange_id
STRING 发生了最终点击的 DV360 广告系列的广告交易平台 ID
session_traffic_source_last_click.
dv360_campaign.exchange_name
STRING 发生了最终点击的 DV360 广告系列的广告交易平台名称
session_traffic_source_last_click.
dv360_campaign.insertion_order_id
STRING 发生了最终点击的 DV360 广告系列中的广告订单 ID
session_traffic_source_last_click.
dv360_campaign.insertion_order_name
STRING 发生了最终点击的 DV360 广告系列中的广告订单名称
session_traffic_source_last_click.
dv360_campaign.line_item_id
STRING 发生了最终点击的 DV360 广告系列中的订单项 ID
session_traffic_source_last_click.
dv360_campaign.line_item_name
STRING 发生了最终点击的 DV360 广告系列中的订单项名称
session_traffic_source_last_click.
dv360_campaign.partner_id
STRING DV360 合作伙伴的 ID
session_traffic_source_last_click.
dv360_campaign.partner_name
STRING DV360 合作伙伴的名称
session_traffic_source_last_click.
dv360_campaign.source
STRING 发生了最终点击的 DV360 广告系列的平台内具体来源
session_traffic_source_last_click.
dv360_campaign.medium
STRING 发生了最终点击的 DV360 广告系列的媒介
session_traffic_source_last_click.
cm360_campaign.account_id
STRING CM360 账号的 ID
session_traffic_source_last_click.
cm360_campaign.account_name
STRING CM360 账号的名称
session_traffic_source_last_click.
cm360_campaign.advertiser_id
STRING CM360 广告客户的 ID
session_traffic_source_last_click.
cm360_campaign.advertiser_name
STRING CM360 广告客户的名称
session_traffic_source_last_click.
cm360_campaign.campaign_id
STRING 发生了最终点击的 CM360 广告系列的 ID
session_traffic_source_last_click.
cm360_campaign.campaign_name
STRING 发生了最终点击的 CM360 广告系列的名称
session_traffic_source_last_click.
cm360_campaign.creative_id
STRING 发生了最终点击的 CM360 广告系列的广告素材 ID
session_traffic_source_last_click.
cm360_campaign.creative_format
STRING 发生了最终点击的 CM360 广告系列的广告素材格式
session_traffic_source_last_click.
cm360_campaign.creative_name
STRING 发生了最终点击的 CM360 广告系列的广告素材名称
session_traffic_source_last_click.
cm360_campaign.creative_type
STRING 发生了最终点击的 CM360 广告系列的广告素材类型
session_traffic_source_last_click.
cm360_campaign.creative_type_id
STRING 发生了最终点击的 CM360 广告系列的广告素材类型 ID
session_traffic_source_last_click.
cm360_campaign.creative_version
STRING 发生了最终点击的 CM360 广告系列的广告素材版本
session_traffic_source_last_click.
cm360_campaign.placement_id
STRING 发生了最终点击的 CM360 广告系列的展示位置的 ID
session_traffic_source_last_click.cm360
_campaign.placement_cost_structure
STRING 发生了最终点击的 CM360 广告系列的展示位置费用结构
session_traffic_source_last_click.
cm360_campaign.placement_name
STRING 发生了最终点击的 CM360 广告系列的展示位置名称
session_traffic_source_last_click.
cm360_campaign.rendering_id
STRING 发生了最终点击的 CM360 广告系列的呈现 ID
session_traffic_source_last_click.
cm360_campaign.site_id
STRING 发生了最终点击的 CM360 广告系列的网站 ID
session_traffic_source_last_click.
cm360_campaign.site_name
STRING 发生了最终点击的 CM360 广告系列的网站名称
session_traffic_source_last_click.
cm360_campaign.source
STRING 发生了最终点击的 CM360 广告系列的具体来源
session_traffic_source_last_click.
cm360_campaign.medium
STRING 发生了最终点击的 CM360 广告系列的媒介
traffic_source

traffic_source RECORD 用于包含与首次获取用户的流量来源相关的信息。当日汇成的表中不会填充此 RECORD。

注意:如果用户在安装应用后与后续广告系列进行互动,traffic_source 的值不会改变。

字段名称 数据类型 说明
traffic_source.name STRING 首次获取用户的营销广告系列的名称。当日汇成的表中不会填充此字段。
traffic_source.medium STRING 最先获取到用户的媒介名称(付费搜索、自然搜索、电子邮件等)。当日汇成的表中不会填充此字段。
traffic_source.source STRING 最先获取到用户的广告联盟的名称。当日汇成的表中不会填充此字段。
stream 和 platform
stream 和 platform 相关字段用于包含与数据流和应用平台相关的信息。
字段名称 数据类型 说明
stream_id STRING 发起事件的来源数据流的数字 ID。
platform STRING 发起事件的来源数据流平台(Web、iOS 或 Android)。
ecommerce
此 ecommerce RECORD 用于包含与已在网站或应用中设置的任何电子商务事件相关的信息。
字段名称 数据类型 说明
ecommerce.total_item_quantity INTEGER 此事件中的商品总数,即 items.quantity 的总和。
ecommerce.purchase_revenue_in_usd FLOAT 此事件的购买收入,以美元标准单位表示。仅为购买事件填充。
ecommerce.purchase_revenue FLOAT 此事件的购买收入,以本地货币标准单位表示。仅为购买事件填充。
ecommerce.refund_value_in_usd FLOAT 此事件中的退款金额,以美元标准单位表示。仅为退款事件填充。
ecommerce.refund_value FLOAT 此事件中的退款金额,以本地货币标准单位表示。仅为退款事件填充。
ecommerce.shipping_value_in_usd FLOAT 此事件中的运费,以美元标准单位表示。
ecommerce.shipping_value FLOAT 此事件中的运费,以本地货币表示。
ecommerce.tax_value_in_usd FLOAT 此事件中的税费,以美元标准单位表示。
ecommerce.tax_value FLOAT 此事件中的税费,以本地货币标准单位表示。
ecommerce.transaction_id STRING 电子商务交易的交易 ID。
ecommerce.unique_items INTEGER 此事件中非重复商品的数量(根据 item_id、item_name 和 item_brand 确定)。
items
items RECORD 用于包含与事件所含商品相关的信息。系统会对每件商品重复此 RECORD。
字段名称 数据类型 说明
items.item_id STRING 商品的 ID。
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 商品的数量。如果未指定,则将数量设为 1。
items.item_revenue_in_usd FLOAT 此商品的收入,计算方式为:price_in_usd * 数量。仅为采用美元标准单位的购买事件填充。
items.item_revenue FLOAT 此商品的收入,计算方式为:价格 * 数量。仅为采用本地货币标准单位的购买事件填充。
items.item_refund_in_usd FLOAT 此商品的退款金额,计算方式为:price_in_usd * 数量。仅为采用美元标准单位的退款事件填充。
items.item_refund FLOAT 此商品的退款金额,计算方式为:价格 * 数量。仅为采用本地货币标准单位的退款事件填充。
items.coupon STRING 适用于此商品的优惠券代码。
items.affiliation STRING 用于指定供应公司或实体店位置的商品关联商户。
items.location_id STRING 与商品相关的营业地点。
items.item_list_id STRING 商品向用户展示时所在列表的 ID。
items.item_list_name STRING 商品向用户展示时所在列表的名称。
Items.item_list_index STRING 商品在列表中的位置。
items.promotion_id STRING 商品促销活动的 ID。
items.promotion_name STRING 商品促销活动的名称。
items.creative_name STRING 在促销位置采用的广告素材的名称。
items.creative_slot STRING 广告素材位置的名称。

item_params RECORD

item_params RECORD 用于存储您设定的自定义商品参数。请注意,此处未包含预定义的商品参数(例如 item_id、item_name 等),这些参数将以显式字段形式导出。

存储在 item_params RECORD 中的这组参数对于每个实现都是唯一的。如需详细了解电子商务实现方式和 Google Analytics 4 items 数组,请参阅衡量电子商务

字段名称 数据类型 说明
items.item_params.key STRING 商品参数的名称。
items.item_params.value RECORD 包含商品参数值的记录。
items.item_params.value.string_value STRING 如果商品参数由字符串表示,该参数会填入此字段。
items.item_params.value.int_value INTEGER 如果商品参数由整数表示,该参数会填入此字段。
items.item_params.value.double_value FLOAT 如果商品参数由双精度值表示,该参数会填入此字段。
items.item_params.value.float_value FLOAT 如果商品参数由浮点值表示,该参数会填入此字段。
publisher(仅限抢先体验版)
publisher RECORD 包含从与广告展示相关的发布商集成(即 AdMob)中获取的事件相关信息。
字段名称 数据类型 说明
publisher RECORD 来自 AdMob 的发布商数据的记录。
publisher.ad_revenue_in_usd FLOAT 此事件带来的估算广告收入,以美元表示。仅为广告展示事件填充。
publisher.ad_format STRING 说明广告的展示方式和展示位置。常见的格式包括“插页式”“横幅”“激励广告”和“原生高级广告”。
publisher.ad_source_name STRING 投放广告的来源网络。常见的来源包括“AdMob 广告联盟”“Meta Audience Network”和“参与中介的自家广告”。
publisher.ad_unit_id STRING 您选择用来描述该广告单元的名称。广告单元是您在应用中设置的容器,用来向用户展示广告。

单个事件的数据可能以一行或多行的形式呈现,具体取决于其中是否包含重复的 RECORD。例如,包含多个 page_viewpage_view 事件会类似于下表。初始行包含事件名称、日期、时间戳和其他非重复数据项。系统会对与该事件关联的每个参数重复 event_params RECORD,并直接在事件初始行下的后续行中填充这些重复的 RECORD。

event_date event_timestamp event_name event_params.key event_params_value.string_value
20220222 1643673600483790 page_view page_location https://example.com
      page_title Home
      引荐
      来源 google
      page_referrer https://www.google.com
      <parameters...> <values...>

此事件数据在 GA4 界面中显示如下。

将 SDK 更新到 Android 17.2.5(或更高版本)和/或 iOS 16.20.0(或更高版本)时的注意事项

如果您使用的是旧版 SDK 并计划升级到 Android 17.2.5(或更高版本)和/或 iOS 16.20.0(或更高版本),则应考虑以下事项:

  • 要使用当前的 BigQuery Export 架构,您必须将 SDK 升级到 Android 17.2.5(或更高版本)和/或 iOS 16.20.0(或更高版本)。使用较低版本的 SDK 时,导出的数据将反映旧架构
  • 升级后,您将只能在重复 items 数组中访问商品数据;商品数据将不再在标准事件参数中可用,因为它低于这些 SDK 版本。
  • 进行此项更改是为了支持多产品分析。
  • 您可能需要因此调整对商品/产品数据的引用。
使用以下脚本将现有的 BigQuery 数据集从旧版导出架构迁移到新版导出架构
  1. 登录到 Cloud Platform 控制台 > 管理资源页面。
  2. 打开要迁移数据的项目,然后在页面顶部点击激活 Google Cloud Shell
  3. 在该 shell 打开后,将以下脚本复制到一个名为 migration_script.sql 的文件中:
    1. 发送 cat > migration_script.sql 命令。
    2. 将以下脚本复制并粘贴到 shell 中。
    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. 打开一个新 shell,然后将以下 bash 脚本复制到一个名为 migration.sh 的文件中:
    1. 发出 cat > migration.sh 命令
    2. 将以下脚本复制并粘贴到 shell 中。
    3. Ctrl+D 保存并退出。
    修改以下脚本,在其中添加您的 Google Analytics 媒体资源 ID、BigQuery 项目 ID、Firebase 应用 ID、BigQuery 数据集名称,以及所需数据的开始日期和结束日期。
    脚本 (migration.sh):
    # 项目的 Google Analytics 媒体资源 ID。可在 Firebase 的 Analytics 设置中找到该 ID。
    PROPERTY_ID=您的 Google Analytics 媒体资源 ID
    
    # BigQuery 导出项目。
    BQ_PROJECT_ID="您的 BigQuery 项目 ID"(例如:"firebase-public-project")
    
    # 该应用的 Firebase 应用 ID。
    FIREBASE_APP_ID="您的 Firebase 应用 ID"(例如:"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
    
            # 使用以上参数构建的 BQ 表。
            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. 打开一个新 shell,然后发送 bash migration.sh 命令
旧版导出架构

user_dim

字段名称 数据类型 说明
user_dim RECORD 用户维度记录。
user_dim.user_id STRING 通过 setUserId API 设置的用户 ID。
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 广告 ID/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 这个应用实例的专属 ID。
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 上传这些事件的软件包的序列 ID。
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 记录此事件的日期(应用所注册的时区的 YYYYMMDD 格式)。
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 客户端中记录此事件的时间(以微秒为单位,采用世界协调时间)。
event_dim.previous_timestamp_micros INTEGER 客户端中上一次记录此事件的时间(以微秒为单位,采用世界协调时间)。

该内容对您有帮助吗?

您有什么改进建议?
搜索
清除搜索内容
关闭搜索框
主菜单
12502777758557345295
true
搜索支持中心
true
true
true
true
true
69256
false
false