GTM Kit event reference

GTM Kit pushes standard GA4 events to your dataLayer so Google Tag Manager can pick them up without you writing any tracking code. This page lists every event the plugin sends, when it fires, which tier it ships in, and the parameters it carries.

Free covers the GA4 standard events plus the full WooCommerce e-commerce set. Premium adds the advanced commerce events (wishlist, refunds, server-side order and subscription events).

How events reach your dataLayer

Events are pushed through GTM Kit’s client-side seam (window.gtmkit.events.push()), which writes to the dataLayer variable configured in your settings (dataLayer by default). For e-commerce events, the plugin clears the previous ecommerce object with a { ecommerce: null } push before each event, as Google recommends, so values never leak between events.

Most e-commerce events follow the GA4 recommended ecommerce schema: an event name and an ecommerce object containing event-level fields plus an items array. Server-side Premium events (refund, order_paid, and the off-session subscription events) are dispatched from your server to your server-side GTM (sGTM) container rather than pushed to the browser dataLayer.

The item object

Every e-commerce event carries one or more items in ecommerce.items. Each item is built the same way, so it is documented once here and referenced by the events below.

ParameterAlways presentDescription
item_idYesProduct SKU or product ID, with the configured prefix applied. SKU is used when “Use SKU” is enabled, otherwise the numeric product ID.
idYesLegacy alias of item_id, kept for backward compatibility.
item_nameYesProduct title.
currencyYesStore currency (ISO 4217, e.g. USD).
priceYesUnit price, resolved against your include/exclude-tax setting.
item_brandOptionalPopulated when a brand taxonomy is selected in the WooCommerce settings.
item_category, item_category2, …OptionalThe product’s primary category hierarchy, one parameter per level.
item_variantVariations onlySelected variation attributes.
google_business_verticalOptionalPopulated when a Google business vertical is configured.
quantityCart / order contextsQuantity for the line item.
couponWhen a coupon appliesPipe-separated coupon codes affecting the item.
discountWhen a coupon appliesDiscount amount on the item.
index, item_list_nameList contextsPosition and list name, set on view_item_list and select_item.

The item object is filterable, and several parameters depend on the WooCommerce integration settings (SKU usage, ID prefix, brand taxonomy, category depth, tax handling).

Tier: Free
Fires: On search results pages with a non-empty query term.

ParameterDescription
search_termThe trimmed, decoded search query.

Account

login

Tier: Free
Fires: When a user logs in (WordPress core, WooCommerce My Account, or REST). Handed off server-side so it stays cache-safe.

ParameterDescription
methodLogin method. Defaults to wordpress; can be set per provider for social-login setups.

sign_up

Tier: Free
Fires: When a new account is created on the front end. Front-end registrations only (programmatic/admin user creation is excluded).

ParameterDescription
methodRegistration method. wordpress for standard registration, upgraded to woocommerce when the account is created through a WooCommerce checkout or My Account flow.

user_data

Tier: Free
Fires: Alongside the purchase event on the order-received page, when “Include customer data” is enabled in the WooCommerce settings.

This is a user_data object (not a standalone GA4 event) carrying hashed customer identifiers, formatted for GA4 user-provided data / enhanced conversions.

ParameterDescription
sha256_email_addressSHA-256 hash of the normalized billing email.
sha256_phone_numberSHA-256 hash of the normalized billing phone.
address.sha256_first_nameSHA-256 hash of the billing first name.
address.sha256_last_nameSHA-256 hash of the billing last name.
address.streetBilling address line 1.
address.cityBilling city.
address.regionBilling state / region.
address.postal_codeBilling postcode.
address.countryBilling country.

WooCommerce e-commerce (standard)

These events ship in Free and Premium. All carry an ecommerce object.

view_item_list

Tier: Free
Fires: On pages that render product lists (shop, category, search results, product blocks).

FieldDescription
ecommerce.itemsThe products in the list. Each item carries index and item_list_name.

view_item

Tier: Free
Fires: On the single product page, and again when a variation is selected on a variable product. Variable-product behaviour is governed by the “variable product tracking” setting.

FieldDescription
ecommerce.currencyStore currency.
ecommerce.valueItem price.
ecommerce.itemsThe viewed product (single item).

