Skip to main content
Properties are the data you send with each tracking event. This page documents all available properties and shows how to use them in JavaScript.
Use camelCase when sending properties — the platform automatically converts to the format each destination requires.

Full Event Structure

A complete tracking event contains the event name, timestamp, user data, custom data, and automatically captured context.
window._upstack('track', 'purchase', {
  // Core identifiers
  transactionId: 'ORD-2026-001',
  orderName: '#1042',
  
  // Monetary values
  value: 134.99,
  currency: 'USD',
  subtotalPrice: 149.99,
  tax: 12.00,
  shipping: 8.00,
  discount: 35.00,
  
  // Customer data (improves match quality)
  email: 'customer@example.com',
  phone: '+15551234567',
  firstName: 'Jane',
  lastName: 'Smith',
  
  // Product items
  items: [
    {
      id: 'SKU-001',
      name: 'Running Shoes',
      price: 89.99,
      quantity: 1,
      brand: 'Nike',
      category: 'Footwear'
    }
  ],
  
  // Optional checkout details
  coupon: 'SAVE25',
  paymentType: 'credit_card',
  shippingTier: 'express'
});

// The platform automatically captures additional context:
// - Click IDs (fbclid, gclid, ttclid, etc.)
// - UTM parameters (utm_source, utm_medium, etc.)
// - Device and browser information
// - Geographic data
// - Session and identity information

Core Properties

These properties work with most events.

value

Monetary value of the event. Required for purchase, lead, subscribe.

currency

ISO 4217 currency code. Required with value.

transactionId

Unique order identifier. Required for purchase/refund.

orderName

Human-readable order number shown to customers.

Quick Reference

PropertyTypeRequiredEvents
valuenumberYes for purchase, lead, subscribepurchase, add_to_cart, view_content, initiate_checkout, lead, subscribe, trial_started
currencystringYes (when value is set)Any event with value
transactionIdstringYes for purchase/refundpurchase, refund
orderIdstringNopurchase, refund
orderNamestringNopurchase
orderId and transactionId are interchangeable — use whichever fits your system. If both are provided, transactionId takes precedence.
window._upstack('track', 'purchase', {
  value: 99.99,
  currency: 'USD',
  transactionId: 'ORD-2026-001',
  orderName: '#1042'
});

Customer Properties

Properties for identifying customers. Used for identity resolution and destination matching.

email

Primary identifier for cross-device tracking.

phone

E.164 format for improved matching.

firstName / lastName

Customer name for identity resolution.

Address Fields

Shipping and billing address properties.

Quick Reference

PropertyTypeRequiredEvents
emailstringRecommendedAll events (improves match quality)
phonestringNoAll events (improves match quality)
firstNamestringNoAll events
lastNamestringNoAll events
Events with email typically score EMQ 8-9 on Meta. Events with only IP address score 2-3.
window._upstack('track', 'lead', {
  email: 'customer@example.com',
  phone: '+15551234567',
  firstName: 'Jane',
  lastName: 'Smith'
});

Checkout & Pricing Properties

Additional properties for checkout and purchase events.

subtotalPrice

Subtotal before tax/shipping.

tax

Tax amount applied.

shipping

Shipping cost.

discount

Total discount amount.

coupon

Promo code used.

paymentType

Payment method used.

shippingTier

Shipping speed selected.

Quick Reference

