Skip to content

Herbal tea and supplements (DTC)Client work

One Product ID Everywhere, and 29% → 80% Conversion Coverage

How a Greek herbal-tea brand carried one Shopify variant ID across Merchant Center, GA4/Ads and Meta and lifted GA4 order coverage from 29% to 80%.

The brief

Context

A Greek herbal-tea and supplements brand on Shopify, selling through catalogue and Shopping ads. I was brought in in May 2026 to fix a product-identity problem, followed by Google tag gateway work; in June the brand migrated to Fixel Pixel.

The two problems arrived as separate requests — catalogue ads that did not match products, and analytics that saw only a fraction of real sales. The catalogue side traced back to one store describing the same product with a different ID in every platform.

Sounds familiar?

Symptoms

The situation Herbal tea and supplements (DTC)
Tick what applies to you

Tick the lines that describe your case.

Describe my task

The investigation

Diagnosis

I set a single ground truth: every real non-test order in Shopify, pulled from the Admin API, independent of any tracking. I then read “tracked” straight back from the GA4 Data API, not from an estimate. Coverage is tracked orders divided by real orders, aggregated per phase.

  1. Before migration (1–25 Jun): 290 real orders, 84 tracked → 29%.

  2. After migration (26 Jun–12 Jul): 219 real orders, 176 tracked → 80%.

  3. Server-side capture (26 Jun–13 Jul): 188 of 222 orders → 85%, against 39 of 222 (18%) for a browser pixel alone.

Traffic was steady across the whole period, so the change is tracking quality, not demand.

Handover

What I built

Delivery noteDelivered Jul 2026

  1. One product identity. The Shopify variant ID became the master, carried through the Merchant Center offer id, the GA4 and Google Ads item_id, and the Meta catalogue and pixel content_ids.
  2. A controlled Merchant Center feed. The Shopify-generated ID format was replaced by a feed using the variant ID as g:id and the product ID as g:item_group_id, plus a sweep for archived, draft and duplicate products.
  3. Google ecommerce through the dataLayer. view_item, add_to_cart, begin_checkout and the rest now carry the variant ID, so Shopping and dynamic remarketing use the same identity the feed does.
  4. A server-side leg. After the migration to Fixel Pixel, orders are captured server-to-server from Shopify webhooks, which a browser pixel cannot offer, and from 10 July Google Ads received server-side conversions matched to the originating click.
  5. A before-and-after report measured against real orders, with the cut-over gap and the rework window shown rather than hidden.

Before → after

Results

Client work Done for real clients. Client details are anonymised.

  • GA4 conversion coverage, measured against real Shopify orders

    Jul 2026

    29% to 80%

    Before
    29% (84 of 290 orders, 1–25 Jun)
    After
    80% (176 of 219 orders, 26 Jun–12 Jul)
  • Server-side order capture (ad-blocker and consent proof)

    Jul 2026

    85%

    Before
    browser pixel only (18%)
    After
    85% (188 of 222 orders)
  • Product identity across platforms

    May 2026

    Before
    different IDs in Merchant Center, GA4/Ads and Meta
    After
    Shopify variant ID as master everywhere
The full results table
What changedBeforeAfterRead on
GA4 conversion coverage vs real orders29% (84 of 290)80% (176 of 219)Jul 2026
Server-side order capturebrowser pixel only, 18%85% (188 of 222)Jul 2026
Product identitydifferent per platformShopify variant ID everywhereMay 2026
Server-side Google Ads conversionsnonelive from 10 Jul, 12 uploads in the first four daysJul 2026
Rated 5 out of 5 on Upwork.

He’s probably the best freelancer I’ve worked with. He’s super responsive, incredibly knowledgeable, and always finds a solution to every problem.

Eleftheria K. Upwork · 2026

Notes on the numbers

Two honest notes from the report itself. The migration was not clean: there was a one-day tracking gap on 26 June, the cut-over day, and a short window through about 7 July when old and new tracking briefly ran together and over-counted some days. Across the full after-period the totals still sum to 80%, so the period is not inflated. And GA4 finalises the most recent 24–48 hours, so the last days of any reading may still rise.

A note from Daniilbefore you decide

What this means for a similar business

If your catalogue ads do not match your products, the cause is often identity, not creative. One product ID, agreed across the feed, the pixel, analytics and the catalogue, fixes matching on every channel at once, and it is cheap to check: open one product and compare its ID in each platform.

The same discipline applies to measurement. Measure coverage against your own orders, not against a platform’s summary, and treat a migration’s noisy window as something to disclose rather than something to round away. And a browser pixel alone is a lossy path: on this store it saw 18% of orders, while server-side capture from the order webhook saw 85%.

— Daniil

Daniil Maximkin

Hi, I’m Daniil.

I work with you from defining the problem to implementation and handover. You talk to the person who does the work. I work in English and Russian.

Have a similar task?

Describe your task

The first answer is free, within one working day. Or write directly: next@taskfordaniel.com