Skip to main content

Ecommerce Event Tracking for Analytics & Pixels

Updated this week

On The Stage uses ecommerce tracking events to understand how patrons interact with production sites during the ticket purchasing process.

These events allow analytics platforms to capture key actions such as:

  • Viewing performances

  • Selecting ticket types

  • Adding tickets or donations to the cart

  • Beginning checkout

  • Entering payment information

  • Completing a purchase

Tracking these events helps identify areas where patrons may encounter friction in the purchasing process and allows organizations to better understand conversion behavior.

Event data is sent to Google Analytics (GA4) and mapped to advertising platforms including Meta Pixel, TikTok Pixel, and Reddit conversion tracking.

Item Parameters

Item parameters provide detailed information about the items a patron interacts with, such as tickets, donations, or merchandise.

Name

Type

Example Value

Definition

item_name

string

The SpongeBob Musical: Youth Edition

or

Page Middle School

event title (fit for humans)

if the item is a donation, item_name = item_brand since donations are made at the organization level.

item_ID

string

a unique identifier for the item (fit for machines)

item_brand

string

Page Middle School

organization name

item_variant

string

General Admission

ticket type (General, Reserved, etc.)

item_category

string

Tickets

type of purchase (tickets, donation, merchandise, promo, etc.)

item_category2

string

Senior

ticket name (can vary by customer - Senior/Student or Balcony/VIP/Orchestra)

item_category3

string

Walkup

sale type (Online, Walkup, agent, API, etc.)

item_category4

string

<reserved for future use>

item_category5

string

<reserved for future use>

item_list_id

string

schedule

the unique name of the list of items. we may show multiple lists on a single page (e.g. when a user views a list of ticket types to choose from and an upsell carousel for merchandise) and the items viewed in each list should be passed as part of the array for each item_list_id.

item_list_name

string

Schedule

the “pretty” name of the list of items being shown to the user.

quantity

number

4

item quantity, regardless of category

seat_id

string

A7

The seat the user selected from the seat map. (This would be a custom dimension.)

price

number

10

the price of the item prior to any discounts

coupon

string

free_tix

the name of the promotion code used. this should be used when the promotion code only applies to a specific item rather than the entire order (e.g. free ticket vs. 10% off your entire order.)

discount

number

3.33

the discount applied to the order based on the coupon code. this should always be a dollar amount applied to the item and not a percentage.

Checkout Parameters

These parameters relevant to the checkout process.

Name

Type

Example Value

Definition

currency

string

GBP

the currency of the transaction

quantity

number

4

item quantity, regardless of category

value

number

134.75

the total of the order, after any discounts

ticket_fees

number

7.38

total of ticket fees

cc_fees

number

4.33

total of credit card fees

tax

number

1.22

any taxes collected (VAT, sales tax, etc.)

coupon

string

summer_fun

the name of the promotion code used

discount

number

2.37

the discount applied to the order based on the coupon code

shipping

number

12.77

Shipping cost

order_id

returned from stripe on the success page

items

array<Item>

the items that are in the user’s cart


Analytics Event Mapping

Google Analytics ecommerce events are mapped to advertising platform events so that conversions can be tracked across marketing channels.


Meta Pixel Mapping

Google Analytics events are mapped to Meta Pixel events.

GA4 Event

Meta Pixel Event

Description

view_item

ViewContent

Patron views a product or event page

add_to_cart

AddToCart

Patron adds an item to their cart

begin_checkout

InitiateCheckout

Patron begins the checkout process

add_payment_info

AddPaymentInfo

Patron enters payment information

purchase

Purchase

Patron completes a transaction

refund

Refund

Refund is processed for an order


TikTok Pixel Mapping

Google Analytics events are mapped to TikTok events and sent with the same payload contents.

GA4 Event

TikTok Event

Notes

view_item

ViewContent

Used for product or event pages

add_to_cart

AddToCart

Direct mapping

begin_checkout

InitiateCheckout

Direct mapping

add_payment_info

AddPaymentInfo

Optional event

purchase

CompletePayment

TikTok’s purchase conversion event

view_item_list

ViewContent

Used for list views

select_item

ClickButton / ViewContent

Optional depending on funnel depth


Reddit Event Mapping

Google Analytics events are mapped to Reddit events and sent with the same payload contents.

GA4 Event

Reddit Pixel Event

Notes

view_item

ViewContent

Primary mapping for product or event detail pages.

view_item_list

PageVisit

Reddit does not distinguish list vs detail; use PageVisit event.

add_to_cart

AddToCart

Direct mapping.

begin_checkout

Lead

Common proxy since Reddit has no checkout-start event.

purchase

Purchase

Core conversion event.


Example Events


When a user views a list of performances:

gtag("event", "view_item_list", { item_list_id: "schedule", item_list_name: "Schedule", items: [ { item_id: "SKU_12345", item_name: "The SpongeBob Musical: Youth Edition - Fri Mar 29 2023, 7:00 PM", item_brand: "Page Middle School", item_category: "Tickets" }, { item_id: "SKU_12346", item_name: "The SpongeBob Musical: Youth Edition - Sat Mar 30 2023, 7:00 PM", item_brand: "Page Middle School", item_category: "Tickets" }, { item_id: "SKU_12346", item_name: "The SpongeBob Musical: Youth Edition - Sun Mar 31 2023, 2:00 PM", item_brand: "Page Middle School", item_category: "Tickets" } ] });

