Direct-to-consumer pet foodGrowth story
A forensic audit found the leak, and the problem ads couldn’t fix.
A DTC pet-food brand was running Google and Meta campaigns on tracking that counted video views as purchases. We rebuilt the measurement, audited the account line by line, shipped a persona landing system whose click-throughs became the store’s best-converting traffic, and showed the client the real constraint: retention, not ads.
- Engagement
- Client
- Client
- A DTC pet-food brandNamed only with written permission
- Sector
- Direct-to-consumer pet food
- Story
- Growth
The number
The one figure we’ll stand behind.
Open the receipt for where it came from, how it was counted and when we last checked it. How we count
$1,094
a month of ad spend leaking, found in a line-by-line account audit
A Demand Gen campaign was buying orders at $206 CPA against a $35 target.
receipt
SOURCE · Google Ads account data for a DTC pet-food brand, delivered as a written audit
METHOD · Campaign-level cost against real purchase conversions over a 30-day window, as reported in the written account audit.
VERIFIED · 2026-09
CLASS · platform account
✓ every number on this site opens its receipt
CLAIM · spend-leak
How we count01 · Where they started
Real spend, unreliable numbers
The brand sells direct on Shopify, with Google and Meta campaigns managed by an incumbent agency. The spend was real. The numbers were not: duplicate conversion actions, video views counted as purchases, and a GA4 property whose channel grouping put traffic in the wrong buckets.
02 · The wall
You can’t optimize what you can’t count
Every automated bidding decision was learning from conversions that were not purchases, and every report built on them flattered the account. Before anyone could argue about budgets, creative or audiences, the account needed one true definition of a sale.
03 · What we built
What we built.
Named systems, described by what they do, one part at a time.
Part 1: Measurement rebuilt around one real sale
We rebuilt and published the Google Tag Manager container with custom events and a landing-variant dimension, corrected GA4’s channel grouping, added custom dimensions, and demoted every duplicate or miscounted conversion action so exactly one purchase action drives bidding. The rebuilt container went live and was verified the same evening.
- One primary purchase conversion; views no longer count as sales
- GTM rebuilt, published and verified in one evening
- Eight GA4 custom dimensions for landing and campaign analysis
Part 2: A forensic account audit, line by line
The audit was delivered as a written, client-ready assessment. It found a Demand Gen campaign buying orders at several times the target cost per acquisition, branded searches being bought at Performance Max prices, and ad copy pointing shoppers at the wrong product. Daily snapshots of Google and Meta campaign metrics now give every future audit a baseline.
- Wasted spend quantified campaign by campaign
- Brand demand separated from prospecting
- Every ad checked against the product it advertises
Part 3: A persona landing system for paid traffic
Four message variants run from one configuration, each written for an audience segment the ads already target. An ad-mode flag strips header navigation for paid visitors so clicks can’t wander away from the offer, a sticky mobile CTA serves an audience that is mostly on phones, and comparison, guide and FAQ sections answer objections before checkout. It runs on Cloud Run under the same tag container as the store.
- Variant routing from a single config, with legacy URLs redirected
- Ad-mode navigation stripping for paid clicks
- A per-variant analytics dimension, so every page is judged on purchases
Part 4: Attribution that survives the domain hop
The landing pages live on their own subdomain and checkout lives on Shopify, which is exactly where attribution usually dies. Every ad click ID and UTM is passed into store deep links, one tag container spans both domains so the journey stays in a single GA4 property, and Meta Pixel custom events make landing behavior usable for audiences and optimization without a redeploy.
- Google, Meta, Microsoft and TikTok click IDs preserved
- One GA4 property across landing pages and store
- Meta custom events ready for audience building
Part 5: The finding ads can’t fix
Joining ad-platform, GA4, server-log and order data exposed the real constraint: too few customers come back for a second order, so paid acquisition cannot pay back on a single purchase. Better bidding could not change that. We said so plainly: the next lever is retention, not bids.
04 · Screens withheld
A real client, so its screens stay private too.
This client is named only with written permission, and a screenshot would name it for us. The mockup above shows the shape of the system, never its data. The figures on this page are real, and every one opens to its receipt.
05 · More receipts
The supporting figures.
Same rule as the headline number: each one opens to its source, its method and the month we checked it.
6.7% vs 1.7%
purchase rate: shoppers who clicked through from the landing pages vs the store-wide average
Persona landing pages with ad-mode navigation, and every click ID carried into the store.
receipt
SOURCE · Store analytics, order data and landing-page server logs for a DTC pet-food brand
METHOD · Store sessions that entered from the landing pages, and their purchases, over a 30-day window, compared with the store-wide purchase rate for the same window. It counts shoppers who clicked through to the store, not every landing-page visit.
VERIFIED · 2026-09
CLASS · platform account
✓ every number on this site opens its receipt
CLAIM · landing-lift
How we count4 → 1
actions Google Ads was counting as a sale, cut to the one real store purchase
Two were video-engagement actions and one was a duplicate purchase tag that could never fire.
receipt
SOURCE · Google Ads conversion settings for a DTC pet-food brand, before and after (account change log)
METHOD · Primary conversion actions in the account before and after the change, confirmed by re-reading the account’s conversion settings.
VERIFIED · 2026-09
CLASS · platform account
✓ every number on this site opens its receipt
CLAIM · conversion-actions
How we count5%
of customers ordered again, counting everyone at least 90 days past a first order: the blocker ads could not fix
At that reorder rate, paid acquisition cannot pay back on a single order, so we said so.
receipt
SOURCE · Full store order history for a DTC pet-food brand
METHOD · Customers whose first order is at least 90 days old, and the share of them who have placed a second order.
VERIFIED · 2026-09
CLASS · platform account
✓ every number on this site opens its receipt
CLAIM · reorder-diagnosis
How we count12
tracking parameters carried across the landing-to-store hop
Every ad click ID (gclid, wbraid, gbraid, fbclid, msclkid, ttclid) plus UTMs, passed into store deep links so attribution survives the domain change.
receipt
SOURCE · Landing-system repository for a DTC pet-food brand
METHOD · Parameter passthrough list in the landing system’s link builder.
VERIFIED · 2026-09
CLASS · repository
✓ every number on this site opens its receipt
CLAIM · tracking-params
How we count