Lab notes
What we tested, broke and learned.
Short engineering notes from inside real accounts: A/B tests with actual numbers, reactions to platform changes, and the occasional free snippet. No content-calendar filler — we publish when we have something to say.
A/B test
May 2026
We pinned headlines in our RSAs. Ad Strength hated it. Revenue didn't.
Google's Ad Strength rating punishes pinned headlines, and the official guidance says to let the system mix assets freely. We tested it properly on an e-commerce account: identical RSAs, one with the value proposition pinned to position 1, one fully unpinned, rotated against the same queries for six weeks.
The pinned variant dropped from "Excellent" to "Average" Ad Strength the moment we saved it — and went on to deliver a meaningfully higher conversion rate, because the one message that actually converts was guaranteed to show. The unpinned variant won on CTR; clicks aren't the business model.
Verdict: Ad Strength is advice, not a performance metric. When one message demonstrably carries your offer, pin it and accept the scolding. Test on your own account — this will not be true for everyone.
Platform update
April 2026
PMax channel reporting confirmed what we suspected about "performance".
Now that Performance Max breaks out spend and conversions by channel, we pulled the distribution across the e-commerce accounts we manage. The pattern was consistent: a large share of reported PMax conversions concentrated on Shopping and brand-adjacent Search — the demand that was largely coming anyway — while Display and video placements consumed budget with little incremental return.
This is exactly why we run brand exclusions and segment asset groups by margin instead of trusting the blended number. A 6x blended ROAS that's secretly 11x on Shopping and 0.8x on Display isn't a 6x campaign — it's two campaigns wearing a trench coat.
What we're doing about it: channel-level distribution is now a standing section in every monthly client report, and a budget conversation whenever Display share creeps past our threshold.
API & scripts
March 2026
Free snippet: pull your search terms with GAQL, then n-gram them.
Most wasted spend hides in patterns, not individual queries. Step one is getting the raw terms out of the API — this GAQL query against search_term_view is all you need:
SELECT search_term_view.search_term,
metrics.cost_micros,
metrics.conversions,
metrics.conversions_value
FROM search_term_view
WHERE segments.date DURING LAST_90_DAYS
ORDER BY metrics.cost_micros DESC
-- export, then split terms into 1/2/3-grams and aggregate cost
-- vs. conversions per n-gram. The expensive zero-conversion
-- n-grams are your negative keyword shortlist.
Aggregate cost and conversions per n-gram and sort by cost where conversions are zero: you'll find recurring words ("free", "manual", "jobs", a competitor name) that individually look harmless but collectively bleed budget. This is the manual version of what our Semantic Negatives Engine does with embeddings — and for accounts under a few hundred thousand terms, the manual version is plenty.
Why we give this away: if a snippet saves you money, you'll remember who handed it to you.
Measurement
February 2026
Your European conversions didn't drop. Your measurement changed.
A pattern we keep seeing in audits: a business implements Consent Mode v2 properly, watches reported conversions dip, and concludes the campaigns broke. What actually happened: users who decline consent are no longer directly observed, and Google fills part of the gap with modeled conversions — which take time to ramp and never fully replace the observed count.
The campaigns are usually fine. The baseline moved. Comparing post-consent numbers to a pre-consent period is comparing two different measurement systems and calling the difference "performance".
The fix: annotate the implementation date, rebaseline from there, and check revenue in your back office against the same period — if the bank account didn't dip, your marketing didn't either. This is exactly the gap True-ROAS exists to close.