---
title: "GTM Kit event reference"
date: 2026-06-08
author: "cowork-docs"
---

# 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](https://developers.google.com/analytics/devguides/collection/ga4/ecommerce): 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_id`YesProduct SKU or product ID, with the configured prefix applied. SKU is used when “Use SKU” is enabled, otherwise the numeric product ID.`id`YesLegacy alias of `item_id`, kept for backward compatibility.`item_name`YesProduct title.`currency`YesStore currency (ISO 4217, e.g. `USD`).`price`YesUnit price, resolved against your include/exclude-tax setting.`item_brand`OptionalPopulated 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_variant`Variations onlySelected variation attributes.`google_business_vertical`OptionalPopulated when a Google business vertical is configured.`quantity`Cart / order contextsQuantity for the line item.`coupon`When a coupon appliesPipe-separated coupon codes affecting the item.`discount`When a coupon appliesDiscount amount on the item.`index`, `item_list_name`List 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).

## Search

### `search`

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

ParameterDescription`search_term`The 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`method`Login 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`method`Registration 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_address`SHA-256 hash of the normalized billing email.`sha256_phone_number`SHA-256 hash of the normalized billing phone.`address.sha256_first_name`SHA-256 hash of the billing first name.`address.sha256_last_name`SHA-256 hash of the billing last name.`address.street`Billing address line 1.`address.city`Billing city.`address.region`Billing state / region.`address.postal_code`Billing postcode.`address.country`Billing 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.items`The 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.currency`Store currency.`ecommerce.value`Item price.`ecommerce.items`The viewed product (single item).### `select_item`

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

FieldDescription`ecommerce.items`The 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.currency`Store currency.`ecommerce.value`Price × quantity added.`ecommerce.items`The added product(s).### `view_cart`

**Tier:** Free  
**Fires:** On the cart page.

FieldDescription`ecommerce.currency`Store currency.`ecommerce.value`Cart total (per tax setting).`ecommerce.items`All 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.currency`Store currency (on quantity-decrease).`ecommerce.value`Price × quantity removed (on quantity-decrease).`ecommerce.items`The removed product(s).### `begin_checkout`

**Tier:** Free  
**Fires:** On the checkout page.

FieldDescription`ecommerce.currency`Store currency.`ecommerce.value`Cart total (per tax setting).`ecommerce.coupon`Pipe-separated applied coupon codes, when present.`ecommerce.items`All 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.currency`Store currency.`ecommerce.value`Cart value.`ecommerce.shippingTier`Selected shipping method.`ecommerce.items`All 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.currency`Store currency.`ecommerce.value`Cart value.`ecommerce.payment_type`Selected payment method.`ecommerce.items`All cart line items.### `purchase`

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

FieldDescription`ecommerce.transaction_id`Order number.`ecommerce.value`Order total (per tax and shipping settings).`ecommerce.tax`Total tax.`ecommerce.shipping`Shipping total.`ecommerce.currency`Order currency.`ecommerce.coupon`Pipe-separated coupon codes, when present.`ecommerce.items`Ordered products.`new_customer``true` 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.currency`Store currency.`ecommerce.value`Item price × quantity.`ecommerce.items`The wishlisted product.### `refund`

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

FieldDescription`ecommerce.transaction_id`Original order ID.`ecommerce.currency`Order currency.`ecommerce.value`Refunded value.`ecommerce.shipping`Refunded shipping.`ecommerce.tax`Refunded tax (negative).`ecommerce.items`Refunded line items.`attribution`Original-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_id`The subscription ID.`billing_period`Billing period (e.g. `month`, `year`).`billing_interval`Number of periods between renewals.`value`Subscription total.`currency`Subscription currency.`trial``true` 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.

## Related articles

- [Engagement events](https://gtmkit.com/documentation/engagement-events/)
- [WooCommerce Google Tag Manager integration](https://gtmkit.com/documentation/woocommerce-integration/)
- [sGTM, server-side tracking](https://gtmkit.com/documentation/sgtm-server-side-tracking/)