The global site tag collects several events and user properties automatically
Core Events
These events are part of the core event system and are automatically fired. No configuration is necessary to see them.
Event | Event Parameters | Notes |
---|---|---|
first_visit | | Fired when a user first comes to the website. |
session_start | | Fired when a user starts a new session. |
user_engagement | engagement_time_msec | Fired when the system considers the user engaged. |
page_view | page_location, page_referrer, engagement_time_msec | To indicate a user viewed a page. |
Enhanced measurement events
If you have enhanced measurement switched on (is by default), the system will automatically generate the following events for you. In some cases, you may want to add their event dimensions so you can access the data in your reports.
Event | Extra Parameters | Notes |
---|---|---|
click | link_domain, link_url, outbound | Captures outbound clicks. The app also generates a click_outbound event that can have a user-defined value for use as a conversion. By default, this picks up clicks to images on the BigCommerce CDN. To disable that, follow the instructions in the Configuring the BigCommerce CDN domains section. |
view_search_result | search_term, unique_search_term, q_section | Can be used to create a report on internal searches. This is very similar to the search event. |
scroll | engagement_time_msec | Fires when the user first scrolls to the bottom of the page. percent_scrolled is 90% |
video_start, video_progress, video_complete | video_current_time, video_duration, video_percent, video_provider, video_title, video_url, visible (boolean) | As people view a supported video. progresses past 10%, 25%, 50%, and 75% duration time. |
file_download | file_extension, file_name, link_classes, link_domain, link_id, link_text, link_url | When someone clicks on a link to download a file. The app also generates a click_download event that can have a user-defined value for use as a conversion. |
Enhanced Ecommerce Events
There are pre-defined GA4 events to help track standard activities, including those on eCommerce sites. The following table lists the events that the app supports. You do not have to define their event dimensions unless you want to access them in your custom reports. The items dimension is an array of items; the [] after an items parameter indicates the properties supported for each item. In this case, items are products:
Event | Extra Parameters | Notes |
---|---|---|
search | search_term | When a user performs a website search. |
view_item_list | item_list_name, item_list_id, items [item_id, item_name, item_brand, item_category…, price, currency, item_list_name, item_list_id] | On home (featured, new, most popular), category, brand, products (related products, similar by views) and search pages to list products shown on the pages. If data attributes are supported (data-event-type=’list’, data-entity-id, data-list-name), they are used to find the items to include (this includes dynamically added products). Otherwise, the items are based on the stencil data for the page. If data attributes are supported, items are considered viewed when they have been visible to the user for at least 2 seconds. Otherwise, their visibility is estimated based on scroll percentage and the order of the known products. |
select_item | item_list_name, item_list_id, items [item_id, item_name, item_brand, item_category…, price, currency, item_list_name, item_list_id] | When a user clicks on a product in a list. This requires the theme to include data-event-type=”list” with a data-entity-id=”nnn” on any product elements that can be clicked on. This includes when a user clicks on quick view, compare and select options. |
view_item | value, currency, items [item_id, item_name, item_brand, item_category…, price, currency] | When a user looks at a product page. |
add_to_cart | value, currency, items [quantity, discount, coupon, item_id, item_name, item_brand, item_category…, price, currency] | When a user adds items to the cart. |
remove_from_cart | value, currency, items [quantity, discount, coupon, item_id, item_name, item_brand, item_category…, price, currency] | When a user removes items from the cart. |
view_cart | value, currency, items [quantity, discount, coupon, item_id, item_variant, item_name, item_brand, item_category…, price, currency] | When a user looks at the cart page. |
begin_checkout | value, currency, coupon, items [quantity, discount, coupon, item_id, item_variant, item_name, item_brand, item_category…, price, currency] | When a user starts the checkout process. Requires the checkout type to be ‘Optimized One-Page Checkout’. |
add_shipping_info | shipping_tier, value, currency, coupon, items [quantity, discount, coupon, item_id, item_variant, item_name, item_brand, item_category…, price, currency] | When a user has completed the shipping info section of the checkout. Requires the checkout type to be ‘Optimized One-Page Checkout’. |
add_payment_info | payment_type, value, currency, coupon, items [quantity, discount, coupon, item_id, item_variant, item_name, item_brand, item_category…, price, currency] | Just before purchase. The setting of payment_type requires the checkout type to be ‘Optimized One-Page Checkout’. |
purchase | payment_type, transaction_id, shipping, tax, value, currency, coupon, items [quantity, discount, coupon, item_id, item_variant, item_name, item_brand, item_category…, price, currency] | When a user completes an order. |
refund | transaction_id, tax, value, currency, method, items [item_id, item_name, quantity] | When a refund is made on an order. This requires adding the Measurement Protocol API Secret into the settings as it is server-side only. |
generate_lead | currency, value | When a user successfully sends a message via a contact form. This can be given a value in the Global Tag Values section. A good candidate to be set as a conversion in GA4. |
add_to_wishlist | value, currency, items [item_id, item_name, item_brand, item_category…, price, currency] | When a user adds an item to their wishlist. |
sign_up | method | When a user creates an account. Method is ‘site’. |
exception | description, error_type, error_message, error_filename, error_lineno, error_colno | When JavaScript, console or JSON-LD errors happens on the page. The ‘description’ property contains a general summary of the error, while the other properties provide specific info if available. |
login | method | Method is ‘site’ for general logins via the site-wide menu, ‘checkout’ for logins while checking out, and ‘guest’ for automated logins on checkout completion. |
view_promotion | location_id (‘banner_top’, ‘banner_bottom’), items [promotion_id, promotion_name, creative_slot] | When a banner is shown, it is tracked as a view_promotion event. This can be seen in the Promotions card of the Monetization overview report. promotion_id indicates the id of the banner used creative_slot contains the id and the location (top, bottom) of the banner. If data attributes are supported, banners are considered viewed when they have been visible to the user for at least 2 seconds. Otherwise, their visibility is estimated based on a 10% scroll for top banners and a 90% scroll for bottom banners. |
select_promotion | location_id (‘banner_top’, ‘banner_bottom’), items [promotion_id, promotion_name, creative_slot] | When a banner is clicked on, it is tracked as a select_promotion event. This requires the theme to include data-event-type=”promotion” data-entity-id=”…” on any promotion elements that can be clicked on. |
BigCommerce Custom Events
These are events that GA4 has not officially defined. They track BigCommerce-specific user activity that could be classed as a conversion.
Event | Extra Parameters | Notes |
---|---|---|
logout | method | A custom event when a user logs out via the site-wide menu or during the checkout process. Method is ‘site’ or ‘checkout’ |
add_customer_info | value, currency, items [quantity, discount, coupon, item_id, item_name, item_brand, item_category…, price, currency] | In the checkout process, once the user has given their email or logged in |
add_billing_info | value, currency, items [quantity, discount, coupon, item_id, item_name, item_brand, item_category…, price, currency] | In the checkout process, once the user has given their billing address |
subscribe | currency, value | A custom event when someone successfully subscribes to the newsletter. This can be given a value in the Global Tag Values section. A good candidate to be set as a conversion in GA4. |
click_phone | link_url, value, currency | A custom event when someone clicks on a phone number link (tel:). A value for this event can be set in the Global Tag Values section and it can be set as a conversion in GA4. |
click_email | link_url, value, currency | A custom event when someone clicks on an email link (mailto:). A value for this event can be set in the Global Tag Values section and it can be set as a conversion in GA4. |
click_download | link_url, value, currency | A custom event when someone clicks on a downloadable link. A value for this event can be set in the Global Tag Values section and it can be set as a conversion in GA4. There is also a built-in file_download event. |
click_social | link_url, value, currency | A custom event when someone clicks on one of your social media profile links. A value for this event can be set in the Global Tag Values section and it can be set as a conversion in GA4. |
click_outbound | link_url, value, currency | A custom event when someone clicks on an outbound link. A value for this event can be set in the Global Tag Values section and it can be set as a conversion in GA4. This event ignores links to the BigCommerce CDN as it considers them internal. There is also a built-in outbound link event called ‘click’. |
quick_search | search_term | This is based on the user stopping for at least a second when typing in the search box and with a search term of 3 characters or more. In most cases, this would have triggered the quick search result to show. |
Performance and Core Web Vitals Events
If you enable Web Vitals in the settings, the following events will be generated. You will need to add any dimensions you would like to report on. Times are in milliseconds and are based on the time since the first request for the page was sent.
Event | Extra Properties | Notes |
---|---|---|
LCP | value, metric_rating, metric_status, debug_target, event_time, metric_id, metric_value, metric_delta | Largest Contentful Paint (LCP): The time it takes for a page’s main content to load. A good LCP measurement is less than or equal to 2,500 ms (2.5 seconds). A poor measurement is greater than 4,000 ms (4 seconds). value contains the LCP timing, and debug_target contains a CSS selector for the element chosen as the LCP candidate. |
FID | value, metric_rating, metric_status, debug_target, debug_event, debug_timing, event_time, metric_id, metric_value, metric_delta | First Input Delay (FID): The time it takes for a page to become interactive. A good measurement is less than or equal to 100 ms. A poor measurement is greater than 300 ms. This fires on the first user interaction. Therefore it may not fire on all pages. value contains the FID timing. |
CLS | value, metric_rating, metric_status, debug_target, event_time, metric_id, metric_value, metric_delta | Cumulative Layout Shift (CLS): The amount of unexpected layout shift of visual page content. A good measurement is less than or equal to 0.1. A poor measurement is greater than 0.25. value contains the CLS score, and debug_target contains a CSS selector for the element related to the largest Layout Shift. |
FCP | value, metric_rating, metric_status, event_time, metric_id, metric_value, metric_delta | First Contentful Paint (FCP): The time it takes before the first bit of content is shown. |
TTFB | value, metric_rating, metric_status, event_time, metric_id, metric_value, metric_delta | Time To First Byte (TTFB): The time for the server to initially respond to a page request. |
performance_metrics_hidden | eventTime, fetchStart, requestStart, responseStart, responseEnd, domContentLoadedEventStart, domContentLoadedEventEnd, loadEventStart, loadEventEnd, transferSize, type, redirectCount, fcp, fid, cls, lcp, fp, clsSelectorPart1, clsSelectorPart2, lcpSelectorPart1, lcpSelectorPart2 | Beta Feature. The page’s performance metrics at the time the page fires the visibilitychange event and the state is hidden (e.g. the tab is no longer visible). Does not work on Safari. |
performance_metrics_pagehide | eventTime, fetchStart, requestStart, responseStart, responseEnd, domContentLoadedEventStart, domContentLoadedEventEnd, loadEventStart, loadEventEnd, transferSize, type, redirectCount, fcp, fid, cls, lcp, fp, clsSelectorPart1, clsSelectorPart2, lcpSelectorPart1, lcpSelectorPart2 | Beta Feature. The page’s performance metrics at the time the page fires the pagehide event. |
Common Properties
All events may contain the following extra properties:
- user_id (to Measure activity across platforms)
- allow_ad_personalization_signals (an option in the settings, enabled by default)
- ignore_referrer (ignore any referrer on the order confirmation page, enabled by default)
- content_group (set to page type)
- active_currency_code
- effective_connection_type (‘slow-2g’, ‘2g’, ‘3g’, or ‘4g’)
- save_data (if the user has requested that network data should be minimised)
And the following user properties:
- customer_id
- customer_group_name
- customer_group_id
- user_currency_code
Server-Side Events
The previous events are fired from the user’s browser as they interact with your store. If you provide your GA4 Measurement Protocol API Secret, the app can trigger extra events from our server. Those events will be connected with the user’s events if they are a logged-in customer.
Server-side events honour the user’s consent settings.
Server-Side Purchase Events
On a purchase a server_purchase event is fired with the following parameters:
- transaction_id
- tax
- value
- currency
- datetime
- method (from order.order_source)
- items [quantity, item_name, item_id, tax, price, currency, item_variant]
The values are taken from the values BigCommerce use.
Server-Side Order Status Events
An order_status_update event is fired with the following parameters when an order status is changed, e.g., Created, Shipped, Completed:
- transaction_id
- order_status
- order_status_id
- previous_order_status_id
- order_payment_status
The values are taken from the values BigCommerce use.
Server-Side Refund Event
On a refund, the app will also fire the enhanced eCommerce refund event with the following parameters. This should be taken into account by the enhanced eCommerce reports:
- transaction_id
- tax
- value
- currency
- datetime
- method (from order.order_source)
- items [quantity, item_name, item_id]