Skip to main content
Standard events are predefined event types that Upstack recognizes across all destinations. Use these events to track customer behavior and attribute conversions.
This guide applies to all Upstack implementations — Shopify, headless, GTM, or custom websites. The JavaScript snippets below work everywhere the Upstack pixel is installed.
Shopify stores: Most events are tracked automatically by the Upstack Pixel. See Automatic Shopify Tracking to understand what’s already tracked. Use these snippets for custom implementations, headless checkouts, or events not covered by automatic tracking.

page_view

Fires when a visitor loads a page.

JavaScript

window._upstack('page');
With custom properties:
window._upstack('page', {
  pageCategory: 'product',
  collectionHandle: 'summer-2026'
});

Properties

PropertyTypeRequiredDescription
pageCategorystringNoPage type (e.g., 'product', 'collection', 'blog')
collectionHandlestringNoCollection identifier for collection pages

Auto-Captured

The SDK automatically captures page_url, page_title, page_referrer, and page_path.

When to Fire

  • On initial page load
  • On SPA route changes
  • After dynamic content loads (infinite scroll)

view_content

Fires when a visitor views a product or content page.
Shopify: Automatically tracked when viewing product detail pages.

JavaScript

window._upstack('track', 'view_content', {
  items: [
    {
      id: 'SKU_12345',
      name: 'Classic Cotton Tee',
      price: 34.99,
      brand: 'Example Brand',
      category: 'Apparel/T-Shirts'
    }
  ],
  value: 34.99,
  currency: 'USD'
});
Minimal example:
window._upstack('track', 'view_content', {
  items: [{ id: 'SKU_12345', name: 'Classic Cotton Tee', price: 34.99 }],
  value: 34.99,
  currency: 'USD'
});

Properties

PropertyTypeRequiredDescription
itemsarrayYesProducts viewed (see Item Object)
valuenumberYesProduct price
currencystringYesISO 4217 currency code (e.g., 'USD')

When to Fire

  • Product detail page load
  • Quick view modal open
  • Collection page load (with collection products)

view_category

Fires when a visitor views a collection or category page.
Shopify: Automatically tracked when viewing collection pages.

JavaScript

window._upstack('track', 'view_category', {
  items: [
    { id: 'SKU_001', name: 'Classic Cotton Tee', price: 34.99 },
    { id: 'SKU_002', name: 'Vintage Logo Hoodie', price: 59.99 },
    { id: 'SKU_003', name: 'Slim Fit Jeans', price: 79.99 }
  ],
  itemListId: 'summer_collection',
  itemListName: 'Summer 2026 Collection'
});
Minimal example:
window._upstack('track', 'view_category', {
  itemListId: 'mens_shirts',
  itemListName: 'Men\'s Shirts'
});

Properties

PropertyTypeRequiredDescription
itemListIdstringNoCollection/category identifier
itemListNamestringNoCollection/category display name
itemsarrayNoProducts shown in the category (see Item Object)

When to Fire

  • Collection page load
  • Category filter applied
  • Browse by category navigation

view_item_list

Fires when a visitor views a list of products (similar to view_category but more general).

JavaScript

window._upstack('track', 'view_item_list', {
  items: [
    { id: 'SKU_001', name: 'Classic Cotton Tee', price: 34.99, index: 0 },
    { id: 'SKU_002', name: 'Vintage Logo Hoodie', price: 59.99, index: 1 }
  ],
  itemListId: 'recommended_products',
  itemListName: 'Recommended For You'
});

Properties

PropertyTypeRequiredDescription
itemListIdstringNoList identifier
itemListNamestringNoList display name
itemsarrayNoProducts in the list (include index for position tracking)

When to Fire

  • Product recommendation carousel load
  • “Related Products” section view
  • “Recently Viewed” section view
  • Search results page load

add_to_cart

Fires when a visitor adds an item to their cart.

JavaScript

