Automatic Events

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.

EventEvent ParametersNotes
first_visitFired when a user first comes to the website.


session_startFired when a user starts a new session.
user_engagementengagement_time_msecFired when the system considers the user engaged.
page_viewpage_location, page_referrer, engagement_time_msecTo 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.

EventExtra ParametersNotes
clicklink_domain, link_url, outboundCaptures 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_resultsearch_term, unique_search_term, q_sectionCan be used to create a report on internal searches. This is very similar to the search event.
scrollengagement_time_msecFires when the user first scrolls to the bottom of the page. percent_scrolled is 90%
video_start, video_progress, video_completevideo_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_downloadfile_extension, file_name, link_classes, link_domain, link_id, link_text, link_urlWhen 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:

EventExtra ParametersNotes
searchsearch_termWhen a user performs a website search.
view_item_listitem_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_itemitem_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_itemvalue, currency, items [item_id, item_name, item_brand, item_category…, price, currency]When a user looks at a product page.
add_to_cartvalue, 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_cartvalue, currency, items [quantity, discount, coupon, item_id, item_name, item_brand, item_category…, price, currency]When a user removes items from the cart.
view_cartvalue, 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_checkoutvalue, 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_infoshipping_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_infopayment_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’.
purchasepayment_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.
refundtransaction_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_leadcurrency, valueWhen 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_wishlistvalue, currency, items [item_id, item_name, item_brand, item_category…, price, currency]When a user adds an item to their wishlist.
sign_upmethodWhen a user creates an account. Method is ‘site’.
exceptiondescription, error_type, error_message, error_filename, error_lineno, error_colnoWhen 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.
loginmethodMethod 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_promotionlocation_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_promotionlocation_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.

EventExtra ParametersNotes
logoutmethodA custom event when a user logs out via the site-wide menu or during the checkout process. Method is ‘site’ or ‘checkout’
add_customer_infovalue, 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_infovalue, 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
subscribecurrency, valueA 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_phonelink_url, value, currencyA 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_emaillink_url, value, currencyA 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_downloadlink_url, value, currencyA 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_sociallink_url, value, currencyA 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_outboundlink_url, value, currencyA 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_searchsearch_termThis 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.

EventExtra PropertiesNotes
LCPvalue, 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.
FIDvalue, metric_rating, metric_status, debug_target, debug_event, debug_timing, event_time, metric_id, metric_value, metric_deltaFirst 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.
CLSvalue, metric_rating, metric_status, debug_target, event_time, metric_id, metric_value, metric_deltaCumulative 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.
FCPvalue, metric_rating, metric_status, event_time, metric_id, metric_value, metric_deltaFirst Contentful Paint (FCP): The time it takes before the first bit of content is shown.
TTFBvalue, metric_rating, metric_status, event_time, metric_id, metric_value, metric_deltaTime To First Byte (TTFB): The time for the server to initially respond to a page request.
performance_metrics_hiddeneventTime, fetchStart, requestStart, responseStart, responseEnd, domContentLoadedEventStart, domContentLoadedEventEnd, loadEventStart, loadEventEnd, transferSize, type, redirectCount, fcp, fid, cls, lcp, fp, clsSelectorPart1, clsSelectorPart2, lcpSelectorPart1, lcpSelectorPart2Beta 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_pagehideeventTime, fetchStart, requestStart, responseStart, responseEnd, domContentLoadedEventStart, domContentLoadedEventEnd, loadEventStart, loadEventEnd, transferSize, type, redirectCount, fcp, fid, cls, lcp, fp, clsSelectorPart1, clsSelectorPart2, lcpSelectorPart1, lcpSelectorPart2Beta 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]