8 Minutes Of Reading
March 18, 2026

Custom Checkouts Are Breaking Your Ad Tracking (Here’s the Fix)


Custom Checkouts Are Breaking Your Ad Tracking

If you’re running a WooCommerce or Shopify store with FunnelKit, CartFlows, or PayPal Standard, there’s a real chance Google and Meta are only seeing a fraction of your actual orders. I’ve seen stores where 30-40% of completed purchases were simply never reported to any ad platform. The campaigns looked mediocre. The ROAS looked terrible. The store was actually doing fine.

Here’s what’s happening, and what actually fixes it.

Why FunnelKit, CartFlows and PayPal Redirects Break Your Google and Meta Conversion Tracking

Standard ad tracking, whether you’re using Google’s purchase tag, Meta Pixel, or GA4, relies on one very specific trigger: the customer landing on your default thank-you page. For WooCommerce, that’s usually /checkout/order-received/12345/. For Shopify, it’s the standard order confirmation screen.

When you use FunnelKit or CartFlows, the order confirmation happens on their page, not your store’s default. Your tracking code is listening at the wrong door. The order gets written to your database, the customer gets their confirmation email, but Google and Meta never hear a word about it.

The same problem affects:

PayPal Standard and bank transfers: the customer leaves your site to pay and a significant portion never return to the confirmation page. Depending on your payment mix, this alone accounts for 10-25% of untracked orders.

One-click checkout plugins: purchases complete without a standard page load, so there’s no confirmation page event to fire.

Custom thank-you redirects: if your URL pattern differs from the default, standard tracking setups won’t recognise it.

None of these are unusual configurations. They’re how most serious WooCommerce and Shopify stores are set up.

Standard Checkout vs Custom Checkout: How Conversion Tracking Behaves Differently

With a standard checkout, everything works the way it was designed to. Customer pays, lands on the thank-you page, tracking fires, Google and Meta log the sale. Clean, simple, done.

Now add FunnelKit. Or CartFlows. Or a PayPal redirect.

Suddenly the customer pays and ends up somewhere your tracking code has never heard of. A plugin’s own confirmation page. A bank’s external website. A custom URL that looks nothing like /order-received/. Your tracking code is still standing at the original door, waiting for a visitor who already left through a different exit.

The order is sitting in your database. The confirmation email landed in your customer’s inbox. But as far as Google and Meta are concerned, that sale never happened.

How to Find Your WooCommerce and Shopify Tracking Gap in 5 Minutes

This takes five minutes.

  1. Go to WooCommerce or Shopify and filter for completed orders over the last 30 days. Write down that number.
  2. Open GA4 and check your Purchase event count for the same period.
  3. Open Meta Events Manager and check Purchase events.
  4. Open Google Ads and check conversion count.

If any of those figures are more than 10% lower than your actual order count, you have a tracking gap.

You can get even more specific with FunnelKit or CartFlows: look at how many orders were completed through their system, then compare against what GA4 shows. If FunnelKit shows 150 completed orders and GA4 shows 90, those 60 missing orders represent real ad spend you can’t account for.

Searches like FunnelKit order not tracked GA4 or CartFlows missing conversions Meta bring up a lot of forum threads from store owners hitting exactly this problem, which tells you how common it is.

Why Adding a Meta Pixel or GA4 Tag to Your Custom Checkout Page Is Not Enough

The first instinct is to drop the tracking code directly onto the FunnelKit or CartFlows confirmation page. This helps but doesn’t close the gap entirely.

Browser-side tracking fails in several ways regardless of where you place the code:

Ad blockers: a meaningful share of your customers (often 15-30% depending on your audience) use extensions that block pixel fires entirely.

iOS privacy restrictions: since App Tracking Transparency, a large and still-growing portion of iPhone users aren’t trackable via browser-based pixels at all.

Page abandonment: some customers close the tab immediately after their payment confirms, before the confirmation page fully loads. The order went through. The pixel didn’t fire.

Device issues: if a phone dies or a browser crashes between payment completion and page load, same result: order recorded, pixel silent.

This applies equally to WooCommerce and Shopify stores. The browser is the weak link, and custom checkouts simply expose that weakness more visibly.

Server-Side Order Reconciliation: The Only Fix That Catches Every Missed Conversion

The reason browser-based tracking fails is that it depends on something outside your control, specifically the customer’s device and session. The fix is to remove that dependency entirely. This is exactly why many ecommerce brands are moving toward server-side tracking, where conversion data is sent directly from the store server instead of relying only on browser pixels.