window._upstack('track', 'add_to_cart', {
  items: [
    {
      id: 'SKU_12345',
      name: 'Classic Cotton Tee',
      price: 34.99,
      quantity: 2,
      variant: 'Blue / Medium',
      brand: 'Example Brand',
      category: 'Apparel/T-Shirts'
    }
  ],
  value: 69.98,
  currency: 'USD'
});
Minimal example:
window._upstack('track', 'add_to_cart', {
  items: [{ id: 'SKU_12345', name: 'Classic Cotton Tee', price: 34.99, quantity: 1 }],
  value: 34.99,
  currency: 'USD'
});

Properties

PropertyTypeRequiredDescription
itemsarrayYesProducts added (see Item Object)
valuenumberYesTotal value of items added
currencystringYesISO 4217 currency code

When to Fire

  • Add-to-cart button click
  • Quantity increase in cart
  • “Buy Now” button click (before checkout)

product_removed_from_cart

Fires when a visitor removes an item from their cart.

JavaScript

window._upstack('track', 'product_removed_from_cart', {
  items: [
    {
      id: 'SKU_12345',
      name: 'Classic Cotton Tee',
      price: 34.99,
      quantity: 1
    }
  ],
  value: 34.99,
  currency: 'USD'
});

Properties

PropertyTypeRequiredDescription
itemsarrayYesProducts removed (see Item Object)
valuenumberNoValue of removed items
currencystringNoISO 4217 currency code

When to Fire

  • Remove button click
  • Quantity decrease to zero
  • Clear cart action

view_cart

Fires when a visitor views their shopping cart.

JavaScript

window._upstack('track', 'view_cart', {
  items: [
    {
      id: 'SKU_12345',
      name: 'Classic Cotton Tee',
      price: 34.99,
      quantity: 2
    },
    {
      id: 'SKU_67890',
      name: 'Running Socks',
      price: 14.99,
      quantity: 1
    }
  ],
  value: 84.97,
  currency: 'USD'
});

Properties

PropertyTypeRequiredDescription
itemsarrayYesProducts in cart (see Item Object)
valuenumberNoTotal cart value
currencystringNoISO 4217 currency code

When to Fire

  • Cart page load
  • Cart drawer/sidebar open
  • Mini-cart expansion

initiate_checkout

Fires when a visitor starts the checkout process.

JavaScript

window._upstack('track', 'initiate_checkout', {
  items: [
    {
      id: 'SKU_12345',
      name: 'Classic Cotton Tee',
      price: 34.99,
      quantity: 2
    },
    {
      id: 'SKU_67890',
      name: 'Running Socks',
      price: 14.99,
      quantity: 1
    }
  ],
  value: 84.97,
  currency: 'USD'
});

Properties

PropertyTypeRequiredDescription
itemsarrayYesProducts in checkout
valuenumberYesCart subtotal
currencystringYesISO 4217 currency code

When to Fire

  • Checkout button click
  • Checkout page load
  • Express checkout initiation (Shop Pay, Apple Pay)

add_shipping_info

Fires when a customer enters shipping details during checkout.

JavaScript

window._upstack('track', 'add_shipping_info', {
  items: [
    { id: 'SKU_12345', name: 'Classic Cotton Tee', price: 34.99, quantity: 2 }
  ],
  value: 84.97,
  currency: 'USD',
  shippingTier: 'standard'
});

Properties

PropertyTypeRequiredDescription
itemsarrayNoProducts in checkout
valuenumberNoCart value at shipping step
currencystringNoISO 4217 currency code
shippingTierstringNoShipping method (e.g., 'standard', 'express', 'overnight')

When to Fire

  • Shipping form completion
  • Shipping method selection
  • Proceeding past shipping step

select_shipping_method

Fires when a customer selects a shipping method during checkout.

JavaScript

window._upstack('track', 'select_shipping_method', {
  shippingTier: 'express',
  shippingPrice: 12.99,
  currency: 'USD',
  value: 97.98
});
With items:
window._upstack('track', 'select_shipping_method', {
  shippingTier: 'overnight',
  shippingPrice: 24.99,
  currency: 'USD',
  value: 109.98,
  items: [
    { id: 'SKU_12345', name: 'Classic Cotton Tee', price: 34.99, quantity: 2 }
  ]
});

Properties

