[PPC + AI] Building PPC Agents — where the real work is

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:

  • your account strategy
  • your client’s margins
  • your bidding philosophy
  • which products are sacred
  • which search terms look good but never close
  • why Google’s “recommendation” is often just a polite invoice

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:

  1. “For this client, know that the typical ICP tends to do research on Sunday and order on Monday.”
  2. “When CPA spikes 30% and conversion volume drops: check tracking, search terms, budget changes, landing pages, and recent client-side issues before touching bid strategies.” 
  3. “In this account, 2% of orders make up 60% of revenue. For that reason, we’ve normalised conversion values in conversion action ‘B’ so smart bidding won’t go crazy after each high value order.”

That’s how you turn AI from a clever parrot into a useful PPC assistant.

Don’t just build agents.

Educate them.

– Nils

What AI + PPC question are you wrestling with?

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 🙂

Avoid Audience copy-paste problems in Google Ads Editor

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

How to check if your site is eligible and active for Seller ratings

Ever wondered why some advertisers have these shiny stars sparkling next to their ads, and you don’t?

They are called Seller ratings, an ‘Account-level automated asset.’ You need good, fresh reviews and ratings from trusted sources to get Seller ratings to show.

Here’s more info on them (including requirements):
https://support.google.com/google-ads/answer/2375474?hl=en

And here’s how you can easily test your eligibility:
https://www.google.com/storepages?q={your_domain}&c={your_countrycode}

Example: 
https://www.google.com/storepages?q=passporta.com&c=NL

Go ahead, test your domain, it only takes one minute:
https://www.google.com/storepages?q={your_domain}&c={your_countrycode}

PRO TIP: Seller ratings are the only kind of ‘Account-level automated asset’ I recommend leaving enabled. Best to turn the rest off. More details here:
https://nilsrooijmans.com/note/a-hidden-setting-you-probably-want-to-change/

– Nils

AI demos need stronger disclaimers. Yes/No?

Me: 
“I’ve created these AI Agents for you. They don’t really understand the intent behind the user queries, but they help you add relevant keywords and negatives to your campaigns.” 

CEO of paid media agency: 
“Awesome! I’ve fired my entire PPC staff. How quickly can it onboard new clients and do our monthly reporting meetings?”

– Nils

[AMA] “How do you add promotions to your text ads?”

A friend-of-the-list asks:

“I have a gardening client that runs Easter promotions. Last year, I made the mistake of changing headlines in my RSAs during Easter. 

It was a ton of work and it took Google hours to get the ads reviewed, which obviously cost a lot of impressions.

How do you add promotions to your text ads?”

There are multiple ways to skin a cat, but I like to use Headline and Description Assets.

Headlines and Descriptions in the Assets tab are great for adding temporary promotions to your RSAs (e.g., Easter offers).

Instead of changing all your individual RSAs in different ad groups in different campaigns, you can simply use Campaign Level Headlines (and Descriptions).

Here’s how I use it:

  1. Create Easter headlines via Assets tab (e.g., “Crazy Easter Offer,” “40% Off with Code EASTEREGG”)
  2. Pin the headlines to Headline 1 and Headline 2
  3. Set a Start date and End date for the Headlines (and yes, you can schedule these assets, which is great)
  4. Select the Headline in the Asset view, and Add it to all the campaigns I want to apply it to

I hope this helps some of us prep some eggs this weekend! 🙂

– Nils

PS: Wednesday is ‘Ask Me Anything’ day. If you’ve got a question to which my answer would benefit a larger part of the community, send it my way, and I’ll try to answer it. 🙂

a little trick to stop calls from Google Ads reps

One of my clients got bombarded with calls from Google Ads reps last year.

It turned out he had added his real name and phone number to the contact information in the ‘Google Ads campaign guidance’ setting.

Here’s what did the trick for us to stop new Google Ads reps from calling him: replace the account’s contact phone number with a number that is 100% automatically redirected to voicemail.

Head over to Admin > Preferences > ‘Google Ads campaign guidance’ and do the same to keep sane.

– Nils

[AMA] “What’s the one Google Ads setting beginners almost always get wrong and waste the most money on?”

A coaching client asked:

“What’s the one Google Ads setting beginners almost always get wrong and waste the most money on?”

My answer, based on 80+ audits and Google Ads Strategy Calls: it’s the “Auto-Applied Recommendations” (AAR) trap.

AARs are the digital equivalent of letting a hungry wolf manage your sheepfold. 

While Google pitches it as “AI-powered efficiency,” it’s more like a revenue-padding feature for Google, not a performance-booster for you.