PropertyTypeDescription
subtotalPricenumberSubtotal before tax and shipping
pricenumberBase price (distinct from value which is the total)
taxnumberTax amount
shippingnumberShipping cost
discountnumberTotal discount amount applied
couponstringCoupon or promo code used
paymentTypestringPayment method ("credit_card", "paypal", "shop_pay")
shippingTierstringShipping tier ("standard", "express", "overnight")
cartIdstringShopping cart identifier
affiliationstringStore or affiliate name
orderSourceNamestringOrder source channel
tagsstring[]Array of order or event tags
totalUnitCostnumberTotal cost of goods sold (COGS) for profitability tracking
totalUnitMarginnumberTotal margin (value - totalUnitCost)
window._upstack('track', 'purchase', {
  transactionId: 'ORD-12345',
  value: 134.99,
  currency: 'USD',
  subtotalPrice: 149.99,
  tax: 12.00,
  shipping: 8.00,
  discount: 35.00,
  coupon: 'SAVE25',
  paymentType: 'credit_card',
  shippingTier: 'express',
  items: [/* ... */]
});

Content Properties

Properties for content-related events like search and page views.

searchTerm

Search query entered by the user.

content_ids

Array of product IDs from search results.

Quick Reference

PropertyTypeDescriptionEvents
searchTermstringSearch query enteredsearch
content_idsstring[]Array of product IDsview_content, search, add_to_cart
content_typestring"product" or "product_group"view_content, add_to_cart, purchase
content_namestringName of content, product, or formview_content, lead, complete_registration
num_itemsnumberTotal item countadd_to_cart, initiate_checkout, purchase
page_titlestringPage titlepage_view
referrerstringReferring URLpage_view
window._upstack('track', 'search', {
  searchTerm: 'blue running shoes',
  content_ids: ['SKU-001', 'SKU-002', 'SKU-003']
});

Promotional Properties

Properties for tracking promotions, campaigns, and affiliate activity.

promotionId

Promotion/campaign identifier.

promotionName

Promotion display name.

creativeName

Creative/ad variant name.

creativeSlot

Placement position on page.

locationId

Store/affiliate/location ID.

Quick Reference

PropertyTypeDescriptionEvents
promotionIdstringPromotion or campaign identifierview_content, add_to_cart, purchase
promotionNamestringPromotion display nameview_content, add_to_cart, purchase
creativeNamestringCreative or ad variant nameview_content, add_to_cart, purchase
creativeSlotstringCreative placement positionview_content, add_to_cart, purchase
locationIdstringStore, affiliate, or location identifierAll events
window._upstack('track', 'view_content', {
  items: [{ id: 'SKU_001', name: 'Running Shoes', price: 89.99 }],
  value: 89.99,
  currency: 'USD',
  promotionId: 'SUMMER_SALE_2026',
  promotionName: 'Summer Sale 2026',
  creativeName: 'hero_banner_v2',
  creativeSlot: 'homepage_hero',
  locationId: 'store_nyc_001'
});

Detailed Property References

Items Array

Product details for e-commerce events — id, name, price, quantity, brand, category, variant.

Address Properties

Shipping and billing address fields — address1, city, province, country, zip.

SaaS Properties

B2B/SaaS properties — account, subscription, trial, payment, and churn tracking.

Auto-Captured Fields

Click IDs, UTMs, and context fields captured automatically by the pixel.

Naming Conventions

Input vs Output Format

Send properties in camelCase — the platform converts to each destination’s required format automatically.
Your InputMeta CAPI OutputGA4 Output
transactionIdtransaction_idtransaction_id
firstNamefn (hashed)first_name
emailem (hashed)user_id (if configured)

Legacy Snake Case Properties

Some properties use snake_case for compatibility with Meta and GA4 conventions:
PropertyFormatNotes
content_idssnake_caseArray of product IDs (Meta convention)
content_typesnake_case"product" or "product_group" (Meta convention)
content_namesnake_caseContent or product name
num_itemssnake_caseTotal item count
The platform accepts both formats and normalizes automatically. You can use either contentIds or content_ids — both work.

Event Names

Event names use snake_case (e.g., add_to_cart, initiate_checkout, view_content).
// Correct
window._upstack('track', 'add_to_cart', { ... });
window._upstack('track', 'view_content', { ... });

// Incorrect
window._upstack('track', 'AddToCart', { ... });
window._upstack('track', 'viewContent', { ... });