本文介绍了 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(例如 items
和 event_params
)是可重复的。下面介绍了表中的各列。
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 相关字段用于包含对事件所关联用户进行唯一标识的信息。 | ||
字段名称 | 数据类型 | 说明 |
---|---|---|
is_active_user | BOOLEAN |
用户在日历日的任何时间点处于活跃状态 (True) 还是无效状态 (False) 仅包含在每日表格 ( |
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 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 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 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 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 RECORD 用于包含与首次获取用户的流量来源相关的信息。当日汇成的表中不会填充此 RECORD。 注意:如果用户在安装应用后与后续广告系列进行互动,traffic_source 的值不会改变。 |
||
字段名称 | 数据类型 | 说明 |
---|---|---|
traffic_source.name | STRING | 首次获取用户的营销广告系列的名称。当日汇成的表中不会填充此字段。 |
traffic_source.medium | STRING | 最先获取到用户的媒介名称(付费搜索、自然搜索、电子邮件等)。当日汇成的表中不会填充此字段。 |
traffic_source.source | STRING | 最先获取到用户的广告联盟的名称。当日汇成的表中不会填充此字段。 |
stream 和 platform 相关字段用于包含与数据流和应用平台相关的信息。 | ||
字段名称 | 数据类型 | 说明 |
---|---|---|
stream_id | STRING | 发起事件的来源数据流的数字 ID。 |
platform | STRING | 发起事件的来源数据流平台(Web、iOS 或 Android)。 |
此 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 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 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_view
的 page_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 | |||
中 | 引荐 | |||
来源 | ||||
page_referrer | https://www.google.com | |||
<parameters...> | <values...> |
此事件数据在 GA4 界面中显示如下。
如果您使用的是旧版 SDK 并计划升级到 Android 17.2.5(或更高版本)和/或 iOS 16.20.0(或更高版本),则应考虑以下事项:
- 要使用当前的 BigQuery Export 架构,您必须将 SDK 升级到 Android 17.2.5(或更高版本)和/或 iOS 16.20.0(或更高版本)。使用较低版本的 SDK 时,导出的数据将反映旧架构。
- 升级后,您将只能在重复 items 数组中访问商品数据;商品数据将不再在标准事件参数中可用,因为它低于这些 SDK 版本。
- 进行此项更改是为了支持多产品分析。
- 您可能需要因此调整对商品/产品数据的引用。
- 登录到 Cloud Platform 控制台 > 管理资源页面。
- 打开要迁移数据的项目,然后在页面顶部点击激活 Google Cloud Shell。
- 在该 shell 打开后,将以下脚本复制到一个名为
migration_script.sql
的文件中:- 发送
cat > migration_script.sql
命令。 - 将以下脚本复制并粘贴到 shell 中。
- 按 Ctrl+D 保存并退出。
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
- 发送
- 打开一个新 shell,然后将以下 bash 脚本复制到一个名为
migration.sh
的文件中:- 发出
cat > migration.sh
命令 - 将以下脚本复制并粘贴到 shell 中。
- 按 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 # 脚本结束
- 发出
- 打开一个新 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 | 客户端中上一次记录此事件的时间(以微秒为单位,采用世界协调时间)。 |