01 Blog
Notes on Google Ads, Meta Ads,
and tracking.
Short essays. No marketing-blog filler. If a post can be one sentence, it is one sentence.
02 All posts
-
What a Home Brand's 21x ROAS Actually Hides
Two home and furniture brands I run report 21x ROAS on Google Ads. A Shopping campaign that is 18% of the spend produces 52% of the revenue. Here is why the blended number lies.
-
The inbox is a catalog surface, and most home brands waste it with a stock template
I built 5 Klaviyo flows and 21 hero emails on 7 custom room scenes for a $3,000-AOV furniture brand. At that price, the abandoned-checkout email is the cheapest revenue you own.
-
One hero shot loses the sale: the four product angles every furniture PDP needs
A single 3/4 hero shot leaves a furniture buyer guessing on depth, edge profile, and joinery. Here are the four white-background angles a PDP needs, and why the set is per-product.
-
The $30K Shopify rebuild you probably don't need
An agency quoted a home brand $30K and 12 weeks to rebuild its Shopify store. A facelift on the existing theme got most of the result. Here's the line.
-
How I audit a Shopify storefront fast without it getting shallow
A storefront audit run fast is usually a storefront audit run shallow. It does not have to be. The method: six domain audits in parallel, one operator judgment pass, and a verification pass, because the fast tools lie by omission.
-
Your AI Agent Doesn't Need a Brain
Every few months a new word says your AI setup is behind. Right now the word is memory. Here is an operator's read on the agent-brain hype, and the plain-files tool I built instead of buying one.
-
The content engine behind a Shopify home brand's blog (and the rule that blocks half its own ideas)
I built a Shopify home brand a nine-agent content engine: keyword research, outlining, catalog scouting, drafting, a two-layer voice gate, schema. The rule that matters most is the one that refuses to publish any post that does not link a real product.
-
Nine GTM Tags in 90 Minutes (the build I used to bill $2K for)
Ninety minutes, nine GTM entities, one orphan cleaned up. The tracking-stack build I used to bill clients $2K for, run with API tooling on my own container.
-
I paused all paid media in one state for 21 days. The incremental lift was 38%, not the 92% the attribution report claimed.
Attribution reports measure correlation, not incrementality. A 21-day geo holdout is the cheapest way to find out which fraction of your paid-media revenue would have happened anyway. The protocol I run quarterly on every $10M+ home brand.
-
The 4 numbers I put in a $20M home brand's next board deck on paid (and the 3 numbers I cut)
Your board does not need eleven paid-media KPIs. It needs the four that map to decisions and the discipline to cut the seven that map to nothing. The memo I send to internal CMOs the week before the meeting.
-
New-customer CAC $127. First-order margin $95. The cohort payback curve that tells me whether to scale.
Blended CAC hides the cash math. A real CAC payback curve, measured weekly on the new-customer cohort, is the only number that tells a $5M+ Shopify home brand whether the next budget increase will fund growth or fund a cash crunch.
-
Your catalog photo budget is the CVR bottleneck (the 2026 math on lifestyle photography for Shopify home brands)
A $40K traditional photoshoot to refresh a 150-SKU furniture catalog used to be the only option. In 2026, modern lifestyle pipelines hit 99% product fidelity for 5% of the cost and 10% of the timeline. The math is the differentiator, not the imagery.
-
The CLOSE Audit: the 5-pass lead-quality walkthrough I run before I touch a service-business account (2026 edition)
Smart Bidding finds you more of whatever signal you feed it. Most service businesses feed it raw form-fills and wonder why the leads are junk. The named audit I run before any campaign change on a service-business account.
-
Closed-won to Google Ads in 48 hours: the offline-conversion pipeline I run on every service-business account (2026 edition)
The exact webhook pipeline I wire from HubSpot to Google Ads + Meta CAPI so Smart Bidding optimizes against actual paying customers, not raw form-fills. Trigger, payload, code, and the failure modes.
-
Your ROAS is inflated by shipping and discounts (Smart Bidding is optimizing for the wrong number)
Most Shopify Purchase events send gross revenue to Google Ads. Smart Bidding then bids harder on the orders with high shipping. Margin contribution drifts down for a year before anyone notices. The 4-step fix takes 10 minutes plus a 6-week rebalance.
-
Why I Run Six Performance Max Campaigns Instead of One
One Performance Max campaign is the default. For a mixed-catalog account at scale with a hyperlocal pocket, the default leaves money on the table. The geo × value-band matrix I run instead.
-
I Kept the Blog Every Senior Operator Quit
The senior-operator blog playbook collapsed in 2025. Plofker, Faris, Holiday, Aslam, Bandholz all pivoted off written essays. Here is why I am staying.
-
The Bing pixel that said YOUR_VALUE_HERE
One afternoon inside a six-month-old Shopify Stape stack. Two GA4 properties, four duplicate-loading channel scripts, a Meta CAPI token leaked in version history, and a Bing pixel firing placeholder text since November. This is the average inherited tracking setup.
-
The Click Text Trigger Trap (Why I Rebuilt My Own Tracking Last Week)
Most GTM setups fire conversions when someone clicks a button labeled 'Book a call.' Change the button copy and tracking dies, silently. Here's the audit and rebuild on my own site.
-
Free PDFs Without an Email Gate: How the Funnel Actually Works
If you're giving away a PDF freebie with no email capture, the funnel still works. It just runs on pixels and the document itself, not on email drips. Here's the mechanism.
-
I ran AI Max for two weeks against a manual campaign. The lead-quality delta.
A two-week head-to-head test, one service-business account. AI Max returned 41% more form fills and 73% fewer qualified leads. Here's the full breakdown.
-
The $32.99 order that reported as $148.95 (the Customer Lifecycle Value setting that inflates Google Ads revenue)
A Shopify client's $32.99 order showed up in Google Ads as $148.95. The dataLayer was clean. The cause was a Google Ads setting most agencies leave on by default.
-
The STACK Audit: the 5-layer pass I run before I touch a single bid (2026 edition)
An inherited Shopify tracking stack, $40K/mo through Google Ads, six months in, and seven things broken. The named audit I run on every account before I move a budget dollar.
-
1,247 'remarketing' clicks. 14 from actual past visitors. (The Optimized Targeting trap)
I audited a Google Display campaign labeled retargeting. 98.9% of the traffic was cold. The cause was one setting almost nobody checks before launch.
-
Max Clicks, 0 conversions: the bot-traffic pattern I see in 7 of 10 audits
An account I audited had zero conversions and a Max Clicks bid strategy. Microsoft Clarity replayed 5-second sessions with no scrolls and no interaction. Bots. The pattern is everywhere.
-
The five reasons Google Ads throws 'No recent enhanced conversions' (and the one that actually matters)
The yellow 'No recent enhanced conversions' alert in Google Ads has five common causes. Four are noise. One quietly costs you bidding signal for months.
-
The Operator's Checklist for Spotting AI in Your Own Writing
If you write with an LLM in the loop, your published copy probably has tells you can't see anymore. Here's the checklist I run before anything ships.
-
I switched a law firm off Max Clicks last quarter. Same spend, 72% qualified leads instead of 38%.
Smart Bidding optimizes against the signal you give it. Most service-business accounts give it the wrong one. The full rebuild that took qualified-lead share from 38% to 72% on the same $14K/mo media spend.
-
The Workflow That Lets Me Ship a Site in 24 Hours
Most senior operators are still typing at 60 words per minute. The bottleneck is the input, not the work. Here's the workflow that compresses a two-week build into a one-day build.
-
Why Performance Max Gets Credit for Shopping Conversions (And What to Do About It)
If Performance Max is getting credit for conversions that started with your Shopping campaigns, your data is not broken. Here's what's actually happening.
Want one of these on your account?
One strategy call. Direct. No account managers.
Thirty minutes on the phone. Bring the account, the goals, the story. Walk out with a clear set of next steps.