Event SpecsE-commerce

E-Commerce Event Spec

This page defines all standard e-commerce events for Datafly Signal. Implement these events to enable accurate server-side delivery to advertising and analytics platforms.

💡

These event names match GA4’s recommended events. If you’re migrating from Google Tag Manager, your existing event names work as-is.

All events are sent via _df.track(). Properties are passed as a flat object in the second argument.


Browsing Events

view_item_list

Fired when a user views a product listing, category page, or search results grid.

_df.track('view_item_list', {
  item_list_id: 'womens-jackets',
  item_list_name: 'Women — Jackets',
  items: [
    { item_id: 'PKT-001', item_name: 'Parka Jacket', price: 129.99, index: 0, item_category: 'Jackets', item_brand: 'NorthEdge' },
    { item_id: 'PKT-002', item_name: 'Puffer Jacket', price: 99.99, index: 1, item_category: 'Jackets', item_brand: 'NorthEdge' }
  ]
})
PropertyTypeRequiredDescription
item_list_idstringOptionalMachine-readable identifier for the list or collection
item_list_namestringOptionalHuman-readable name of the list or category being browsed
itemsarrayOptionalArray of item objects displayed in the list (see Items Array Schema)

select_item

Fired when a user clicks on a product within a list or search results.

_df.track('select_item', {
  item_list_id: 'womens-jackets',
  item_list_name: 'Women — Jackets',
  items: [
    { item_id: 'PKT-001', item_name: 'Parka Jacket', price: 129.99, index: 0, item_category: 'Jackets', item_brand: 'NorthEdge' }
  ]
})
PropertyTypeRequiredDescription
item_list_idstringOptionalIdentifier of the list the product was selected from
item_list_namestringOptionalName of the list the product was selected from
itemsarrayOptionalArray containing the selected item (see Items Array Schema)

Fired when a user submits a search query for products.

_df.track('search', {
  search_term: 'waterproof jacket'
})
PropertyTypeRequiredDescription
search_termstringRequiredThe search term entered by the user

view_promotion

Fired when a promotional banner or hero image is visible to the user.

_df.track('view_promotion', {
  promotion_id: 'SUMMER24',
  promotion_name: 'Summer Sale Banner',
  creative_name: 'summer-sale-hero-v2.jpg',
  creative_slot: 'homepage-hero'
})
PropertyTypeRequiredDescription
promotion_idstringOptionalIdentifier for the promotion
promotion_namestringOptionalHuman-readable name of the promotion
creative_namestringOptionalName or URL of the creative asset shown
creative_slotstringOptionalSlot or placement where the promotion appeared

select_promotion

Fired when a user clicks on a promotional banner or creative.

_df.track('select_promotion', {
  promotion_id: 'SUMMER24',
  promotion_name: 'Summer Sale Banner',
  creative_name: 'summer-sale-hero-v2.jpg',
  creative_slot: 'homepage-hero'
})
PropertyTypeRequiredDescription
promotion_idstringOptionalIdentifier for the promotion
promotion_namestringOptionalHuman-readable name of the promotion
creative_namestringOptionalName or URL of the creative asset shown
creative_slotstringOptionalSlot or placement where the promotion appeared

Product Events

view_item

Fired when a user lands on a product detail page. Also accepted as view_content.

_df.track('view_item', {
  currency: 'GBP',
  value: 129.99,
  items: [
    {
      item_id: 'PKT-001',
      item_name: 'Parka Jacket',
      item_category: 'Women > Jackets',
      item_brand: 'NorthEdge',
      item_variant: 'Black / M',
      price: 129.99,
      currency: 'GBP',
      quantity: 1
    }
  ]
})
PropertyTypeRequiredDescription
currencystringOptionalISO 4217 currency code (e.g. GBP, USD)
valuenumberOptionalMonetary value of the event
itemsarrayOptionalArray containing the viewed item (see Items Array Schema)

add_to_cart

Fired when a user adds a product to their cart.

_df.track('add_to_cart', {
  currency: 'GBP',
  value: 129.99,
  items: [
    {
      item_id: 'PKT-001',
      item_name: 'Parka Jacket',
      item_category: 'Women > Jackets',
      item_brand: 'NorthEdge',
      item_variant: 'Black / M',
      price: 129.99,
      currency: 'GBP',
      quantity: 1
    }
  ]
})
PropertyTypeRequiredDescription
currencystringOptionalISO 4217 currency code
valuenumberOptionalMonetary value of the items added
itemsarrayOptionalArray of items added to the cart (see Items Array Schema)

