Skip to Content
DestinationsBigQueryClient-Side Events

BigQuery Client-Side Events

Schema for the client-side Shopify events that Vendo streams to the events table in BigQuery.

Last reviewed September 15, 2026

Vendo streams client-side Shopify storefront events to BigQuery in real time. The Web Pixel extension sends the events to the Vendo ingest API, which writes them to your BigQuery dataset.

Events Captured

The pixel listens for the Shopify event in the first column. It sends the event to BigQuery with the name in the event_name column.

Shopify eventevent_name in BigQueryDescription
page_viewedPage ViewedPage view
product_viewedProduct ViewedProduct page view
collection_viewedCollection ViewedCollection page view
search_submittedSearch SubmittedSearch performed
product_added_to_cartProduct Added To CartAdd to cart
product_removed_from_cartProduct Removed From CartRemove from cart
cart_viewedCart ViewedCart page view
checkout_startedCheckout StartedCheckout initiated
checkout_contact_info_submittedCheckout Contact Info SubmittedContact info entered
checkout_address_info_submittedCheckout Address Info SubmittedAddress entered
checkout_shipping_info_submittedCheckout Shipping Info SubmittedShipping selected
payment_info_submittedPayment Info SubmittedPayment info entered
checkout_completedCheckout CompletedPurchase completed
None (Vendo theme extension)Customer Logged InCustomer logged in. Disabled by default
None (Vendo theme extension)Newsletter RegisteredNewsletter signup submitted. Disabled by default
alert_displayedalert_displayedCheckout alert shown. Disabled by default
ui_extension_erroredui_extension_erroredCheckout UI extension failed. Disabled by default

Event Schema

Vendo writes all client-side events to the events table. The table has this schema:

ColumnTypeDescription
event_idSTRINGUnique event ID
event_nameSTRINGEvent name (for example, “page_viewed”)
event_typeSTRINGEvent type
timestampTIMESTAMPWhen the event occurred
sent_atTIMESTAMPWhen the browser sent the event
received_atTIMESTAMPWhen the ingest API received the event
user_idSTRINGShopify Customer ID (null for anonymous)
anonymous_idSTRINGShopify device/client ID
group_idSTRINGGroup ID
session_idSTRINGBrowser session ID
onesignal_idSTRINGOneSignal ID
sourceSTRINGSource identifier
librarySTRINGTracking library
context_ipSTRINGIP address
context_user_agentSTRINGBrowser user agent
context_localeSTRINGBrowser language
context_page_urlSTRINGFull page URL
context_page_pathSTRINGURL pathname
context_page_titleSTRINGDocument title
context_page_referrerSTRINGReferring URL
context_deviceSTRINGDevice type
context_osSTRINGOperating system
context_browserSTRINGBrowser name
context_screen_heightINT64Screen height in pixels
context_screen_widthINT64Screen width in pixels
context_campaign_sourceSTRINGUTM source parameter
context_campaign_mediumSTRINGUTM medium parameter
context_campaign_nameSTRINGUTM campaign parameter
context_campaign_contentSTRINGUTM content parameter
context_campaign_termSTRINGUTM term parameter
context_campaign_idSTRINGUTM ID parameter
context_campaign_source_platformSTRINGUTM source platform parameter
context_campaign_campaign_idSTRINGUTM campaign ID parameter
context_campaign_creative_formatSTRINGUTM creative format parameter
context_campaign_marketing_tacticSTRINGUTM marketing tactic parameter
context_click_id_gclidSTRINGGoogle Click ID
context_click_id_msclkidSTRINGMicrosoft Click ID
context_click_id_fbclidSTRINGFacebook Click ID
context_click_id_ttclidSTRINGTikTok Click ID
context_click_id_twclidSTRINGtwclid click ID parameter
context_click_id_sccidSTRINGsccid click ID parameter
context_click_id_dclidSTRINGdclid click ID parameter
context_click_id_ko_click_idSTRINGko_click_id click ID parameter
context_click_id_li_fat_idSTRINGli_fat_id click ID parameter
context_click_id_wbraidSTRINGwbraid click ID parameter
context_click_id_aleidSTRINGaleid click ID parameter
context_click_id_epikSTRINGepik click ID parameter
context_click_id_gbraidSTRINGgbraid click ID parameter
context_click_id_gad_sourceSTRINGgad_source click ID parameter
contextJSONFull event context
propertiesJSONEvent-specific properties
tagsREPEATED STRINGTags
segmentsREPEATED STRINGSegments

Example Queries

Replace your_project.your_dataset with your project and dataset.

Daily Visitors by UTM Source

SELECT DATE(timestamp) as day, context_campaign_source as utm_source, COUNT(*) as page_views, COUNT(DISTINCT anonymous_id) as visitors FROM `your_project.your_dataset.events` WHERE event_name = 'Page Viewed' AND timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY) GROUP BY day, utm_source ORDER BY day DESC, page_views DESC

Storefront Funnel

SELECT COUNT(DISTINCT IF(event_name = 'Product Viewed', anonymous_id, NULL)) as viewed_product, COUNT(DISTINCT IF(event_name = 'Product Added To Cart', anonymous_id, NULL)) as added_to_cart, COUNT(DISTINCT IF(event_name = 'Checkout Started', anonymous_id, NULL)) as started_checkout, COUNT(DISTINCT IF(event_name = 'Checkout Completed', anonymous_id, NULL)) as completed_checkout FROM `your_project.your_dataset.events` WHERE timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY)
SELECT CASE WHEN context_click_id_gclid IS NOT NULL THEN 'Google Ads' WHEN context_click_id_fbclid IS NOT NULL THEN 'Meta Ads' WHEN context_click_id_ttclid IS NOT NULL THEN 'TikTok Ads' WHEN context_click_id_msclkid IS NOT NULL THEN 'Microsoft Ads' ELSE 'Other' END as platform, COUNT(DISTINCT session_id) as sessions FROM `your_project.your_dataset.events` WHERE event_name = 'Page Viewed' AND timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY) GROUP BY platform ORDER BY sessions DESC
Need help?

When you contact support, give your workspace, the source or destination name, the job ID and the first error message.

support@vendodata.com
Last updated on