Here are some examples:

  1. Google will automagically start broadening your targeting (keywords) -> more clicks from irrelevant user queries, with lower conversion value.
  2. Google will switch bidding strategies -> higher CPC bids for clicks with similar/lower conversion value.
  3. Google will create new creatives that look fancy but are generally clickbait -> higher CTRs, lower CVRs.
  4. Google will increase campaign budgets because, yes, there is more demand. Just not at the same acquisition costs.

My recommendation: turn AAR off, look at what it promises to “optimize for you,” then optimize it yourself.

Always ask yourself: is this recommendation in line with my objective, or somebody else’s?

My 2 cents.

– Nils

Using AI agents to boost PPC productivity — join me in Boston for my session at SMX Advanced 2026?

I’m thrilled to be speaking again at SMX Advanced, on June 3-5 in Boston! 

If you want to learn how I use AI agents to scale my agency and client accounts, don’t miss my session, “Using AI agents to boost PPC Productivity.”

Details: https://searchengineland.com/smx/advanced/agenda/?sessId=3372

Use promo code SMXSpeakerFriend to save an additional 15% off your All Access pass:

https://events.searchengineland.com/smx-advanced-2026/register?code=SMXSpeakerFriend 

– Nils

Products disapproved because of ‘Product page unavailable’? Here’s how to fix this.

If you are running my Google Ads Script to detect products that have been disapproved in Google’s Merchant Center, you may have noticed an increase in products that falsely get disapproved because of ‘Product page unavailable’.

Your product pages are working fine, but Google says otherwise.

The problem is often NOT your website. It’s Google. Google has trouble with the DNS lookup or other unknown crawling issues that resolve themselves on the next crawl.

This issue is annoying, but don’t worry if this only happens to a small fraction of your products that do not get a lot of clicks and conversions. The product will get approved during the next crawl, and your Google Ads performance won’t suffer that much.

HOWEVER, when products get disapproved that have generated a significant amount of clicks and conversions, you want to get them approved ASAP.

This is not only because you want these products to show in your ads again to generate clicks and conversions, but also because of potential risks for offsetting the smart bidding algorithms. (Yes, Google will most certainly continue to spend your $$$, just now on clicks for products with lower conversion rates and lower conversion value.)

When products that have generated a significant amount of clicks and conversions get disapproved because of ‘Product page unavailable’, here’s what to do:

1. Head over to Merchant Center
2. In the left navigation, click Products
3. Click the ‘Needs attention’ tab
4. Click ‘View products’ in the ‘Product page unavailable’ card 
5. Click on one product
6. In the top right corner, under Status, click ‘Review and fix’ 
7. On the Products detail page, click on ‘Request website check’  

This should fix the issue within 24 hours (unless, of course, it truly was an issue with your website).

I hope this helps!

– Nils

Is it time to negotiate your raise in 2026, or start looking for a new job?

Last month, I sent an email requesting your participation in this year’s PPC Salary Survey.

If you participated in the survey, on behalf of Duane (the driving force behind the initiative) and me: a big Thank You!

Special thanks to all you Dutch PPC folks on my list who participated — the Netherlands cracked the top 3 countries for responses again this year! 

Salary transparency is very important for making things fair for everyone. Data like this gives us PPC peepz some bargaining power!

You can (re)negotiate salary for your current (or a new) role at your employer, or use it in negotiations with a new employer.

This week, Duane shared the results. Here you go:

Final Report: PPC Salary Survey 2026
https://www.reddit.com/r/PPC/comments/1rw66wi/ppc_salary_survey_2026_final_report_11th_year/

– Nils

bulk radius targeting (via scripts)

Imagine having to spend two hours per day on adding radius targeting to your campaigns:

1. Grab a coffee while the Google Ads interface loads your campaign view
2. Click campaign settings
3. Stare at the screen in full awe, not understanding why it takes ages to load
4. Click locations
5. Click advanced search
6. Lookup target
7. Set radius
8. Click save
9. Navigate to the next campaign
10. Wait for at least 5 seconds, seconds that feel like forever, for the page to load
11. Click locations, click advanced search, lookup target, set radius, click save
12. Rinse, repeat

This. For two hours. Every day.

Some time ago, one of my clients complained about this and asked me whether we could automate it using scripts.

He was looking for a solution that automagically adds radius targets based on location names (cities) in the campaign name.

Good news: you can use scripts to add radius targets in bulk!

Here’s a code snippet to help you get started:
https://developers.google.com/google-ads/scripts/docs/examples/proximity

You can use my Google Ads Scripts Sensei to create the script for you.

Or, if you want me to create the script for you, hit reply.

– Nils

The Global State of PPC Report 2026

Fellow member of the list and PPC legend, Wijnand Meijer (TrueClicks), shared some great work today: the Global State of PPC report 2026 is live.

1300+ respondents. 60+ charts. 14000 words. And, for the first time: a full chapter on AI in PPC, with 10 questions on how practitioners actually use (and don’t use) AI in their daily work.

