Accelerated checkout methods are one of the best things you can add to a Shopify store. Fewer fields, faster completion, less friction at the moment a shopper is most ready to buy. The conversion rate case for Shop Pay, Apple Pay, and PayPal is well established.
What is less discussed is what happens to your tracking when shoppers use them.
When a customer checks out with a wallet, they are often redirected off your domain, authenticated inside a separate environment, and returned to your store only at the very end. Some close the window before the confirmation page loads. Others complete payment inside a modal that never triggers your browser scripts at all. The order lands in Shopify. The conversion never reaches Meta, Google, or your email platform.
For many Shopify merchants, this is not a small rounding error. Wallet checkouts can represent 30 to 60 percent of total transactions depending on the store, device mix, and market. If a meaningful share of those are not being tracked, your Meta Pixel data is understating real performance, your Conversions API is missing purchases it should be sending, and your retargeting audiences are smaller than they should be.
The problem tends to go unnoticed because everything looks fine on the surface. Shopify shows the orders. The tracking setup appears to be working. The gap only becomes visible when you compare Shopify order totals against what your marketing platforms are actually receiving.
What the Data Loss Actually Looks Like
The most common symptoms merchants notice:
Purchases in Shopify that never appear in Meta Events Manager. The order completed, the money was collected, but no purchase event was recorded in your Conversions API or pixel data.
A sudden drop in tracked checkouts after enabling a wallet. If you turned on Shop Pay or Apple Pay and noticed a dip in reported conversions shortly after, the wallet flow is the likely cause, not campaign performance.
Purchases with missing customer details. Events that do fire sometimes arrive without email, phone, or other identifiers, making them nearly useless for Meta's matching algorithm and lowering your event match quality score.
Duplicate purchases mixed with missing ones. This is the confusing scenario where some orders are counted twice while others are not counted at all. It usually means your setup is catching some wallet flows and missing others, without consistent deduplication.
In all of these cases, the underlying issue is the same: your tracking is dependent on something happening in the browser, and the wallet checkout broke the chain before it could happen.
Why Shop Pay, Apple Pay, and PayPal Specifically Break Tracking
Each wallet creates tracking gaps for slightly different reasons, but they share a common pattern: they move the shopper out of the standard browser context where your tracking scripts expect to run.
Shop Pay redirects shoppers through Shopify's own accelerated checkout infrastructure. The flow bypasses parts of your standard checkout pages, which means browser-based scripts that fire on those pages may never execute. If your purchase event is triggered by a thank-you page load, Shop Pay flows can complete without that page rendering in a way your scripts can access.
Apple Pay typically opens in a native payment sheet that sits outside your browser context entirely. Scripts on your page cannot run inside the Apple Pay modal. If the shopper authorizes payment there and the window closes or the page does not fully reload afterward, client-side tracking has no opportunity to fire.
PayPal has historically been one of the most disruptive flows for tracking because it involves a full redirect to PayPal's domain and back. UTM parameters and session identifiers attached to the original visit are frequently lost in the redirect. When the shopper returns to your confirmation page, your analytics may treat them as a new, unattributed session.
All three of these flows also share a timing problem: customer identity, including the email address needed for Meta's hashed matching, is often only revealed at the very end of the checkout, after the events you most needed to capture have already been missed.
Where to Look for the Gap
Before changing anything, map where your tracking chain is actually breaking. Work through these checkpoints.
Funnel completeness check. For a sample of recent wallet orders in Shopify, check whether the following events appear in your Meta Events Manager or Conversions API logs:
- Add to cart
- Begin checkout
- Purchase
If purchases exist in Shopify but not in your event data, the gap is in event generation or delivery. If purchases appear but without customer identifiers, the gap is in identity attachment.
Confirmation page dependency check. Identify whether your purchase event is triggered solely by a browser script on the thank-you page. If the answer is yes, any checkout flow that does not reliably load that page, or loads it without your scripts running, will produce a missing event.
Attribution parameter check. For PayPal orders specifically, check whether campaign parameters (UTM source, medium, campaign) are present on the orders. If they are stripped during the PayPal redirect, you are losing attribution data in addition to conversion events.
Match quality check. In Meta Events Manager, look at your event match quality score for purchase events. A score below 6 often indicates that events are arriving without sufficient customer identifiers, which wallet flows commonly cause.
Start Without Code
Work from the least invasive checks before touching your implementation.
Confirm orders are complete in Shopify. Verify that the orders exist, payment is captured, and there are no fulfillment or cancellation statuses that could be confusing downstream reporting.
Run a side-by-side comparison. Pull Shopify order totals for the past 30 days and compare against purchase events received in Meta Events Manager for the same period. A gap larger than 10 to 15 percent warrants investigation.
Isolate by payment method. If your order data includes payment method, compare conversion event coverage for wallet orders versus standard card checkouts. A significantly larger gap for wallet orders confirms the source of the problem.
Check for duplicates as well as missing events. Duplicates and missing events often coexist in broken wallet tracking setups. Look for order IDs that appear more than once in your event data alongside orders that do not appear at all.
Verify your event source. Determine whether your purchase events are generated by a browser script on the confirmation page, a server-side webhook, or both. If the answer is browser-only, that is the root cause.
How to Harden Your Event Model for Wallet Checkouts
Fixing wallet tracking reliably requires moving the purchase event's source of truth away from the browser.
Use server-side order signals as the authoritative purchase trigger. When an order is created in Shopify, that event is recorded server-side regardless of what the browser did or did not do. A tracking setup that generates the purchase event from Shopify's order creation signal, rather than from a browser script on the thank-you page, will capture wallet checkouts that client-side tracking misses entirely.
This is the single most important architectural change for wallet tracking reliability. The browser confirmation page becomes a secondary signal rather than the primary one.
Attach identity at the order level. Shopify's order record includes the customer's email address, which means a server-side purchase event generated from the order can include a hashed email for Meta's matching, even in cases where client-side tracking never had access to it.
Stitch earlier funnel events to the order. Purchase completeness is the highest priority and the easiest to fix server-side. Funnel events like add to cart and begin checkout are harder because they happen before the order exists. Common approaches include using Shopify's cart token or checkout token to link pre-purchase activity to the resulting order, and relying on authenticated identifiers for logged-in shoppers.
Implement deduplication from the start. If you run both browser and server-side events, which is often the right approach for maximum coverage, use a deterministic event ID based on the order ID to ensure the same purchase is not counted twice. A consistent event ID is what allows Meta to recognize two signals as the same conversion rather than two separate ones.
What You Can and Cannot Recover
Setting accurate expectations matters here.
What you can reliably improve with a server-side approach:
Purchase completeness is the clearest win. Orders that currently disappear during wallet flows will be captured via the server-side order signal regardless of what the browser did.
Match quality improves because server-side events can attach the customer's email from the order record, giving Meta stronger signals for attribution.
Deduplication becomes consistent when event IDs are tied to order IDs, eliminating the mixed duplicates and missing events that characterize poorly configured wallet tracking.
What may remain imperfect:
Session-level attribution for PayPal flows can be difficult to fully recover if campaign parameters were stripped during the redirect and were not captured earlier in the session. Capturing UTM data on landing and storing it server-side before the redirect happens is the most reliable mitigation.
Cross-device journeys without a durable identifier, such as an authenticated user or a captured email, will remain probabilistic. The goal is not perfect tracking but consistent, explainable tracking that holds up when wallets behave differently from standard card flows.
How to Test Whether Fixes Are Working
Do not rely on aggregate numbers to validate changes. Run a controlled test.
- Place three test orders. Run one order each with PayPal, Shop Pay, and Apple Pay. Use the same product and similar timing so results are comparable.
- Trace each order end-to-end. For each test order, check whether the following appear in your event data:
- Add to cart
- Begin checkout
- Purchase with correct order value, currency, and order ID
- Purchase with a customer identifier attached
- Compare Shopify against your event destinations. For each test order, confirm it appears in Meta Events Manager, Google, and any email platform you are sending events to. The baseline is simple: if the order exists in Shopify, it should be accountable downstream.
- Check for duplicates. Confirm each order appears exactly once in your event data. If it appears twice, your deduplication is not working correctly.
Run this test after any significant change to your tracking setup, and repeat it whenever you add or modify a checkout method.
How Aimerce Handles Express Checkout Tracking
Most server-side tracking solutions are built around the assumption that the browser will complete its part of the job. When wallets break that assumption, those solutions have no fallback.
Aimerce is built specifically for Shopify's checkout environment, including express checkout paths. Rather than depending on a browser script to fire after the thank-you page loads, Aimerce generates the purchase event directly from Shopify's order creation signal on the server. This means Shop Pay, Apple Pay, and PayPal orders are captured regardless of what the browser did during or after checkout.
Identity attachment happens at the order level. When Shopify's order record includes the customer's email, Aimerce attaches a hashed version to the purchase event before forwarding it to Meta's Conversions API, Google, and Klaviyo. This improves event match quality for wallet orders that would otherwise arrive as anonymous conversions.
Deduplication uses a deterministic event ID derived from the order ID. If a browser script also fires a purchase event for the same order, Meta receives both signals with the same event ID and deduplicates correctly. You get maximum coverage without inflated conversion counts.
For merchants running a meaningful volume of wallet checkouts, this architecture closes a gap that standard pixel setups and generic server-side solutions consistently leave open.
Frequently Asked Questions
Why do wallet checkouts cause more tracking problems than standard card checkouts? Standard card checkouts keep the shopper on your domain through most of the funnel, which gives browser-based scripts a consistent environment to run in. Wallet checkouts introduce redirects, native payment sheets, or modal flows that move the shopper outside that environment, breaking the chain of identifiers and page-based triggers that most tracking setups depend on.
Will switching to server-side tracking fix all of my wallet tracking gaps? Server-side tracking that generates the purchase event from Shopify's order record will capture wallet conversions that browser-only tracking misses. However, earlier funnel events like add to cart and begin checkout typically still rely on browser context and may require additional stitching logic to connect reliably to wallet orders.
Should I turn off my Meta Pixel and rely only on the Conversions API? Not necessarily. Running both the Meta Pixel and the Conversions API together gives you maximum coverage, with the browser contributing context signals when it can and the server filling in the gaps when it cannot. The critical requirement is proper deduplication using a consistent event ID so that the same purchase is not counted twice.
Is this problem specific to Shopify, or does it affect all ecommerce platforms? Wallet checkout tracking gaps affect most ecommerce platforms, but the specifics depend on how each platform handles checkout flows. On Shopify, the combination of Shop Pay's infrastructure, Shopify's checkout customization constraints, and the prevalence of wallet adoption makes this a particularly common issue.
What is a good baseline for how many purchases should be tracked? A well-configured server-side setup should account for the large majority of Shopify orders in your event data. A gap larger than 10 to 15 percent between Shopify order totals and tracked purchase events is worth investigating, though some variance from attribution windows and deduplication timing is normal.
Is Aimerce a Stape or Elevar alternative for Shopify? Stape is a hosting layer for server-side Google Tag Manager containers, and Elevar is a data layer and tag management solution built for ecommerce. Aimerce takes a different approach: rather than managing tags or containers, it generates events directly from Shopify's backend data and delivers them via the Conversions API to Meta, Google, and Klaviyo. For merchants whose primary concern is express checkout coverage and first-party signal quality, the direct server-to-API architecture avoids the browser dependency that tag-based approaches carry.
30-Day Aimerce Pixel Free Trial