Skip to content

Subscription supplements (DTC, health and wellness)Client work

67 Days of Zero Purchases in GA4, and Nobody Noticed

An audit of a UK subscription supplements brand: 67 days of zero GA4 purchases, renewals credited to 119-day-old clicks, and 44% of new orders untraceable.

The brief

Context

A UK supplements brand that sells on subscription. Seven-figure revenue, Shopify, with paid social and paid search running continuously. The buyer was the CFO, not the marketing team: he could not build a forecast he trusted because none of the numbers agreed with each other. I worked as the sole consultant with read-only access to the store’s platforms.

Sounds familiar?

What the client saw

The situation Subscription supplements (DTC, health and wellness)
Tick what applies to you

The first thing I checked was the one number a finance lead can verify in under a minute: open the analytics property and look at purchases for the last two months.

Tick the lines that describe your case.

Describe my task

The investigation

How I diagnosed it

I did not start from a theory. I built a set of reproducible evidence collectors — one per source (analytics, tag manager, ad platform, order data, and the storefront pixels loaded through a real browser) — that write only derived facts and never secrets. Every claim went into a finding register with the exact command to re-verify it, so each one could be checked without trusting me.

Then the specific checks:

  1. Query the analytics data directly for purchase events, by hostname, month by month.

  2. Read the store’s own orders (including each order’s cart attributes) from the platform API, and compare them with what each ad platform reported receiving.

  3. Split new orders from subscription renewals and measure the age of the ad click identifier on each.

  4. Walk the live funnel ad click → landing → product → cart → checkout with every event captured on the wire.

Findings

What I found

  1. Finding 01

    The analytics had been recording nothing, and no alert existed

    The property had not recorded a single purchase from the storefront since 8 June 2026 — not undercounting, zero. The store kept trading through all 67 days, and nothing in the stack raised a flag. The likely cause was a tracking migration in early June: paid search was carried across, the analytics sender was not.

  2. Finding 02

    Subscription renewals were being reported as ad-driven purchases

    Every renewal was sent to the ad platform as a purchase, each tagged with the click identifier from the customer’s original order. The median age of that identifier was 119 days on renewals versus 0 days on new orders — so the platform was crediting recurring revenue to clicks from months earlier, and the account was scaling spend on that signal.

  3. Finding 03

    Nearly half of new orders had no click identifier at all

    44% of new orders could not be tied to a paid click by any tool, because the identifier simply was not written onto the order. That puts a hard ceiling on what any attribution report can claim.

  4. Finding 04

    The platforms could not be added up

    The two ad platforms together claimed well over the store’s actual count of new orders, because they were describing the same orders several times. No configuration change will ever make those numbers converge; the fix is one source of truth underneath them.

Handover

What I delivered

Delivery noteDelivered Aug 2026

  1. A 29-page audit and a three-option rebuild proposal, written to be read by a finance person, not only by a marketer.
  2. A finding register of 47 claims, each with its artifact on disk and a re-verify command. The register deliberately keeps refuted and corrected claims visible, so the next person does not re-derive a dead end.
  3. A vendor-independent architecture answer: an event database the client owns, three delivery routes including a self-hosted route from code templates, and a product-analytics fit assessment. The answer did not depend on buying my product.
  4. Two free actions that did not depend on the deal: raise analytics data retention from 2 months to 14, and publish the dormant post-purchase survey.
  5. A correction against my own proposal when a technical assumption turned out wrong, and a challenge from the client to another claim accepted when he turned out to be right.

The rebuild did not go ahead. Access was revoked on 26 August 2026, one day after the architecture answers were delivered, and no implementation followed. The value of this engagement is the diagnosis and the evidence, not a build outcome.

Before → after

Results, with dates

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

  • GA4 purchases recorded from the storefront

    Aug 2026

    0 over 67 days

    Before
    0 over 67 days (from 8 June 2026)
    After
    likely cause documented, alerting specified
  • Median click age of the ad click identifier

    Aug 2026

    119 days vs 0 days

    119 days (subscription renewals) vs 0 days (new orders)

  • New orders carrying no ad click identifier

    Aug 2026

    44%

    After
    44%
  • Audit findings, each with a re-verify command

    Aug 2026

    47

    After
    47
The full results table
WhatValueDate
GA4 recorded zero purchases while the store traded67 days (from 8 June 2026)captured Aug 2026
Median click age, renewals vs new orders119 days vs 0 dayscaptured Aug 2026
New orders with no ad click identifier44%captured Aug 2026
Findings, each with a re-verify command47Aug 2026
Rated 5 out of 5 on Upwork.

He provided a fantastic audit with real insights and easy to understand terms for those of us who aren't as technical.

Soojee F. Upwork · 2018

A note from Daniilbefore you decide

What this means for similar businesses

If you sell on subscription, three failures hide easily behind a working dashboard: analytics that stops silently, renewals counted as new acquisitions, and orders you cannot trace to a click. None of them shows up as an outage. The monthly revenue line still moves, so everyone assumes the signal is fine.

The check is cheap and you can start it yourself: open the analytics property and confirm purchases are actually arriving; then open a handful of renewal orders and see whether the click identifier on them is old. If renewals and new orders look the same to the ad platform, you are bidding on your own existing customers. The measurement has to describe new customers, and it has to be reconciled against the store’s own orders — not against whichever platform is being generous that week.

— 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