upsell_purchase event.
This page explains how upsells are detected. For the event’s fields and destination names, see the
upsell_purchase event reference. For the reporting measures, see Upsell Purchases.Example
A customer checks out with a 60.00 USD order, then accepts a 24.00 USD post-purchase offer. The offer is added to the same order, which becomes 84.00 USD.
Meta and TikTok receive one purchase worth 60.00 USD and one upsell worth 24.00 USD, so the order isn’t counted twice. In Upstack, the Shopify order shows the full 84.00 USD, because Upstack updates its copy of the order when Shopify reports a change.
How detection works
1
Upstack sends the Purchase
At checkout, Upstack sends
purchase with the order total at that moment.2
Shopify reports an order update
When the accepted offer is added to the existing order, Upstack receives an order update from Shopify for the same order ID.
3
Upstack checks the update
It treats the update as an upsell only when all of these are true:
- The order has the tag
AfterSell Upsell - The order was created in the last 2 hours
- The order’s payment status is paid or pending
- The new total is higher than the Purchase value Upstack already sent
4
Upstack sends upsell_purchase
The event’s value is the new total minus the original Purchase value. Its items are only the line items that weren’t in the original Purchase. Customer details and click IDs come from the original Purchase, so the platform can match it to the same person.
Where upsell_purchase goes
Meta needs each custom event approved before you can optimize on it. See How to approve Meta custom events. Sending
upsellPurchase doesn’t change the Purchase event, so campaigns that optimize for Purchase need no changes.
What isn’t detected
- Upsell apps that don’t tag the order
AfterSell Upsell. If the app edits the order, Upstack sends no upsell event. If the app creates a new order instead, that order is sent as its ownpurchase. - A second upsell on the same order. Upstack sends at most one
upsell_purchaseper order. A second accepted offer raises the Shopify order total but isn’t sent to ad platforms. - Order edits after 2 hours. Updates to an order created more than 2 hours earlier aren’t checked for upsells.
See upsell revenue in reports
Shopify order measures, such as revenue and AOV, already include the upsell. Tracked-event measures keep it separate: Purchases Value holds the checkout amount and Upsell Purchase Value holds the add-ons. To see both together on a custom dashboard, build a custom measure:Other orders kept out of ad platforms
Upsells aren’t the only orders Upstack holds back to avoid inflating Purchase counts. Subscription renewals are tracked assubscription_recurring_purchase and aren’t sent to ad platforms as purchases. They still count toward revenue in Upstack.
Related
upsell_purchase event
Event reference for the upsell event Upstack generates.
Upsell Purchases metric
Count and value of upsell purchases in your reports.
Upstack-generated events
Every event Upstack creates for you, such as
nc_purchase and all_purchase.Install Upstack on Shopify
Upsell detection relies on the Upstack app receiving Shopify order updates.