remove_from_cart

Fired when a user removes a product from their cart.

_df.track('remove_from_cart', {
  currency: 'GBP',
  value: 129.99,
  items: [
    {
      item_id: 'PKT-001',
      item_name: 'Parka Jacket',
      item_category: 'Women > Jackets',
      item_brand: 'NorthEdge',
      item_variant: 'Black / M',
      price: 129.99,
      currency: 'GBP',
      quantity: 1
    }
  ]
})

Accepts the same properties as add_to_cart.


Cart & Checkout Events

view_cart

Fired when a user opens or views their shopping cart.

_df.track('view_cart', {
  currency: 'GBP',
  value: 259.98,
  items: [
    { item_id: 'PKT-001', item_name: 'Parka Jacket', price: 129.99, quantity: 2, currency: 'GBP' }
  ]
})
PropertyTypeRequiredDescription
currencystringOptionalISO 4217 currency code
valuenumberOptionalTotal cart value
itemsarrayOptionalItems currently in the cart (see Items Array Schema)

begin_checkout

Fired when a user initiates the checkout process.

_df.track('begin_checkout', {
  currency: 'GBP',
  value: 259.98,
  coupon: 'SAVE10',
  items: [
    { item_id: 'PKT-001', item_name: 'Parka Jacket', price: 129.99, quantity: 2, currency: 'GBP' }
  ]
})
PropertyTypeRequiredDescription
currencystringOptionalISO 4217 currency code
valuenumberOptionalTotal value of the checkout
couponstringOptionalCoupon code applied
itemsarrayOptionalItems in the checkout (see Items Array Schema)

add_shipping_info

Fired when a user submits their shipping information during checkout.

_df.track('add_shipping_info', {
  currency: 'GBP',
  value: 259.98,
  coupon: 'SAVE10',
  shipping_tier: 'Express',
  items: [
    { item_id: 'PKT-001', item_name: 'Parka Jacket', price: 129.99, quantity: 2, currency: 'GBP' }
  ]
})
PropertyTypeRequiredDescription
currencystringOptionalISO 4217 currency code
valuenumberOptionalTotal value of the checkout
couponstringOptionalCoupon code applied
shipping_tierstringOptionalShipping tier selected (e.g. Express, Standard, Next Day)
itemsarrayOptionalItems in the checkout (see Items Array Schema)

add_payment_info

Fired when a user submits their payment details.

_df.track('add_payment_info', {
  currency: 'GBP',
  value: 259.98,
  coupon: 'SAVE10',
  payment_type: 'credit_card',
  items: [
    { item_id: 'PKT-001', item_name: 'Parka Jacket', price: 129.99, quantity: 2, currency: 'GBP' }
  ]
})
PropertyTypeRequiredDescription
currencystringOptionalISO 4217 currency code
valuenumberOptionalTotal value of the checkout
couponstringOptionalCoupon code applied
payment_typestringOptionalPayment method type (e.g. credit_card, paypal, apple_pay)
itemsarrayOptionalItems in the checkout (see Items Array Schema)

Order Events

purchase

Fired on the order confirmation page after a successful purchase. This is the most important e-commerce event — ensure it fires reliably.

_df.track('purchase', {
  transaction_id: 'ORD-10042',
  value: 259.98,
  currency: 'GBP',
  tax: 43.33,
  shipping: 10.00,
  coupon: 'SAVE10',
  affiliation: 'NorthEdge Online Store',
  items: [
    {
      item_id: 'PKT-001',
      item_name: 'Parka Jacket',
      item_category: 'Jackets',
      item_brand: 'NorthEdge',
      item_variant: 'Black / M',
      price: 129.99,
      quantity: 2,
      currency: 'GBP'
    }
  ]
})
PropertyTypeRequiredDescription
transaction_idstringRequiredUnique order identifier — used for deduplication
valuenumberOptionalTotal revenue including tax and shipping
currencystringOptionalISO 4217 currency code
taxnumberOptionalTax amount
shippingnumberOptionalShipping cost
couponstringOptionalCoupon code applied to the order
affiliationstringOptionalStore or affiliate that generated the order
itemsarrayOptionalItems purchased (see Items Array Schema)
⚠️