PropertyTypeRequiredDescription
shippingTierstringYesShipping method selected (e.g., 'standard', 'express', 'overnight')
shippingPricenumberNoShipping cost
valuenumberNoCart value at shipping selection
currencystringNoISO 4217 currency code
itemsarrayNoProducts in checkout

When to Fire

  • Shipping method radio button selection
  • Shipping tier dropdown change
  • Before proceeding to payment

add_payment_info

Fires when a customer enters payment details during checkout.

JavaScript

window._upstack('track', 'add_payment_info', {
  items: [
    { id: 'SKU_12345', name: 'Classic Cotton Tee', price: 34.99, quantity: 2 }
  ],
  value: 84.97,
  currency: 'USD',
  paymentType: 'credit_card'
});

Properties

PropertyTypeRequiredDescription
itemsarrayNoProducts in checkout
valuenumberNoCart value at payment step
currencystringNoISO 4217 currency code
paymentTypestringNoPayment method (e.g., 'credit_card', 'paypal', 'shop_pay')

When to Fire

  • Payment form completion
  • Payment method selection
  • Before final order submission

purchase

Fires when an order is completed.

JavaScript

window._upstack('track', 'purchase', {
  orderId: 'ORD_12345',
  value: 149.99,
  currency: 'USD',
  tax: 12.50,
  shipping: 5.99,
  items: [
    {
      id: 'SKU_001',
      name: 'Blue Running Shoes',
      price: 89.99,
      quantity: 1,
      brand: 'Nike',
      category: 'Shoes/Running'
    },
    {
      id: 'SKU_002',
      name: 'Running Socks',
      price: 14.99,
      quantity: 2,
      brand: 'Nike',
      category: 'Accessories/Socks'
    }
  ],
  email: 'customer@example.com'
}, 'ORD_12345');
The third parameter ('ORD_12345') is a deduplication ID. It prevents duplicate purchase events from being sent to destinations if the event fires multiple times.
Minimal example:
window._upstack('track', 'purchase', {
  orderId: 'ORD_12345',
  value: 149.99,
  currency: 'USD',
  items: [{ id: 'SKU_001', name: 'Blue Running Shoes', price: 89.99, quantity: 1 }]
}, 'ORD_12345');

Properties

PropertyTypeRequiredDescription
orderIdstringYesUnique order identifier
valuenumberYesTotal order value
currencystringYesISO 4217 currency code
itemsarrayYesProducts purchased (see Item Object)
taxnumberNoTax amount
shippingnumberNoShipping cost
emailstringNoCustomer email (improves identity matching)
Important: The value property should match what you want reported to ad platforms. Discrepancies between Shopify order totals and reported CAPI revenue are the most common attribution debugging issue.

When to Fire

  • Order confirmation page load
  • After successful payment confirmation
  • Shopify orders/create webhook (server-side)

Fires when a visitor performs a search.

JavaScript

window._upstack('track', 'search', {
  searchTerm: 'blue running shoes',
  resultsCount: 24
});
With search results:
window._upstack('track', 'search', {
  searchTerm: 'blue running shoes',
  resultsCount: 24,
  items: [
    { id: 'SKU_001', name: 'Blue Running Shoes', price: 89.99 },
    { id: 'SKU_002', name: 'Navy Training Shoes', price: 79.99 }
  ]
});

Properties

PropertyTypeRequiredDescription
searchTermstringYesThe search query entered
resultsCountnumberNoNumber of results returned
itemsarrayNoTop products in search results

When to Fire

  • Search results page load
  • Predictive search dropdown display
  • “No results” page (with resultsCount: 0)

lead

Fires when a visitor submits a lead form.

JavaScript

window._upstack('track', 'lead', {
  source: 'contact_form',
  email: 'prospect@example.com',
  value: 150.00,
  currency: 'USD'
});
Newsletter signup:
window._upstack('track', 'lead', {
  source: 'newsletter_popup',
  email: 'subscriber@example.com'
});

Properties

PropertyTypeRequiredDescription
sourcestringNoForm or campaign identifier
emailstringNoLead’s email address
valuenumberNoEstimated lead value
currencystringNoISO 4217 currency code

When to Fire

  • Contact form submission
  • Newsletter signup
  • Quote request submission
  • Product inquiry

