What can I say?

But then…

and…

…???

“The path of the righteous man is beset on all sides by the inequities of the selfish…”
– Nils
Daily emails to boost your Google Ads Performance
What can I say?

But then…

and…

…???

“The path of the righteous man is beset on all sides by the inequities of the selfish…”
– Nils
A follower on Reddit asked:
Hi Nils!
Got a client we’re running between $5K and $6K a month on Google Ads, and he’s looking for 15 to 20 good, qualified leads outta that spend.Before that August 17 change hit, we had this thing singing. Target CPA set at $300, campaign was budget limited, but we were pulling in 20 to 30 qualified leads a month, easy. Actual CPA was running about $220, leads were good quality, and the client was tickled pink.
Once the August 17 change came through, we went and brought that tCPA down to match the $220 where it’d actually been performing.
Ever since, we’ve been watching our average CPC creep up, and some of these search terms are pulling clicks at prices waaay higher than what they used to cost.
Last two weeks, we only scraped up 6 qualified leads total, and Google’s still spending that daily budget down to the penny.
Our best guess is them high-dollar clicks are the culprit here. You got any thoughts on how we straighten this out?
Below was my response.
Assuming you are already tracking qualified leads and mining your search terms for negatives, here’s what I would try:
The logic: almost all of your profitable clicks sit below that line, so the cap only clips the expensive tail where smart bidding is currently overpaying, without starving normal auctions.
Once you get back to 20 conversions per month, try decreasing the tCPA and increasing the bid limit in small steps of 10%-20% to see if you can get performance back to where it was.
Here’s the logic for that: after the initial learning phase and at a volume of 20-30 conversions per month, smart bidding gets significantly better at predicting the likelihood of conversion, so it can place higher CPC bids with a higher confidence that will still result in lower actual CPAs.
– Nils
PS: To catch a CPC spike like this in week one instead of week three, use a script that flags outlier search-term CPCs against averages. Use my Script Sensei to create the script for you –> https://tinyurl.com/ScriptSensei
My take on what happened:

So now the question becomes: how do we prevent those Junkpot clicks?
That’s a topic for tomorrow’s edition…
– Nils