select_item

Tier: Free
Fires: When a product is clicked within a product list.

FieldDescription
ecommerce.itemsThe clicked product, carrying its index and item_list_name.

add_to_cart

Tier: Free
Fires: Adding to cart from a product list, the single product page (simple, variable, and grouped products), and when cart quantity is increased on the cart page.

FieldDescription
ecommerce.currencyStore currency.
ecommerce.valuePrice × quantity added.
ecommerce.itemsThe added product(s).

view_cart

Tier: Free
Fires: On the cart page.

FieldDescription
ecommerce.currencyStore currency.
ecommerce.valueCart total (per tax setting).
ecommerce.itemsAll cart line items.

remove_from_cart

Tier: Free
Fires: Clicking a remove link (cart or mini-cart), and when cart quantity is decreased on the cart page.

FieldDescription
ecommerce.currencyStore currency (on quantity-decrease).
ecommerce.valuePrice × quantity removed (on quantity-decrease).
ecommerce.itemsThe removed product(s).

begin_checkout

Tier: Free
Fires: On the checkout page.

FieldDescription
ecommerce.currencyStore currency.
ecommerce.valueCart total (per tax setting).
ecommerce.couponPipe-separated applied coupon codes, when present.
ecommerce.itemsAll cart line items.

add_shipping_info

Tier: Free
Fires: When a shipping method is chosen, or on place-order, depending on the configured trigger.

FieldDescription
ecommerce.currencyStore currency.
ecommerce.valueCart value.
ecommerce.shippingTierSelected shipping method.
ecommerce.itemsAll cart line items.

add_payment_info

Tier: Free
Fires: When a payment method is chosen, or on place-order, depending on the configured trigger.

FieldDescription
ecommerce.currencyStore currency.
ecommerce.valueCart value.
ecommerce.payment_typeSelected payment method.
ecommerce.itemsAll cart line items.

purchase

Tier: Free
Fires: On the order-received (thank-you) page, once per order (tracked to prevent duplicates).

FieldDescription
ecommerce.transaction_idOrder number.
ecommerce.valueOrder total (per tax and shipping settings).
ecommerce.taxTotal tax.
ecommerce.shippingShipping total.
ecommerce.currencyOrder currency.
ecommerce.couponPipe-separated coupon codes, when present.
ecommerce.itemsOrdered products.
new_customertrue when the order is from a first-time customer.

WooCommerce e-commerce (advanced, Premium)

These events require GTM Kit Premium. The server-side events are sent to your server-side GTM container.

add_to_wishlist

Tier: Premium
Fires: Clicking a wishlist button, on product lists and the single product page. Works with configurable CSS selectors and supports TI WooCommerce Wishlist.

FieldDescription
ecommerce.currencyStore currency.
ecommerce.valueItem price × quantity.
ecommerce.itemsThe wishlisted product.

refund

Tier: Premium
Fires: Server-side, when an order is refunded or cancelled. Dispatched to your sGTM container.

FieldDescription
ecommerce.transaction_idOriginal order ID.
ecommerce.currencyOrder currency.
ecommerce.valueRefunded value.
ecommerce.shippingRefunded shipping.
ecommerce.taxRefunded tax (negative).
ecommerce.itemsRefunded line items.
attributionOriginal-order attribution snapshot, when available.

order_paid

Tier: Premium
Fires: Server-side, when an order reaches “Processing” status. Dispatched to your sGTM container. Carries the same ecommerce structure as purchase (transaction_id, value, tax, shipping, currency, items), plus the attribution snapshot when available.

subscription_started

Tier: Premium
Fires: On the order-received page when the order contains a WooCommerce subscription. An optional server-side mode is available.

ParameterDescription
subscription_idThe subscription ID.
billing_periodBilling period (e.g. month, year).
billing_intervalNumber of periods between renewals.
valueSubscription total.
currencySubscription currency.
trialtrue when the subscription includes a trial.

Notes

  • Most events have a per-event on/off toggle in the GTM Kit settings, so you can disable any event you’d rather implement yourself.
  • E-commerce values and item prices respect your include/exclude-tax and shipping settings.
  • Item parameters such as item_brand, category depth, SKU usage, and the ID prefix are controlled by the WooCommerce integration settings.