When a user selects a performance from the list of performances:

gtag("event", "select_item", { item_list_id: "schedule", item_list_name: "Schedule", items: [ { item_id: "SKU_12345", item_name: "The SpongeBob Musical: Youth Edition - Fri Mar 29 2023, 7:00 PM", item_brand: "Page Middle School", item_category: "Tickets" } ] });

When a user is shown a list of ticket types to choose from for a given performance:

gtag("event", "view_item_list", { item_list_id: "ticket_type_list", item_list_name: "Ticket Types", items: [ { item_id: "SKU_12345", item_name: "The SpongeBob Musical: Youth Edition - Fri Mar 29 2023, 7:00 PM", item_brand: "Page Middle School", item_category: "Tickets", item_variant: "General Admission", item_category2: "Student", item_category3: "Online", price: 5.00, quantity: 0 }, { item_id: "SKU_12346", item_name: "The SpongeBob Musical: Youth Edition - Sat Mar 30 2023, 7:00 PM", item_brand: "Page Middle School", item_category: "Tickets", item_variant: "General Admission", item_category2: "Senior", item_category3: "Online", price: 5.00, quantity: 0 }, { item_id: "SKU_12346", item_name: "The SpongeBob Musical: Youth Edition - Sun Mar 31 2023, 2:00 PM", item_brand: "Page Middle School", item_category: "Tickets", item_variant: "General Admission", item_category2: "Adult", item_category3: "Online", price: 10.00, quantity: 0 } ] });

When a user clicks the “Purchase” button and moves forward to their cart:

gtag("event", "add_to_cart", { currency: "USD", value: 20.00, items: [ { item_id: "SKU_12345", item_name: "The SpongeBob Musical: Youth Edition - Fri Mar 29 2023, 7:00 PM", item_brand: "Page Middle School", item_category: "Tickets", item_category2: "Adult", item_variant: "General Admission", item_category3: "Online" price: 10.00, quantity: 2 } ] });

If the user then added a donation to their cart:

gtag("event", "add_to_cart", { currency: "USD", value: 18.00, items: [ { item_id: "SKU_12345", item_name: "The SpongeBob Musical: Youth Edition - Fri Mar 29 2023, 7:00 PM", item_brand: "Page Middle School", item_category: "Donation", price: 18.00, quantity: 1 } ] });

If the user then removes the donation:

gtag("event", "remove_from_cart", { currency: "USD", value: 18.00, items: [ { item_id: "SKU_12345", item_name: "The SpongeBob Musical: Youth Edition - Fri Mar 29 2023, 7:00 PM", item_brand: "Page Middle School", item_category: "Donation", price: 18.00, quantity: 1 } ] });

  • And then clicked the checkout button:

gtag("event", "begin_checkout", { currency: "USD", value: 38.00, fees: 3.58 items: [ { item_id: "SKU_12345", item_name: "The SpongeBob Musical: Youth Edition - Fri Mar 29 2023, 7:00 PM", item_brand: "Page Middle School", item_category: "Tickets", item_category2: "Adult", item_variant: "General Admission", price: 20.00, quantity: 2 } { item_id: "SKU_12345", item_name: "The SpongeBob Musical: Youth Edition - Fri Mar 29 2023, 7:00 PM", item_brand: "Page Middle School", item_category: "Donation", price: 18.00, quantity: 1 } ] });

  • And then adds their contact info and payment details:

gtag("event", "begin_checkout", { currency: "USD", value: 38.00, payment_type: "credit card", items: [ { item_id: "SKU_12345", item_name: "The SpongeBob Musical: Youth Edition - Fri Mar 29 2023, 7:00 PM", item_brand: "Page Middle School", item_category: "Tickets", item_category2: "Student", item_variant: "General Admission", price: 10.00, quantity: 2 } { item_id: "SKU_12345", item_name: "The SpongeBob Musical: Youth Edition - Fri Mar 29 2023, 7:00 PM", item_brand: "Page Middle School", item_category: "Donation", price: 18.00, quantity: 1 } ] });

  • And then after on the success page after being charged by Stripe:

gtag("event", "purchase", { currency: "USD", value: 38.00, fees: 1.38, tax: 6.33, transaction_id: T_1234, payment_type: "credit card", items: [ { item_id: "SKU_12345", item_name: "The SpongeBob Musical: Youth Edition - Fri Mar 29 2023, 7:00 PM", item_brand: "Page Middle School", item_category: "Tickets", item_category2: "Student", item_variant: "General Admission", price: 10.00, quantity: 2 } { item_id: "SKU_12345", item_name: "The SpongeBob Musical: Youth Edition - Fri Mar 29 2023, 7:00 PM", item_brand: "Page Middle School", item_category: "Donation", price: 18.00, quantity: 1 } ] });

Did this answer your question?