complete_registration

Fires when a customer creates an account.

JavaScript

window._upstack('track', 'complete_registration', {
  method: 'email',
  source: 'checkout_page'
});

Properties

PropertyTypeRequiredDescription
methodstringNoRegistration method (e.g., 'email', 'google', 'facebook')
sourcestringNoWhere registration occurred

When to Fire

  • Account registration form submission
  • OAuth signup completion (Google, Facebook)
  • Post-purchase account creation

subscribe

Fires when a visitor subscribes to email or SMS marketing.

JavaScript

window._upstack('track', 'subscribe', {
  channel: 'email',
  source: 'footer_form',
  value: 5.00,
  currency: 'USD'
});
SMS subscription:
window._upstack('track', 'subscribe', {
  channel: 'sms',
  source: 'popup',
  phone: '+15551234567'
});

Properties

PropertyTypeRequiredDescription
channelstringNoSubscription channel ('email', 'sms', 'push')
sourcestringNoSubscription source (e.g., 'popup', 'footer', 'checkout')
valuenumberNoEstimated subscriber value
currencystringNoISO 4217 currency code

When to Fire

  • Newsletter signup
  • SMS opt-in
  • Push notification subscription

add_to_wishlist

Fires when a visitor adds a product to their wishlist.

JavaScript

window._upstack('track', 'add_to_wishlist', {
  items: [
    {
      id: 'SKU_12345',
      name: 'Classic Cotton Tee',
      price: 34.99,
      brand: 'Example Brand'
    }
  ],
  value: 34.99,
  currency: 'USD'
});

Properties

PropertyTypeRequiredDescription
itemsarrayYesProducts added to wishlist
valuenumberNoProduct price
currencystringNoISO 4217 currency code

When to Fire

  • Wishlist/favorite button click
  • Save for later action
  • Heart icon click on product

refund

Fires when an order is refunded.

JavaScript

Full refund:
window._upstack('track', 'refund', {
  orderId: 'ORD_12345',
  value: 149.99,
  currency: 'USD'
});
Partial refund:
window._upstack('track', 'refund', {
  orderId: 'ORD_12345',
  value: 89.99,
  currency: 'USD',
  items: [
    { id: 'SKU_001', name: 'Blue Running Shoes', price: 89.99, quantity: 1 }
  ]
});

Properties

PropertyTypeRequiredDescription
orderIdstringYesOriginal order identifier
valuenumberYesRefund amount
currencystringNoISO 4217 currency code
itemsarrayNoProducts refunded (for partial refunds)

When to Fire

  • Refund processed via Shopify admin
  • refunds/create webhook (server-side)
  • Customer service refund action

login

Fires when a user logs into their account.

JavaScript

window._upstack('track', 'login', {
  method: 'email'
});

Properties

PropertyTypeRequiredDescription
methodstringNoLogin method ('email', 'google', 'facebook', 'shop_pay')

When to Fire

  • Successful login form submission
  • OAuth login completion
  • Automatic re-authentication

sign_up

Fires when a user creates a new account.

JavaScript

window._upstack('track', 'sign_up', {
  method: 'email'
});

Properties

PropertyTypeRequiredDescription
methodstringNoSignup method ('email', 'google', 'facebook')
sign_up vs complete_registration: Use sign_up for initial account creation. Use complete_registration for multi-step registration flows or when capturing additional profile data.

When to Fire

  • Account creation form submission
  • OAuth signup completion

contact

Fires when a user submits a contact form.

JavaScript

window._upstack('track', 'contact', {
  formName: 'product_inquiry',
  email: 'customer@example.com'
});

Properties

PropertyTypeRequiredDescription
formNamestringNoForm or inquiry type
emailstringNoContact’s email

When to Fire

  • Contact us form submission
  • Support request submission
  • Product inquiry

book_call

Fires when a user books a call or consultation.

JavaScript

window._upstack('track', 'book_call', {
  callType: 'sales_consultation',
  value: 200.00,
  currency: 'USD'
});

Properties

PropertyTypeRequiredDescription
callTypestringNoType of call (e.g., 'sales_consultation', 'support')
valuenumberNoEstimated value of the booking
currencystringNoISO 4217 currency code

