For online stores

Every order. Attributed correctly.

Shopify and WooCommerce tracking that books the purchase server-side and rescues the campaign attribution even where classic pixels lose it: express checkouts, landing page funnels, Safari.

How many of your orders currently sit under “Direct”? Those are exactly the ones we bring back.

Shopify & WooCommerce
Express-checkout-proof
Refunds handled automatically
38% → 23%
unattributed orders —
after four weeks (D2C brand, UK/EU)
2,129
orders on a single day —
every one captured and delivered
1
event ID per order —
double counting technically ruled out
Attribution rescue

Where classic pixels lose the click ID, we bring it back.

Shop Pay and express checkouts, landing page funnels across several domains, Safari: that's exactly where pixel setups break the link between ad click and purchase — and the revenue ends up under “Direct” or “Referral”. uncoverflow links the purchase to the browsing journey server-side and, if needed, reconstructs the attribution from the order itself.

  • Cross-domain funnelsAd lander on your own domain, purchase in the store? The click ID travels across the domain boundary via the Google linker and the order data — so the purchase lands on the right campaign.
  • Express-checkout-proofEven when the buyer never sees the thank-you page (Shop Pay, Amazon Pay, app switch): the server webhook delivers — with the real order value, tax and payment method.
  • Refunds includedRefunds are sent back to the platforms automatically as counter-entries — so the revenue in your ad accounts stays honest. Gross or net, whichever you need.

Example: a store journey with express checkout

  1. Wed · 19:41
    Click on a Meta ad
    Landing page funnel on your own domain · click ID captured
  2. Wed · 19:42
    On to the store
    The click ID survives the domain switch — the visit stays ONE journey
  3. Wed · 19:48
    Purchase via Shop Pay · €38.50
    The thank-you page never loads — the browser is long closed
    Express checkout
  4. Wed · 19:48
    Server webhook books it
    Order including campaign attribution sent to Google & Meta
    purchase_completed ✓
Side by side

Why the browser is the wrong place to count revenue.

Classic pixel setup
  • The purchase only counts if the thank-you page loads in the browser
  • Express checkouts and app switches break the attribution
  • Ad blockers and declined consent cost purchases — silently
  • Refunds stay invisible — platform revenue reads too high
uncoverflow server-side tracking
  • Shopify/WooCommerce report every order server-to-server
  • The click ID survives domain switches and express checkouts
  • If needed, campaign attribution is reconstructed from the order
  • Refunds go back to the platforms automatically as counter-entries

How many of your orders currently sit under “Direct”? Let's find out.

Book a 30-min demo
Runs alongside your existing tracking · compare first, then decide
How it fits together

Three building blocks, one complete picture.

Each block captures something different — none replaces another. Together they give you the journey from the first click to the booked revenue.

1 · Purchase webhook

The conversion itself: orders and refunds server-to-server, with real values. Always works — independently of the browser.

2 · Web pixel / plugin

The path to the purchase: product views, carts, checkout steps, campaign parameters. On WordPress including first-party mode over your own domain — with no DNS work.

3 · Cart bridge

Links the two: the purchase webhook inherits the buyer's browsing identity. That turns “an order” into a complete journey from click to revenue.

Why the server webhook reaches orders the browser loses

  • Browser pixels get blocked or declinedAd blockers and a declined consent banner stop the purchase event from ever being sent.
  • Express checkouts never fire at allShop Pay, Amazon Pay, app switch: with no thank-you page loaded there is no browser event — the purchase simply doesn't exist in tracking.
  • The server webhook is fed directlyShopify and WooCommerce report the order server to server. No browser, no blocker, no consent gap in between.
From measurement to marketing

Audiences no pixel can build.

Because every order sits in your database with its purchase history, it automatically produces the segments platform audiences fail at — updated daily, only with marketing consent, self-cleaning.

Eleven segments, ready-built

Cart abandoners, checkout abandoners, top 20 % customers, win-back (no purchase for 60–180 days), full-price vs. coupon buyers, small buyers for upselling, refunders to exclude — plus product segments based on your assortment (“buys mint, but never fruit”).

Straight into Google Customer Match

The segments land in your Google Ads account as audience lists automatically — for remarketing, exclusions and Smart Bidding signals. Synced daily, 30-day self-cleaning: whoever is deleted disappears there too.

And into email marketing

The same data stream feeds Klaviyo, Brevo, CleverReach & co. — purchase events for flow triggering and segment lists for campaigns. One system that serves ads AND email, instead of maintaining two separate data silos.

On the call we show you how many cart abandoners and top customers are sitting in your last 90 days.

Book a 30-min demo
30 days running in parallel: €0 · runs alongside your existing tracking · cancellable monthly
More than the purchase

More signals for Smart Bidding — and nothing that gets lost.

