Skip to main content

Ecommerce analytics consultant: we start with "65 vs 34"

Updated

TL;DR: On our own dried-peach store, Meta reported 65 purchases. Our order database showed 34 paid orders that came from Meta. Ad decisions made on the first number would have been wrong by almost double. We set up GA4, Google Tag Manager and the Meta Conversions API (CAPI) so the numbers you make decisions on match the money in your account, and we reconcile them against your real orders until they do.

What we do

Reconcile platform numbers with real orders

We put Meta, Google Ads and GA4 next to the paid orders in your store backend, by source and by date, and find out how far apart they are and why.

GA4 and Google Tag Manager setup or cleanup

Standard ecommerce events through the whole funnel: product view, add to cart, checkout start, purchase. We also make sure tags only fire where they should.

Server-side Meta Conversions API

Purchases sent from your server when payment is confirmed, with deduplication against the browser pixel. If your platform has CAPI built in, we verify it rather than trust it.

Order-level attribution that survives

Each order stores its UTM parameters and Meta click ID at the moment it's created, so you can answer "which ad sold this?" months later.

A full log of every server-side event

Every conversion we send server-side is stored with its full payload. If you change pixels or ad accounts later, the history can be replayed instead of lost.

Funnel monitoring

Clear counts for each step, so a broken checkout shows up as a number in days, not as a vague drop in sales weeks later.

Proof from our own stores

All three stores are ours and sell in Taiwan. Figures were pulled on 2026-10-07 from our order database and our daily ad-spend sync.

Taolilife: 65 reported, 34 real

SourcePurchases / ordersRevenue
Meta Ads reported, Aug 15 – Sep 27, 202665 purchases—
Paid orders with utm_source=facebook29NT$27,340
Paid orders with only a Meta click ID (no UTM)5NT$4,210
Paid orders attributed to Meta34NT$31,550
Paid orders with no attribution4NT$3,729

At the NT$31 to US$1 rate we use internally, Meta spend of US$1,309.76 is about NT$40,603. Using real orders, Meta ROAS comes to about 0.78 (31,550 ÷ 40,603). Using Meta's 65 purchases multiplied by our average order of about NT$928, it would look like about 1.49. One number says scale up. The other says stop and find the problem.

Our setup on that store: GTM, GA4, the Meta pixel, and server-side CAPI where the Purchase event fires only from the payment gateway's confirmation webhook, never from the browser. So the gap wasn't browser-plus-server double counting. It's mostly two systems answering different questions. Our order database asks where an order came from. Meta asks whether its ads were involved. Note those 5 orders that had no UTM: without the Meta click ID stored on the order, we wouldn't have been able to attribute them at all. Full write-up: why Meta reports more purchases than you received.

Mistakes we made, so you don't repeat them

  • Tracking on pages that shouldn't have it. Our admin panel and in-app LINE pages also loaded GTM, which polluted GA4 data until we removed it.
  • No UTM on early orders. Our first real order didn't store its UTM parameters, so we couldn't tell which ad creative had sold it. Every order now stores them at creation.
  • A broken checkout that only the funnel showed. After switching payment gateways, the convenience-store pickup map stopped working. From Aug 31 to Sep 4 there were 21 checkout starts and zero orders. The funnel numbers are what made it visible.
  • A test with no funnel. We ran ChatGPT ads for three days (US$171.98, 207 clicks, 0 orders) without on-site funnel data for that channel, so we can't say where those visitors dropped off. Compare Google Demand Gen on the same store, where we could see 497 product views → 9 add-to-carts → 14 checkout starts → 0 purchases.

Platforms we support

Our own stores are custom builds. For hosted platforms, this table comes from each platform's official documentation as of 2026-10-07, not from our own hands-on work on them. "Built-in CAPI" only means the platform sends events. It doesn't mean the data is right, so we check deduplication and reconcile against orders in the first week either way.

PlatformGA4GTMMeta CAPI built in
Custom buildAnythingAnythingWe build it server-side
WordPress + WooCommerceYesYesYes, via Meta's official plugin
ShopifyYes (Google & YouTube app)Only inside a Custom Pixel sandbox; Shopify doesn't support it and Tag Assistant can't detect it (Shopify's guide)Yes (Facebook & Instagram app)
SHOPLINE (Taiwan)YesYes, code pre-installedYes, turns on automatically with Facebook Business Extension (SHOPLINE help); Pixel can only be installed that way
CYBERBIZ (Taiwan)YesYesYes, through Facebook Business Extension
EasyStoreYesNot on the official pageYes, turns on when Facebook is connected
WACA (Taiwan)YesYesYes, listed in features
WixYesNot documentedYes, native integration (Wix help)
meepShop, SHOPSTORE (Taiwan)YesYesNot on their feature lists; we'd add server-side tracking separately, with its own hosting cost
91APP (Taiwan)Not publicly documentedNot publicly documentedNot publicly documented

What we won't promise

  • No promise that platform numbers will match your orders exactly. Attribution models differ by design. We make the gap visible and stable so you can make decisions with it.
  • No guaranteed ROAS. Good tracking shows you the truth, and sometimes the truth is a loss. Ours was.
  • No changes your platform doesn't allow. If a platform's built-in CAPI can't be edited, we tell you what that limits and whether a server-side add-on is worth it.
  • No legal advice on privacy compliance. We'll set up tracking carefully; your lawyer decides what your privacy policy and consent banner need to say.

FAQ

What does an ecommerce analytics consultant do?

For us: make sure GA4, GTM and Meta CAPI are installed correctly, make sure every order records where it came from, and reconcile what ad platforms report against what your store actually received.

Why does Meta report more purchases than my store has?

Meta counts purchases linked to an ad view or click within its attribution window; your store records one source per order. Duplicated pixel and server events can make it worse. On our store the gap was 65 vs 34.

Do I need the Conversions API if I already have the Meta pixel?

The pixel runs in the shopper's browser, where ad blockers, in-app browsers and privacy settings can stop it. Server-side CAPI is less exposed to that. If you run both, they need a shared event ID so Meta counts each purchase once.

My platform says CAPI is built in. Is that enough?

It's a start. Built-in CAPI usually can't be customized, and "sending events" isn't the same as "sending the right events." We check deduplication and match quality in Meta Events Manager and reconcile against orders.

Can you set up GTM on Shopify?

Only inside Shopify's Custom Pixel sandbox, which Shopify doesn't support and Google's Tag Assistant can't detect. The usual web-container setup doesn't apply, so we build tracking around that.

What should each order store for attribution?

At least the UTM source and campaign, plus the Meta click ID (fbc or fbclid), written when the order is created. Five of our paid orders had no UTM and were only identifiable through the click ID.

Do you only work with stores in Taiwan?

No. Our stores are in Taiwan, but GA4, GTM and Meta CAPI work the same way everywhere.

How is pricing set?

Each engagement is quoted on your setup. Tell us your platform, which tags you already have and where the numbers don't add up.

Do your ad numbers match your orders?

Send us your platform and a rough sense of the gap on Telegram. We'll start by putting your ad platform's purchases next to your paid orders for the same period.

Related: All ecommerce services · SEO consultant · PPC consultant · Our three stores