And yet… sometimes it does make a lot of sense to know if you should.
For each of your Google Ads accounts, do you know (by heart) which gender performs best?
I don’t, but this script keeps me in the know:
https://nilsrooijmans.com/google-ads-script-gender-bid-adjustment-suggestions/
And yes, we can still create different campaigns/ad groups (and thus different targets and creatives) for different Genders.
– Nils
PS: Want to learn how to create scripts that suggest when to segment campaigns or ad groups? Join me for my “Advanced Google Ads Scripting & AI” workshop at SMX Advanced Berlin on October 1. Use coupon Rooijmans15 for a 15% discount. Here’s the link –> https://smxadvanced.eu/deep-dives/
Evidence – proof that a belief is true or false
Courage – the ability to act despite fear
Daring – the willingness to take bold risks
Initiative – the ability to initiate things independently
Here’s the thing: evidence is wonderful, but you don’t need it to test new things.
Courage, daring, or initiative are enough.
Always Be Testing.
– Nils
PS: Here’s an idea for you to test today: enable search term matching in an AI Max campaign experiment of your broad match campaign. Turn off Final URL Expansion and Text Customization to keep it real.
Two weeks ago, I was in Boston for my talk at SMX Advanced.
(The slides are available here: https://nilsrooijmans.com/AI-Agents-to-Boost-PPC-Productivity-Boston-2026.pdf)
One of the members in the audience asked me an unrelated but interesting question:
“What settings do you immediately change when taking over an account?”
Here’s what I responded with:
What settings do you immediately change?
– Nils
PS: My strategy with respect to search partners is somewhat more complicated. I enable them for mature campaigns and then use a script to monitor the performance of Search partners versus the Google network. See here: https://nilsrooijmans.com/google-ads-script-search-partner-alerts/
PPS: Are you in Amsterdam this Thursday? Join us for the SEA Borrel at Café Kobalt. Beer, wine, PPC nerds, and thanks to Swydo, no wallet required. Non-Dutch PPC pros are very welcome too. Sign up here: https://luma.com/5fmizpk7
Here’s a question for you: what do you do with people on your email unsubscribe list?
Exclude them from your campaigns to reduce ad spend?
Create a separate campaign that only targets that list?
Something else?
Please do share your experience; I love to learn.
– Nils
PS: Are you in Amsterdam this Thursday? Join us for the SEA Borrel at Café Kobalt. Beer, wine, PPC nerds, and thanks to Swydo, no wallet required. Non-Dutch PPC pros are very welcome too. Sign up here: https://luma.com/5fmizpk7
Catch up with fellow PPC professionals. Over a beer, a glass of wine, or something soft.
Who wouldn’t want that?!
That’s what we thought too. So this Thursday, June 18th, we’re hosting another SEA / PPC Drinks meetup!
What:
A simple, informal get-together to network with other SEA/PPC specialists. And thanks to our sponsor Swydo, you can leave your wallet at home.
Who it’s for:
All SEA specialists in the Netherlands. Agency-side, freelancers, in-house advertisers, newbies, veterans, and yes, non-Dutch PPC pros are very welcome too.
Where:
Café Kobalt in Amsterdam, right by the canal and close to Central Station. It’s about a 5-minute walk.
When:
Thursday, June 18, 17:00–20:00
Sign up here:
https://luma.com/5fmizpk7
See you Thursday?
– Nils & Wijnand
I just landed in Boston for my speaking gig at SMX Advanced.
(Here’s a link to it: https://searchengineland.com/smx/advanced/agenda?sessId=3372)
To get to Boston, I had to prove who I was at least six times.
Done. Finally.
If there had been a mismatch, I wouldn’t be in Boston right now.
One of my clients recently ran into the Google version of the same problem.
Google Merchant Center couldn’t confidently match the business owner to the business information in the account.
And then, without a single warning…
SUSPENSION.
What’s worse is that we didn’t even get an email notification of the suspension.
AND the GMC interface didn’t show any issue at all, for three days!
But all our Shopping ads had stopped showing. >80% decrease in clicks and revenue.
It was only because of an email from Microsoft (!) telling us, “Your Microsoft Merchant Center import has failed,” that we knew something was wrong with GMC.
Still… the GMC interface showed no issues at all.
Only after three days, we got the email: “Your products cannot be displayed to customers. Google found an issue with your account that requires your attention: Misrepresentation.”
And then, three (!) more days to get a support rep to finally tell us what is wrong. They said, “Our investigation shows the account is suspended specifically due to incomplete identity verification.”
Here’s the thing: You need to make sure Google’s (AI) systems can easily verify who owns the business before they decide to check.
Three things I’d do today:
1. Make every business detail match exactly.
The legal business name, address, phone number, Merchant Center details, Google Ads billing profile, website footer, and company registration documents should all tell the same story.
2. Add trust signals to your website.
3. Make it painfully obvious you’re a real business.
Contact page.
Address.
Phone number.
Refund policy.
Shipping policy.
Terms and Privacy pages.
Think of it like airport security. If your passport, boarding pass, and visa all match, you walk through. If they don’t, you’re having a very different conversation.
Don’t wait for Google to start asking questions.
– Nils
Last month, I was invited to join Ruben Runneboom for Taskforce Talks.
Ruben and I talked about automated rules, scripts, AI, agents, and how all these things have their place in modern-day PPC. Here’s a link to a recording of the event: https://www.youtube.com/watch?v=Z5f5ioR43m4
Top 10 talking points from the webinar (AI-generated):
Sharing is caring! If you enjoyed this episode, please consider sharing it with a few friends who might find it useful. Thanks!
– Nils
Last month, I sent out a newsletter asking you: “What AI + PPC question is on your mind right now?”
Many of the responses I got were in line with:
“Do you still use scripts now that AI Agents have entered your agency?”
Yes. I still use (Google Ads) scripts. A lot.
My two main applications of scripts are:
First, Google Ads Scripts for monitoring and alerting.
Scripts are great for simple, repetitive tasks that do not require a lot of complex reasoning. Scripts are also great for automating rule-based logic based on numbers. They are also extremely reliable. They run, they do their thing, exactly the same thing and the same way every time.
Agents that use LLMs are much less reliable. LLMs are Large Language Models, not Large Number Models -> better with text than numbers. LLMs also tend to hallucinate and respond differently every time you ask them the same question. Therefore, agents make mistakes, just like us humans.
So, just like I use Google Ads scripts to monitor the changes made by humans, I use Google Ads scripts to monitor the changes made by agents. And I have them send me alerts when things go wrong.
Here are just a few of the many examples of the things I still like to automate via Google Ads Scripts (with no AI involved):
My second application of scripts is: software code as part of the agent skills.
These days, agents often have so-called “skills” to perform tasks. These skills consist of Markdown files (skill.MD) with natural-language instructions telling the agent how to approach a task. Example: “When adding new headlines, always spellcheck them before adding and make sure they respect the character limit.”
Skills can also have scripts. These are pieces of deterministic code that the agent can use to perform the task reliably. Example: “takes a list, returns per-headline pass/fail with reasons (over 30 chars, duplicate of headline #3, excessive punctuation, banned symbol, etc.). Pure deterministic check, no LLM needed.”
Without scripts, the agent skill would have to reinvent the deterministic parts on every run — e.g., re-deriving character-count checks, dedup logic, and API call structure from scratch in the model’s head. This is slower, more expensive, and far less reliable than simply executing code that already works.
So, yeah, scripts are here to stay.
Happy scripting!
– Nils
Ever heard of this one?
“Just increase your budget. Smart bidding needs more data.”
(Sigh.)
I recently landed a client who had been told exactly that. Not (!) by a Google rep, but by their previous agency.
“Spend more. Feed the machine. Let Google find better leads. Business will come.”
Sure.
The thing was, that “machine” was being fed garbage and configured the wrong way.
They were tracking form fills instead of SQLs and sales. They were running PMax with barely any signal quality. And the mobile landing page was leaking high-quality leads because the UX was clunky as hell.
So, the client did what clients do when advertising money just disappears:
they assumed Google Ads didn’t work for their business.
Luckily, word of mouth brought them my way.
The team and I took over.
First, we reduced budgets.
Then, we fixed the basics:
Two weeks later, the client opened his CRM report and sent us an email:
“So Google does work after all!?”
He noticed 17 new clients were attributable to Google Ads. And, at a CPA that was below his target.
Now, increasing the budget makes sense.
Scaling a broken setup doesn’t fix things; it just makes the leak bigger.
The actionable takeaway: before raising budgets, audit your clicks and conversions and ask: “Would I happily pay more to get more of this?”
If the answer is no, don’t scale.
Fix the damn thing first.
Nail it before you scale it.
– Nils
Building PPC AI agents might sound scary. I get it.
MCPs. APIs. Python scripts. Prompts. MD files. Skills. Hooks. YAML.
Sounds like a motorcycle engine exploded on your kitchen table.
But here’s the thing: the technology is NOT the hard part.
The tech is annoying, sure. However, Claude or ChatGPT can help you build most of it if you know what to ask. Even if you do not consider yourself a techie and have never touched code, it’s very doable.
The real work is EDUCATING the agent.
Because an AI agent is basically an intern with terrifying confidence.
It knows generic Google Ads stuff.
It does not know these:
That knowledge lives in your head. In your client onboarding documents. Your SOPs. Your scars. Your expensive mistakes.
So, the move is simple: before building agents, think about what you need to teach them. And document it.
Some examples:
That’s how you turn AI from a clever parrot into a useful PPC assistant.
Don’t just build agents.
Educate them.
– Nils
Did you know?
In Google Ads, you can hold ‘SHIFT’ and press ‘A’ to jump up to the “whole account” level while staying on the same view.
I like to use this shortcut when I am looking at search terms within one campaign, and then quickly want to check how a search term performs in the whole account.
Here’s a list of some more shortcuts to improve your PPC productivity:
https://support.google.com/google-ads/answer/7282037?hl=en
– Nils
Tomorrow, April 30 (Thursday), I have the pleasure of being interviewed by Ruben Runneboom at one of the Taskforce Talks.
Topic: “From Rules to Scripts to Agents: How to Build the Right Automation Layer for the Problem in Front of You”
When: Thursday, April 30, 15.00 CEST
Join us for this free live event via this link:
See you there?
– Nils
The great Matt Shenton invited me to join him on his Paid Search NYC Podcast to chat about scripts and AI for eCommerce.
WATCH NOW >>
https://www.youtube.com/watch?v=pZWKAzNRidQ
From the show notes:
We cover how to structure your accounts, where automation actually adds value, and how to combine scripts with AI to scale performance without scaling headcount.
Key insights:
Timestamps:
00:00 Scripts vs agents
00:31 Introduction
01:31 How Nils built a script-driven PPC agency
03:19 Why you do not need coding skills to use scripts
04:24 What the team actually does in a script-led agency
08:25 Why SOPs matter before AI
10:20 What Google Ads scripts actually are
12:54 E-commerce Google Ads automation examples
14:38 Profit-first conversion tracking
17:07 Using return-rate prediction in e-commerce
19:05 Feed optimisation and why Nils pushes back on Performance Max
22:07 The standard shopping gatekeeper structure
25:52 Exploration vs exploitation in Google Ads
27:11 Bidding strategy within the gatekeeper setup
29:18 Are scripts agentic?
32:01 Why the future is scripts + AI
33:31 Final thoughts
Sharing is caring! If you enjoyed this episode, please consider sharing it with a few friends who might find it useful. Thanks!
– Nils
Happy to announce: on May 14th, I’ll be speaking at SEM Stories in Edinburgh!
SESSION TITLE: Using AI agents to boost PPC Productivity and Profit
SESSION DESCRIPTION:
Everyone’s talking about AI agents. Very few are showing how to use them in ways that actually help advertisers make more money.
This session is about real-world use cases, not hype.
We’ll focus on the kinds of agents that can genuinely move the needle in PPC: spotting wasted spend, catching performance issues early, surfacing growth opportunities, improving ad copy, and taking repetitive analysis off your team’s plate.
Don’t just come for my session.
Have a look at the full lineup — the other speakers are bringing some seriously valuable topics to the table, and I’m looking forward to learning from them too:
https://www.semstories.com/#speakers

– Nils
Hey,
Over the next few weeks, I’ll be writing more about AI and PPC.
Not the hype.
Not the lazy “AI will replace us all” nonsense.
The practical stuff.
What is actually useful (and working today)?
What is dangerous?
What is overhyped?
What is dead wrong?
And where can AI genuinely make PPC work faster, better, or more profitable?
Here’s the thing: I want to make these emails useful for you, not just entertaining for me.
So hit reply and send me your questions.
Anything goes, such as:
– AI tools for PPC
– AI in the Google Ads platform
– LLM prompting
– The role of scripts in the era of agents
– What to learn
– What to ignore
– What to test
Big question, small question, messy question, skeptical question. All welcome.
If enough people ask the same thing, I’ll turn it into a full email.
So: what AI + PPC question is on your mind right now?
Just hit reply.
– Nils
PS: If you’ve already had more than enough of all the AI-related content out there, that’s also good to know. Please do share 🙂
Google Ads Editor can be a huge time-saver when managing Google Ads accounts. I cannot live without it and use it for many account editing tasks.
Copy-pasting Audiences between campaigns is one example that would take forever in the Google Ads UI. However, there’s a catch.
You would expect that the associated settings of an Audience would be copied, right? Not so.
Here’s the thing: when you copy an Audience with a targeting setting of ‘Observation’ and paste it into another campaign, the setting will automatically switch to ‘Targeting’ if that is your default campaign setting. See below:


As you know, adding an Audience to a campaign with the Targeting Setting set to ‘Targeting’ narrows the reach of your ads to the specific Audience. Not good, when you just want to “observe” the performance of the Audience and/or provide it as a signal to Google without dramatically impacting your reach!
To fix this copy-paste issue in Editor, click into the Campaign (and/or Ad group) and change the ‘Flexible reach’ setting:

I hope this helps!
– Nils
Last week, I joked about a new match type from Google: blind match.
The email got a lot of responses, including many questions about how I handle these searches.
“Is there a way, a script maybe, to get access to hidden search term data?“
Short answer: No. We cannot access the data that Google has intentionally hidden from us.
However, there are some ways to get a glimpse of what is most likely part of that hidden search term data.
1. Inside the Google Ads UI
a. I use Search Term Insights on the Insights page. It groups hidden queries into themes, so even when Google withholds the actual terms, you still get category-level visibility into where that mystery spend is going.
b. I use Keyword Planner. Google’s ‘keyword ideas’ give me information about searches Google will most likely match to my existing keywords.
2. Microsoft Ads
By targeting the same keywords in MS Ads and looking at the search term data in MS Ads, I get to see some more search terms that are not in Google’s SQRs.
3. Third-party keyword research tools
Tools like Ubersuggest, Keywords Everywhere, or my favorite Keyword Researcher provide a ton of data on long-tail searches with low search volume (the ones hidden from us in Google Ads).

I use the information from the sources above to update my negative keywords, ad copy, assets, and landing page content.
I hope this helps!
– Nils