A store produces far more usable truth than the order itself. uncoverflow turns that into signals Google can act on — and backs up the order in case something fails along the way.

Micro-conversions with real values

Product view, add to cart (price × quantity) and checkout start (cart value) run as secondary Google conversion actions with a value — enriched with the email hash of the same person. More match signals for Smart Bidding, without changing your bidding target.

New or returning customer — correctly

Derived from the first purchase per email address, not from the store account (a guest order is not a new customer). That keeps new-customer bidding in Performance Max and the new-customer share in your report accurate — instead of quietly counting “unknown” as returning.

Several stores, currencies, intermediate pages

Click IDs travel across store boundaries (UK store → EU store) and from ad landers into the store, instead of ending up as “direct”. Ad spend from foreign-currency accounts is converted into euros at the ECB daily rate — one ROAS across all stores.

Order safety net

If the webhook fails, a backfill pulls missing orders from the WooCommerce API every three hours. Shopify express purchases with no browser trace get their source back from Shopify's own order attribution. Rejected events wait encrypted in quarantine to be replayed.

Auditing the platforms

We don't just measure — we audit the platforms.

Your ad account reports a return you can't find on your bank statement — the most uncomfortable moment of the month. Because we hold both sides (the platform number AND the real order from your shop), we compare them automatically, every day.

Delivery

How many of the conversions we sent did the platform actually accept?

Value

The purchase value your ad account reports against the revenue your shop really booked.

Count

The reported number of purchases against your real orders — independent of currency.

Match

How much of what we delivered the platform was actually able to tie back to an ad click.

One case from operations: an ad account reported more than €9,000 in purchase value on a single day. The shop showed around €500 for the same day. Whenever a platform reports more revenue or more orders than your shop actually had, you get an alert — not at the end of the month.
New · Product ROAS

Google cost per product — against the orders your shop actually had.

Google Shopping and Performance Max show you cost and conversions per product — but only Google’s own count. uncoverflow puts next to it what your shop really sold of the same product. You see which products burn ad budget without ever selling, and which bestsellers run without a single Google click.

Product ROAS · sample view
Product ROAS3.4×revenue with Google click ÷ Google cost
All channels15.0×the same revenue across all channels
Cost without a sale€312on products without a single order
Hidden bestseller57 orderswithout a single Google click
ProductGoogle costGoogle conv.Orders Google / allROAS
Product A€4864138 / 964.9×
Product B€203180 / 3
Product C€000 / 57

Product B: Google counted 18 conversions — the shop had not a single order with a Google click for this product. Product C sells 57 times without any Google traffic: a hidden bestseller. No ad account shows either.

Reproduction of the dashboard view with sample data — the cases come from production, anonymised.
New · Purchase paths

The last click is not the whole story.

A customer clicks a Google ad and buys a week later through your newsletter. The ad account sees none of it, and the newsletter platform claims the sale entirely. uncoverflow knows every visit of the same person before the purchase — and shows which channels took part, not just the last one.

Assists & purchase paths · sample view
Multi-channel orders9%had more than one channel before buying
First contact → order7 daysmedian for multi-channel orders
Email closed44orders an email finished
Google Ads assists6orders prepared, not closed
Path (first → last contact)OrdersRevenueMedian
Google Ads → Google Ads7€2867 days
Google Ads → Email3€1378 days
Meta → Organic search2€10414 days

Per channel you see closes (last contact) and assists (involved, but not last). A channel with many assists and few closes prepares purchases — and is systematically undervalued by last-click dashboards.

Values from one shop in production, 30 days, anonymised. Counts visits of the same person with consent; attribution sent to Google stays unchanged.
Frequent questions

Answered briefly.

Does the purchase then count twice — browser and server?
No, that's technically ruled out: both paths carry the same event ID per order, and the server deduplicates. Your platform numbers also stay clean next to a legacy pixel running in parallel — Google and Meta deduplicate on that same ID.
What about my existing Shopify/GA4 tracking?
It simply stays on. uncoverflow runs alongside it and can create its own conversion actions as secondary at first — pure reporting, no influence on bidding. You only switch over once the numbers convince you.
Does this also work with landing page funnels in front of the store?
Yes — that's exactly what the attribution rescue is built for. The click ID travels across the domain switch (Google linker) and is additionally reconstructed from the order data. The purchase lands on the campaign, not under “Referral”.
How much work is the setup?
One snippet in your theme — on WordPress the plugin instead. Then connect the order webhook and let the conversion actions be created automatically. Typically around 30 minutes.
And if I want out again?
Cancellable monthly. You get your raw data as an export — events and journeys, no lock-in.
Keep reading

This goes with it.

Let's talk for 30 minutes.

We look at your store live and show you which orders slip through your current setup — using your real numbers.

Reply within 24 hours on business days · conversations in German or English · no lock-in, cancellable monthly