The blog
Practical. Specific. No fluff.
How we think about marketing systems, paid media, and getting found. Written to be used, not skimmed.
Paid Media
The serviceUTM Tracking, Done Properly
A practical guide to UTM tracking: the five parameters, casing rules, governance, common breakages, and how to audit the links you already have.
ReadA Weekly Search Terms and Negatives Workflow
A repeatable weekly workflow for Google Ads search terms: fast reviews, intent buckets, shared negative lists, broad match discipline, and a decision log.
ReadThe Paid Media Reporting Stack, Explained
The five layers of a paid media reporting stack, from raw platform exports to a narrative people actually read, and where AI fits in the middle.
ReadA Paid Media Audit Checklist You Can Run Yourself
A practical paid media audit checklist you can run yourself: account structure, search terms, negatives, tracking, pacing, naming, and attribution.
ReadIn-House vs Agency vs a Third Way to Run Paid Media
In-house, agency, or a third way. Fair trade-offs of each paid media model, and why owning the system matters more than who runs the ads day to day.
ReadHow to Think About Splitting Budget Across Google, Meta, and TikTok
How to split ad budget across Google, Meta, and TikTok using demand capture, measurement confidence, and creative supply instead of fixed percentages.
ReadA Creative Testing Rhythm That Compounds
A practical creative testing rhythm for paid media: hypothesis-driven tests, clear promotion and kill rules, and a learning log that compounds.
ReadThe Campaign Naming Convention Guide
How to name paid media campaigns so attribution survives: channel, geo, brand, and objective tokens, plus enforcement and migration without losing history.
ReadBudget Pacing Should Not Live in Someone's Head
Manual budget pacing breaks the moment someone gets busy. How automated pacing checks, alert thresholds, and month-end rules keep spend on track.
ReadMarketing Systems
The serviceWhy Nobody Reads Your Dashboard
Most marketing dashboards go unread. Here are the five failure modes that kill them, and how to build a report your team actually opens every week.
ReadMulti-Location Reporting Both Corporate and Locations Trust
How multi-location brands build marketing reporting that corporate and location managers both trust: naming, comparability, rollups, and auto summaries.
ReadGetting a Marketing Team to Actually Use AI
Most AI rollouts stall because teams train on tools, not tasks. How to drive real adoption with workflow training, review gates, and output measurement.
ReadMarketing Scorecards: Every Number Gets an Owner
How to build a marketing scorecard that runs itself: choosing metrics, assigning owners, the weekly 20-minute review, and what to do when a number goes red.
ReadA 20-Minute Marketing Operations Self-Audit
Twelve questions that reveal whether your marketing runs on a system or on memory. Grab a timer and find out where the operational layer is leaking.
ReadWhy Most Marketing Problems Are Not Marketing Problems
Most marketing problems trace back to the operational layer underneath: reporting, naming, attribution, automation. Fix the layer and results compound.
ReadAlerts That Act: Why Dashboards Wait and What to Build Instead
Dashboards wait for someone to look. Good alerts catch overspend and broken tracking on their own. How to design thresholds, ownership, and auto-actions.
ReadFixing Attribution Chaos Without Buying Another Tool
Ad platforms, analytics, and your CRM will never agree. Fix marketing attribution with naming discipline and one source of truth, not another tool.
ReadAutomated Marketing Reporting: Five Hours a Week to Five Minutes
How to automate marketing reporting: what to connect first, how the weekly narrative works, who reads what, and the failure modes that stall most teams.
ReadWhere AI Actually Belongs in a Marketing Team's Week
A practical map of where AI belongs in a marketing team's week: report narratives, search term triage, copy drafts, QA checks, and where it does not.
ReadWebsites & Search
The serviceWhat Is GEO? Generative Engine Optimization, Explained
Generative engine optimization, explained in plain terms. How AI assistants pick what to recommend, how GEO differs from SEO, and what to change.
ReadThe Website Tracking Setup Every Marketing Site Needs
The GA4 and GTM setup every marketing site actually needs. Conversion events, consent, call tracking, testing, and naming that stays readable.
ReadHow to Audit Your Website for Conversion (Before You Redesign)
A step-by-step website conversion audit you can run before paying for a redesign. Clarity, offers, friction, forms, speed, trust, and tracking.
ReadSchema Markup for Marketers
What schema markup is, which types matter for marketers, how to check what your site has, and why structured data counts more now that AI reads it.
ReadLocal SEO for Service Businesses: The Boring Work That Wins
The unglamorous local SEO work that actually wins for service businesses. Google Business Profile discipline, service pages, reviews, and tracking.
Readllms.txt: The Small File That Introduces Your Site to AI
What llms.txt is, what belongs in it, and how to write one that helps AI assistants understand your site. A practical guide with honest caveats.
ReadLanding Pages for Paid Media: Message Match or Waste
Why sending paid traffic to your homepage wastes budget, and how to build landing pages with message match, speed, clean forms, and per-page measurement.
ReadCore Web Vitals for Marketers: What Actually Matters
Core Web Vitals explained in plain language for marketers: what LCP, INP, and CLS measure, when speed actually moves conversion, and how to check for free.
ReadAn AI Discoverability Checklist for Your Website
A practical checklist for making your website readable to AI assistants: structured data, entity consistency, robots policy, plain answers, and llms.txt.
ReadThe operational letter
One useful idea, when we have one.
No schedule, no filler. When we write something worth your inbox, you get it. Unsubscribe any time.
You are in. Watch your inbox.
That did not go through. Check the email and try again.