No email gate, no form. Just a one-click PDF download.

The report offers great insights into PPC work, ad platforms, priorities, campaign types, budget expectations, AI, tooling, and more. One insight below shows I still have a job to do in explaining the power of Google Ads Scripts 😉

Here’s the link to the report:
https://www.ppcsurvey.com/

– Nils

When Google gives one advertiser a Formula 1 car

When Google publishes a blog post hyping a shiny new feature with “great results,” remember this: they’re testing it in a world where only one advertiser (or a tiny handful) gets access to that new feature.

Of course, the advertiser might get ahead for a while.

But let’s not kid ourselves.

During the test, Google hands one advertiser a Formula 1 car.

The moment 50% of advertisers get the same toy, we’re all back in bumper-to-bumper traffic.

Here’s the thing: early test results are often less about the feature being magical and more about temporary asymmetry.

A temporary edge is still an edge.

Once the feature rolls out at scale, that edge usually gets competed away fast.

– Nils

[PPC Productivity] Google Ads UI Usability Booster

My current favorite browser extension for improving my PPC productivity is this: Usability Booster.

I like how it removes unnecessary white space from the Google Ads UI, so you don’t have to scroll as much, and I LOVE it for automatically expanding all menus in the left navigation panel.

“How many times a day do you click on the ‘Assets’ menu heading to expand the asset menu so that you can then click on the asset menu item?”

Right… these are wasted clicks. 

And if there’s one thing us PPC-ers don’t like, it’s wasted clicks.

There are many more interesting improvements to the Google Ads UI that you can enable one at a time.

Get the extension here: https://www.usability-booster.com/

– Nils

confusing

Hey PPC friend,

What do you think: secondary conversion actions, are they used for bidding?

Yes, or no?

Simple question, but no obvious answer here, I am afraid. (Ask your colleagues during lunch.)

Google says:

“Each goal needs at least one primary conversion action to be used for campaign optimization. Primary conversion actions represent the most important actions customers or potential customers can take on your website, because Google Ads will optimize your campaign to achieve these primary actions.”

Source: https://support.google.com/sa360/answer/9455412?hl=en

BUT also…

Secondary actions: These conversion actions are for observation only. They are used for reporting in the “All conversions” column in your reports, but not for bidding, even if the goal they are included in is used for bidding. The one exception is if the secondary action is part of a custom goal, in which case it’s used for bidding.”

Source: https://support.google.com/google-ads/answer/11461796?hl=en

So, the answer to my initial question is: it depends 😉

– Nils

PS: I like to use secondary conversion actions to test value-based bidding for different types of values that are reported back to Google, for the same conversion (think: profit VS revenue, non-capped revenue values VS capped revenue values, predicted LTV VS initial purchase value, browser-based tracking VS OCI, etc.). I create custom goals for them so that I can use them as campaign-specific conversion goals in my campaign experiments.

[Presentation] Google Ads Scripts for e-commerce and how I use them

The great Anu Adegbola invited me to speak at her PPC Live UK event in London earlier this month.

I spoke about Google Ads Scripts for e-commerce and how I use them.

The event also hosted fantastic talks by Kate Sale, “Finding joy in paid media to keep your job (and grow!),” and Dave Alexander, “Why lost leads are a good thing.” Be sure to check them out as well!

Here’s the recording:

WATCH NOW »

Sharing is caring!

If you enjoyed the video, please consider sharing it with a few friends who might find it useful. Thanks!

And as always, if you’ve got a question or feedback about my presentation, simply shoot me an email.

– Nils

When your client lets an LLM run Google Ads

Last week, one of my clients decided to be “smart.”

He connected a large language model to the Google Ads API. Gave it access. Started asking performance questions.

At first? Interesting insights. Some solid pattern spotting.

Then… chaos.

Without him realizing it, the LLM didn’t just analyze. It “optimized.”

Yes. It AI-magically made changes inside the account. Bidding targets adjusted. Broad match keywords added… Stuff no human approved.

And the reasoning behind it? Simply dead wrong!

Luckily, my Change History Alert script fired.

The next day, I got an email in my inbox:

“Unrecognized user made changes in account X.”

That “user”? The LLM, on behalf of my client.

I reverted the nonsense in minutes before the crazy changes could do harm.

Here’s the thing: AI is a brilliant intern. It is NOT a senior media buyer. Just like an LLM (sometimes) hallucinates explanations, it can hallucinate optimizations too. You have to monitor its work like you monitor your interns.

And here’s the actionable takeaway: install my change history alert script that flags ANY edits from outside your approved user list.

Even if it’s “just” an API integrated LLM.

Go ahead, install it. It only takes 5 minutes.

Your future self will thank you.

LINK: https://nilsrooijmans.com/google-ads-script-change-history-alerts/

Happy scripting!

– Nils