BigQuery GA4 Table Schema Explained: Fields, Types & Structure

By: Roman Myskin - Sept. 29, 2025


Detailed guide to the BigQuery GA4 table schema, including all fields, types, and nested structures such as event_params, user_properties, ecommerce, and items. Learn how GA4 stores event and user data for analysis in BigQuery

Top-Level Fields

Field Name Mode Type Description
event_date NULLABLE STRING Date of the event in YYYYMMDD format
event_timestamp NULLABLE INTEGER Timestamp of the event in microseconds
event_name NULLABLE STRING Name of the event
event_previous_timestamp NULLABLE INTEGER Timestamp of previous event for the same user
event_value_in_usd NULLABLE FLOAT Monetary value of the event in USD
event_bundle_sequence_id NULLABLE INTEGER Sequence ID of the event bundle
event_server_timestamp_offset NULLABLE INTEGER Offset between client and server timestamps
user_id NULLABLE STRING User ID (if available)
user_pseudo_id NULLABLE STRING Anonymous user identifier
user_first_touch_timestamp NULLABLE INTEGER Timestamp of the user’s first interaction
stream_id NULLABLE INTEGER ID of the data stream
platform NULLABLE STRING Platform where event occurred

Nested / Repeated Fields

event_params (REPEATED RECORD)
Field Name Mode Type Description
key NULLABLE STRING Parameter name
value.string_value NULLABLE STRING String representation
value.int_value NULLABLE INTEGER Integer representation
value.float_value NULLABLE FLOAT Float representation
value.double_value NULLABLE FLOAT Double representation
user_properties (REPEATED RECORD)
Field Name Mode Type Description
key NULLABLE STRING Property name
value.string_value NULLABLE STRING String representation
value.int_value NULLABLE INTEGER Integer representation
value.float_value NULLABLE FLOAT Float representation
value.double_value NULLABLE FLOAT Double representation
value.set_timestamp_micros NULLABLE INTEGER Timestamp when property was set
privacy_info (RECORD)
Field Name Mode Type Description
analytics_storage NULLABLE INTEGER Analytics storage consent
ads_storage NULLABLE INTEGER Ads storage consent
uses_transient_token NULLABLE STRING Flag for transient token usage
user_ltv (RECORD)
Field Name Mode Type Description
revenue NULLABLE FLOAT Lifetime revenue of the user
currency NULLABLE STRING Currency code for revenue
device (RECORD)
Field Name Mode Type Description
category NULLABLE STRING Device category (mobile, tablet, desktop)
mobile_brand_name NULLABLE STRING Mobile brand
mobile_model_name NULLABLE STRING Mobile model
mobile_marketing_name NULLABLE STRING Marketing name of the device
mobile_os_hardware_model NULLABLE INTEGER OS hardware model identifier
operating_system NULLABLE STRING OS name
operating_system_version NULLABLE STRING OS version
vendor_id NULLABLE INTEGER Vendor identifier
advertising_id NULLABLE INTEGER Advertising ID
language NULLABLE STRING Device language
is_limited_ad_tracking NULLABLE STRING Flag for limited ad tracking
time_zone_offset_seconds NULLABLE INTEGER Time zone offset in seconds
web_info.browser NULLABLE STRING Browser name
web_info.browser_version NULLABLE STRING Browser version
geo (RECORD)
Field Name Mode Type Description
continent NULLABLE STRING Continent code
sub_continent NULLABLE STRING Sub-continent
country NULLABLE STRING Country code
region NULLABLE STRING Region name
city NULLABLE STRING City name
metro NULLABLE STRING Metro code or name
app_info (RECORD)
Field Name Mode Type Description
id NULLABLE STRING App identifier
version NULLABLE STRING App version
install_store NULLABLE STRING App store used for installation
firebase_app_id NULLABLE STRING Firebase App ID
install_source NULLABLE STRING Source of installation
traffic_source (RECORD)
Field Name Mode Type Description
medium NULLABLE STRING Traffic medium
name NULLABLE STRING Campaign name
source NULLABLE STRING Traffic source
event_dimensions (RECORD)
Field Name Mode Type Description
hostname NULLABLE STRING Hostname of the site/app
ecommerce (RECORD)
Field Name Mode Type Description
total_item_quantity NULLABLE INTEGER Total number of items
purchase_revenue_in_usd NULLABLE FLOAT Purchase revenue in USD
purchase_revenue NULLABLE FLOAT Purchase revenue in local currency
refund_value_in_usd NULLABLE FLOAT Refund in USD
refund_value NULLABLE FLOAT Refund in local currency
shipping_value_in_usd NULLABLE FLOAT Shipping cost in USD
shipping_value NULLABLE FLOAT Shipping cost in local currency
tax_value_in_usd NULLABLE FLOAT Tax value in USD
tax_value NULLABLE FLOAT Tax value in local currency
unique_items NULLABLE INTEGER Count of unique items
transaction_id NULLABLE STRING Transaction ID
items (REPEATED RECORD)
Field Name Mode Type Description
item_id NULLABLE STRING Item identifier
item_name NULLABLE STRING Item name
item_brand NULLABLE STRING Item brand
item_variant NULLABLE STRING Item variant
item_category NULLABLE STRING Item category level 1
item_category2 NULLABLE STRING Item category level 2
item_category3 NULLABLE STRING Item category level 3
item_category4 NULLABLE STRING Item category level 4
item_category5 NULLABLE STRING Item category level 5
price_in_usd NULLABLE FLOAT Price in USD
price NULLABLE FLOAT Price in local currency
quantity NULLABLE INTEGER Quantity purchased
item_revenue_in_usd NULLABLE FLOAT Revenue from item in USD
item_revenue NULLABLE FLOAT Revenue from item in local currency
item_refund_in_usd NULLABLE FLOAT Refund in USD
item_refund NULLABLE FLOAT Refund in local currency
coupon NULLABLE STRING Coupon applied
affiliation NULLABLE STRING Affiliation/store name
location_id NULLABLE STRING Item location ID
item_list_id NULLABLE STRING List ID
item_list_name NULLABLE STRING List name
item_list_index NULLABLE STRING Position in list
promotion_id NULLABLE STRING Promotion ID
promotion_name NULLABLE STRING Promotion name
creative_name NULLABLE STRING Creative asset name
creative_slot NULLABLE STRING Creative slot name


Home