Here’s how server-side order reconciliation works:

When a customer completes a purchase, your store writes that order to its database. This happens regardless of which checkout plugin handled the transaction, regardless of what the customer’s browser does, and regardless of whether they ever see a confirmation page.

That database entry is the only event in this entire chain that is 100% reliable.

Server-side reconciliation uses that event as its source of truth. Instead of waiting for a page to load, a background process checks every completed order against a log of what’s already been sent to Google and Meta. Any order that wasn’t reported, for any reason, gets sent via direct API calls from your server to theirs – similar to how platforms use Conversions API integrations to send event data server-to-server.

No browser. No pixel. No dependency on the customer at all.

This is what the Order Recovery Engine inside Conversios does. It watches your backend order records directly, so it catches everything regardless of how the order was placed. Whether that’s a FunnelKit funnel, a CartFlows checkout, a PayPal redirect, or any other non-standard flow, the engine identifies it and reports it.

The key difference from other solutions: it works immediately after order creation via server-side APIs. It doesn’t require the customer to revisit your store. It doesn’t wait for a session to complete. The moment the order is in your database, it’s eligible to be reconciled.

How Missing Conversions Hurt Your Google Ads and Meta ROAS Data

Google and Meta use your purchase data to decide who to show your ads to next. When ad platforms see fewer conversions than your store actually generates, optimization decisions are based on incomplete data – which is one of the common reasons Google Ads and Meta numbers don’t match WooCommerce order data. If they’re only seeing 70% of your actual buyers, they’re building lookalike audiences and bidding strategies on incomplete data. Your campaigns may be performing better than they appear, and your budgets may be misallocated as a result.

Server-side reconciliation corrects this. Every completed funnel order, accepted upsell, and order bump purchase gets reported, even if the customer had an ad blocker, even if they dropped off before the confirmation page, even if the order completed on a non-standard URL.

Your ROAS data improves not because your campaigns changed, but because Google and Meta finally have the complete picture.

How to Fix WooCommerce and Shopify Conversion Tracking with Order Recovery Engine

Run the diagnostic. Compare your actual order count against GA4 and Meta conversions for the last 30 days. A gap over 10% means your campaigns are optimising on incomplete data.

Check your checkout setup. If you’re using FunnelKit, CartFlows, PayPal Standard, or any plugin that processes orders outside the default checkout flow, browser-side tracking alone is not sufficient.

Enable server-side order reconciliation. The Order Recovery Engine is available on the Conversios Pro plan for WooCommerce ($699/yr) and included in the Growth and Unlimited plans for Shopify. It runs automatically from the moment you activate it, with no per-plugin configuration required.

Most stores see their reported conversion counts increase within the first few days. Not because more people are buying, but because those buyers are finally visible to your ad platforms.

Frequently Asked Questions

Q. Does this affect Shopify stores or just WooCommerce?

Both. Any store using a custom checkout flow, third-party payment redirect, or non-standard confirmation page has this problem regardless of platform. The tracking gap is a browser dependency issue, not a platform issue.

Q. I already have server-side tracking enabled. Am I protected?

Not fully. Standard server-side tracking still listens for the thank-you page event. If the customer never reaches that page, even server-side tracking doesn’t fire. Order Recovery Engine is specifically designed to catch what server-side tracking misses.

Q. How big is the gap typically?

It varies by store setup. Stores using PayPal Standard as a primary payment method often see 10-25% of orders going untracked from redirects alone. Add FunnelKit or CartFlows on top of that and the gap grows further. Running the diagnostic in this post will give you your actual number.

Q. Will recovering missing orders cause duplicate conversions?

No. The Order Recovery Engine cross-checks every order against what has already been reported before sending anything. If an order was already tracked, it won’t be sent again.

Q. How long does it take to see results after enabling it?

Most stores see their reported conversion counts change within the first few days as the engine catches up on recent untracked orders.

Q. Does it work with all payment gateways?

Yes. Because it reads directly from your order database rather than listening for page events, it works regardless of which payment gateway processed the transaction.

Switch to Conversios

Get accurate, code-free server-side tracking for your store.

Start For Woocommerce Start For Shopify

Vinay Mehta

WordPress Developer, Lead

Vinay is the WordPress & WooCommerce Developer Lead at Conversios, where he architects high-performance plugins for eCommerce tracking, analytics, and server-side integrations. With deep expertise in PHP, WordPress core, and WooCommerce APIs, he ensures seamless performance and compatibility across the Conversios product suite.

Scroll to Top