---
title: Events Tracked by the Web Pixel
slug: events-tracked-by-the-web-pixel
docTags: 
createdAt: 2026-09-08T21:45:22.399Z
---

The custom web pixel subscribes to Shopify's customer events and delivers them to Chord as tracking plan events. This page lists what you get without writing any theme code.

These thirteen events are the complete set of [standard customer events](https://shopify.dev/docs/api/web-pixels-api/standard-events) Shopify exposes to web pixels — not a subset Chord selected. If an interaction you care about is not in this list, Shopify does not publish an event for it, and it has to be instrumented in the theme. See [Custom Events on Shopify](https://shopify.dev/docs/api/web-pixels-api/emitting-data).

## Storefront events

These fire on your theme's pages. The pixel forwards them to `@chordcommerce/analytics` on the top window, which delivers them to Chord and to any device-mode destinations.

| Shopify event               | Chord event         | Notes                                                 |
| --------------------------- | ------------------- | ----------------------------------------------------- |
| `page_viewed`               | `page()` call       | Sends path, URL, and title                            |
| `product_viewed`            | Product Viewed      | Product detail pages                                  |
| `collection_viewed`         | Product List Viewed | Includes the collection's product variants            |
| `search_submitted`          | Products Searched   | Sends the search query                                |
| `cart_viewed`               | Cart Viewed         | Only on the `/cart` page — see [Mini-cart drawers](#) |
| `product_added_to_cart`     | Product Added       |                                                       |
| `product_removed_from_cart` | Product Removed     |                                                       |

## Checkout events

These fire on Shopify-hosted checkout pages. The pixel sends them directly to Chord via cloud mode *and* forwards them by `postMessage`, so they are captured whether or not your storefront library is present on the page.

| Shopify event                      | Chord event                      | Notes                                                       |
| ---------------------------------- | -------------------------------- | ----------------------------------------------------------- |
| `checkout_started`                 | Checkout Started                 | Includes line items, coupon, discount, tax, and shipping    |
| `checkout_contact_info_submitted`  | Checkout Step Completed (step 1) | Also sends an `identify` with the shopper's email and phone |
| `checkout_address_info_submitted`  | Checkout Step Completed (step 2) |                                                             |
| `checkout_shipping_info_submitted` | Checkout Step Completed (step 3) |                                                             |
| `payment_info_submitted`           | Payment Info Entered (step 4)    |                                                             |
| `checkout_completed`               | Order Completed                  | Also sends an `identify` with the Shopify customer ID       |

Device-mode destinations cannot run on Shopify-hosted pages, so checkout events reach those destinations through cloud mode only. This is a Shopify platform restriction, not a Chord one.

## Customer identification

The pixel sends an `identify` call in three situations:

1. **On load**, when Shopify reports a logged-in customer. Traits come from Shopify's customer object: email, first and last name, phone, and order count.
2. **At&#x20;**`checkout_contact_info_submitted`, with the email and phone entered in checkout. No user ID is set here — an email is not a stable identifier.
3. **At&#x20;**`checkout_completed`, with the Shopify customer ID as the user ID.

Shopify's event bus has no sign-in event, so a shopper who logs in mid-session is not identified until the next page load. To identify them at the moment they sign in, add an `identify()` call to your storefront. See [Identify Users on Sign-In](#).

## What the pixel does not track

Three gaps come up on most themes.

### Sign-in

Covered above — Shopify publishes no login event. Instrument it in the storefront.

### Mini-cart drawers

Shopify fires `cart_viewed` only when a shopper navigates to `/cart`. A theme that opens the cart in a slide-out drawer never triggers it, so Cart Viewed will be missing. Call `window.chord.trackCartViewed()` when the drawer opens.

### Merchandising interactions

No standard event covers clicks within a collection grid, quick-add buttons, wishlist actions, or variant switching on a product page. These are theme-specific and must be tracked from theme code. See [Custom Events on Shopify](https://shopify.dev/docs/api/web-pixels-api/emitting-data).

## Related

- [Server Event Tracking](docId\:q6xVtfkfFiPMHVVI2QcG0) — order and refund events delivered from Shopify webhooks
- [Custom Events on Shopify](https://shopify.dev/docs/api/web-pixels-api/emitting-data) — adding events Shopify does not publish
- [SDK Reference](docId\:RR6OU_MAMBvVhmDqlyGH8) — the typed tracking methods available on `window.chord`