Always send transaction_id on purchase events for deduplication. Platforms like Meta CAPI and GA4 use the transaction ID to prevent double-counting alongside browser-side events.


refund

Fired when a full or partial refund is issued. For partial refunds, include only the items being refunded.

_df.track('refund', {
  transaction_id: 'ORD-10042',
  value: 129.99,
  currency: 'GBP',
  items: [
    { item_id: 'PKT-001', item_name: 'Parka Jacket', price: 129.99, quantity: 1 }
  ]
})
PropertyTypeRequiredDescription
transaction_idstringRequiredIdentifier of the order being refunded
valuenumberOptionalAmount refunded
currencystringOptionalISO 4217 currency code
itemsarrayOptionalItems being refunded. Omit for full order refunds; include specific items for partial refunds.

Wishlist Events

add_to_wishlist

Fired when a user saves a product to their wishlist.

_df.track('add_to_wishlist', {
  currency: 'GBP',
  value: 129.99,
  items: [
    {
      item_id: 'PKT-001',
      item_name: 'Parka Jacket',
      item_category: 'Jackets',
      item_brand: 'NorthEdge',
      price: 129.99
    }
  ]
})
PropertyTypeRequiredDescription
currencystringOptionalISO 4217 currency code
valuenumberOptionalMonetary value of the items added
itemsarrayOptionalArray of items added to the wishlist (see Items Array Schema)

remove_from_wishlist

Fired when a user removes a product from their wishlist.

_df.track('remove_from_wishlist', {
  currency: 'GBP',
  value: 129.99,
  items: [
    {
      item_id: 'PKT-001',
      item_name: 'Parka Jacket',
      price: 129.99
    }
  ]
})

Accepts the same properties as add_to_wishlist.


Account Events

sign_up

Fired when a user completes account registration.

_df.track('sign_up', {
  method: 'email'
})
PropertyTypeRequiredDescription
methodstringOptionalRegistration method (e.g. email, google, facebook)

login

Fired when a user signs in to their account.

_df.track('login', {
  method: 'email'
})
PropertyTypeRequiredDescription
methodstringOptionalLogin method (e.g. email, google, facebook)

Items Array Schema

💡

Several events accept an items array. Each object in the array can include the following properties. The items[] array uses GA4-style field names. Signal’s server-side blueprints automatically transform these to vendor-specific formats (e.g., Meta’s contents[] with id/title fields).

PropertyTypeDescription
item_idstringYour internal product ID or SKU
item_namestringProduct display name
item_categorystringProduct category or breadcrumb path
item_brandstringBrand name
item_variantstringSelected variant (e.g. Blue / XL)
pricenumberUnit price
quantitynumberNumber of units (relevant in cart/order contexts)
indexnumberPosition in list (0-indexed, relevant in list/search contexts)
currencystringISO 4217 currency code
couponstringItem-level coupon code if applicable
discountnumberMonetary discount applied to this item
affiliationstringStore or affiliate for this item
item_list_idstringIdentifier of the list the item was shown in
item_list_namestringName of the list the item was shown in

Vendor Mapping

The table below shows how Datafly Signal maps e-commerce events to the native event names expected by each vendor’s server-side API. Signal uses the GA4-style event names as its canonical format, and blueprints handle the transformation to vendor-specific payloads.

Signal EventGA4Meta CAPITikTok Events API
view_itemview_itemViewContentViewContent
view_item_listview_item_listViewContentViewContent
select_itemselect_itemViewContentClickButton
add_to_cartadd_to_cartAddToCartAddToCart
remove_from_cartremove_from_cart(custom)(custom)
view_cartview_cartViewContentViewContent
begin_checkoutbegin_checkoutInitiateCheckoutInitiateCheckout
add_payment_infoadd_payment_infoAddPaymentInfoAddPaymentInfo
add_shipping_infoadd_shipping_info(custom)(custom)
purchasepurchasePurchasePlaceAnOrder
refundrefund(custom)(custom)
searchsearchSearchSearch
view_promotionview_promotion(custom)(custom)
select_promotionselect_promotion(custom)(custom)
add_to_wishlistadd_to_wishlistAddToWishlistAddToWishlist
sign_upsign_upCompleteRegistrationCompleteRegistration
loginlogin(custom)(custom)