When to Fire

  • Calendly booking confirmation
  • Meeting scheduler submission
  • Demo request completion

schedule

Fires when a user schedules an appointment.

JavaScript

window._upstack('track', 'schedule', {
  appointmentType: 'fitting',
  value: 75.00,
  currency: 'USD'
});

Properties

PropertyTypeRequiredDescription
appointmentTypestringNoType of appointment
valuenumberNoService value
currencystringNoISO 4217 currency code

When to Fire

  • Appointment booking confirmation
  • Service scheduling completion

submit_application

Fires when a user submits an application.

JavaScript

window._upstack('track', 'submit_application', {
  applicationType: 'wholesale_partner',
  value: 5000.00,
  currency: 'USD'
});

Properties

PropertyTypeRequiredDescription
applicationTypestringNoApplication type
valuenumberNoEstimated application value
currencystringNoISO 4217 currency code

When to Fire

  • Wholesale application submission
  • Affiliate program application
  • Partnership request

trial_started

Fires when a visitor begins a free trial.

JavaScript

window._upstack('track', 'trial_started', {
  planName: 'Premium Plan',
  trialDays: 14,
  value: 49.99,
  currency: 'USD'
});

Properties

PropertyTypeRequiredDescription
planNamestringNoTrial plan or product name
trialDaysnumberNoTrial duration in days
valuenumberNoPlan value after trial
currencystringNoISO 4217 currency code

When to Fire

  • Trial signup confirmation
  • Trial activation

Item Object

The items array in e-commerce events uses this structure:
{
  id: 'SKU_12345',           // Required: Product or variant ID
  name: 'Classic Cotton Tee', // Required: Product name
  price: 34.99,              // Required: Unit price
  quantity: 1,               // Required for cart/purchase events
  brand: 'Example Brand',    // Optional: Brand name
  category: 'Apparel/Tees',  // Optional: Product category (use / for hierarchy)
  variant: 'Blue / Medium',  // Optional: Variant info
  position: 1                // Optional: Position in list (for impressions)
}
PropertyTypeRequiredDescription
idstringYesProduct or variant SKU/ID
namestringYesProduct display name
pricenumberYesUnit price (not total)
quantitynumberVariesRequired for add_to_cart, purchase; optional for view events
brandstringNoBrand or manufacturer
categorystringNoCategory path (e.g., 'Shoes/Running')
variantstringNoSize, color, or other variant
positionnumberNoPosition in list for impression tracking

Event Tracking Matrix

This matrix shows which events are tracked automatically by the Upstack Pixel on Shopify stores versus which require manual implementation.
EventShopify AutoHeadless/Manual
page_viewRequired
view_contentRequired
view_categoryRequired
view_item_listRequired
add_to_cartRequired
product_removed_from_cartRequired
view_cartRequired
initiate_checkoutRequired
add_shipping_infoRequired
select_shipping_methodRequired
add_payment_infoRequired
purchaseRequired
searchRequired
leadVia form hooksRequired
subscribeVia popup/form hooksRequired
complete_registrationRequired
loginRequired
sign_upRequired
refundVia webhook
Legend:
  • ✅ = Automatically tracked by Upstack Pixel
  • Via form hooks = Tracked when using compatible form/popup apps
  • Via webhook = Tracked server-side through Shopify webhooks
  • Required = You must implement manually
  • — = Not applicable or rarely needed

Events Not Covered Here

Event TypeDocumentation
identifySee JavaScript SDK Reference
nc_purchase / rc_purchaseUpstack-generated new vs. returning customer purchase events. See Custom Events
Shopify automatic eventsSee Shopify Automatic Tracking
SaaS eventsSee SaaS Events Reference
Custom eventsSee Custom Events

Shopify Automatic Tracking

Events that fire automatically on Shopify stores — check what’s already tracked.

JavaScript SDK

Full SDK API reference including identify() and direct client methods.

Properties & Context

Complete reference for item arrays, customer data, and auto-captured fields.

Custom Events

Create events beyond the standard taxonomy, including Upstack-generated events like nc_purchase.