This document explains why two purchase events may be fired when a user accepts an upsell offer in a single order. It also provides guidance on how to disable one of the purchase events if you prefer not to have multiple purchase events recorded for a single order.
Why Two Facebook Purchase Events Are Triggered
When a user makes a purchase, FunnelKit fires a purchase event at different points in the funnel to ensure accurate tracking. Here’s why two purchase events might be triggered when an upsell is accepted:
- Initial Purchase Event on Primary Order:
- When the user accepts the primary order, the purchase event is fired on the upsell page.
- When the user accepts the primary order, the purchase event is fired on the upsell page.
- Second Purchase Event on Upsell:
- If the user accepts the upsell, another purchase event is triggered on the next step, which could be another offer page or the Thank You page.
- If the user accepts the upsell, another purchase event is triggered on the next step, which could be another offer page or the Thank You page.
- Why Two Events Are Necessary:
- No Updates to Purchase: Facebook does not allow updating a purchase event, so only one conversion per order is not possible.
- Avoiding Missed Purchases: We cannot wait until the Thank You page to fire the purchase event because some users may leave the funnel before reaching the Thank You page. This would result in no purchase being recorded at all.
- No Updates to Purchase: Facebook does not allow updating a purchase event, so only one conversion per order is not possible.
- Accurate Reporting:
- To ensure accurate reporting and prevent missed purchases, we fire purchase events as soon as the relevant action occurs. This ensures that each step in the funnel is recorded correctly.
- To ensure accurate reporting and prevent missed purchases, we fire purchase events as soon as the relevant action occurs. This ensures that each step in the funnel is recorded correctly.
How to Disable One Purchase Event
Using plugin:
If you prefer to have only one purchase event recorded for a single order, you can disable the purchase event for the upsell step. Here’s how:
- Disable One-Click Upsell Purchase Event:
- You can use a plugin like PixelYourSite instead of using FunnelKit tracking to manage tracking and disable the upsell purchase event.
- You can use a plugin like PixelYourSite instead of using FunnelKit tracking to manage tracking and disable the upsell purchase event.
Using Snippet:
If you still wish to proceed with disabling the upsell purchase event, follow these steps:
- Use the Provided Snippet:
- Use the following code snippet to disable the purchase event on the upsell page:
Disable Purchase Event Snippet
- Use the following code snippet to disable the purchase event on the upsell page:
function remove_offer_tracking_events() {
if ( class_exists( 'WFOCU_Ecomm_Tracking' ) ) {
$ecom = WFOCU_Core()->ecom_tracking;
remove_action( 'wfocu_offer_accepted_and_processed', array( $ecom, 'maybe_save_data_offer_accepted' ), 10, 4 );
}
}
add_action( 'wp', 'remove_offer_tracking_events', 999 );
- Follow the Guide:
- After implementing the snippet, follow the guide to ensure that purchase events will no longer trigger for the offer products.
- After implementing the snippet, follow the guide to ensure that purchase events will no longer trigger for the offer products.
- Verify the Changes:
- Once you have completed the steps, purchase events should not be triggered for offer products. You can verify this by checking the provided screenshot:
- Once you have completed the steps, purchase events should not be triggered for offer products. You can verify this by checking the provided screenshot:

Downside:
While we do not recommend disabling the purchase event on offer pages due to the reasons mentioned above, we provide this option for users who prefer a simplified tracking system.
Disabling the upsell purchase event will lead to inaccurate reporting, as the revenue and number of orders will not be recorded properly.
You must choose between accurate revenue reporting or accurate order count. Due to the limitations of Facebook’s tracking, we prioritize accurate revenue as a metric.
Loom Video for Further Explanation
- A Loom video made by a customer who spent over 30 million on Facebook ads provides further context on this behavior. The video remains relevant for understanding how the purchase events work in the funnel.
Conclusion
By default, FunnelKit triggers purchase events at both the primary order and upsell stages to ensure accurate tracking, especially if the user leaves before reaching the Thank You page. While it’s possible to disable the upsell purchase event, doing so can impact reporting accuracy, particularly regarding revenue and order counts.