[AMA] “What is your favorite Google Ads keyboard shortcut?”

Long-time member of the list Angela York (name shared with permission) asked:

“Last week, you showed us keyboard shortcuts for Google Ads Editor. What is your favorite shortcut inside Google Ads UI?”

I have posted about one of my favorite use cases before, and you can find it here: https://nilsrooijmans.com/daily/little-secret-ppc-productivity-hack

My current favorite is the ‘F’ key.

Simply hitting the F key will open the full-screen mode for the table in your view.

Here’s an example for our search term report.

Before hitting the F key (notice all the distractions):

After hitting the F key:

Nice and clean view, isn’t it? 🙂

– Nils

[AMA] “How to prevent CPC spike of brand campaigns without losing too much visibility?”

Fellow member of the list, Mohamed Tefridj (name shared with permission), asked:

“Last week, my brand CPC increased by 200%. How to prevent CPC spike of brand campaigns without losing too much visibility?”

This is a great question that often comes up in the PPC community.

Here’s my take.

Let’s start with the assumption that you have a brand campaign targeting your brand keyword(s). The second assumption is that you have your brand keywords as both (1) EXACT and (2) PHRASE/BROAD match keywords.

1. Average CPCs for exact match keywords can easily be controlled via a Manual CPC bid strategy or a Target Impression Share strategy with a bid limit.
   
Note: It’s relatively easy to get a high impression share for your exact match brand keywords (even with low CPC bids) because of low competition. 
   Exceptions are generic brands that also appear in the dictionary (e.g., Jaguar, Patagonia), or brands that Google loves to match to non-brand phrase match keywords (thanks to the latest implementation of its phrase match algorithm).

2. Average CPCs for broad and phrase match variations of your brand are harder to control and will often show lower scores for impression share. 
   This is because broad and phrase match variations of your brand keywords are being matched to long-tail searches that have a lot of competition.
   For example, let’s say you are Pioneer and you’re selling DJ controllers. Google matches the user query ‘pioneer dj controller’ to your brand phrase match keyword “pioneer,” BUT ALSO to your competitors’ non-brand phrase keyword “dj controller.” There could then be a lot of competitors driving up your CPCs. 

So, how can you control the CPCs in your brand campaigns?

This is what I recommend: using different bid strategies with different bidding (limits) for EXACT and PHRASE/BROAD versions of your BRAND keywords.

The easiest way to do the above is to have two separate BRAND campaigns: one for the EXACT match and another for PHRASE/BROAD.

– Nils

Google Ads Editor Keyboard Shortcuts

Keyboard shortcuts. Some swear by them. Others never use them.

Me, I think they are one of the best ways to increase your PPC productivity.

Here are my favorites for Google Ads Editor:

Ctrl+Shift+TGet recent changes
Ctrl+HReplace text
Ctrl+Alt+H Change text capitalization
Ctrl+UChange URLs
Ctrl+KCheck changes
Ctrl+PPost changes

And here’s a list with them all:

https://support.google.com/google-ads/editor/answer/54654?hl=en

– Nils

[AMA] “How to target what they want, next to what they need?”

On September 8, I wrote a short email saying:

Here’s a simple trick for you:
  
Target what they want, next to what they need.
  
Think:
    “how to get warm feet” next to “alpaca socks”
    “how to feel less tired” next to “best mattress”
    “how to get her to want me” next to “Tom Cruise pick up lines”

Fellow member of the list, Kevin Adjei-Frempong (name shared with permission), asked:

“Can you elaborate on what you mean and show a use case? Also, how and where would you implement it?”

Sure thing.

Let’s say you are advertising a flower delivery service.

You’ve done your market research and identified buyer personas, their wants, and their needs.

Someone in your target audience (‘Jane’) needs flowers delivered to a friend who just lost a loved one.

Jane needs flowers to be delivered because she wants to show her friend she is thinking about him during these hard times, and she wants to show this without having to travel for 6 hours and meet him in person.

For this scenario, here’s my approach.

In my keyword targeting, I would target both the need and the want, so I target these keywords:
  need: [flower delivery service ${location}]
  want: [how to show support to a grieving friend]

In my ad copy, I would talk about the USPs and Benefits related to the need and want:
  need: “Same day delivery in ${location} before 4PM.”
  want: “Brighten someone’s day with fresh blooms right to their door. All from the comfort of your chair.”

– 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 🙂

agency life, or how my Script Sensei will save your reputation

Nobody will remember:
– Your salary
– Your fancy Title
– How ‘busy’ you were
– How many hours you worked
– Any of the Google certificates on your wall

People will remember:
– How you spent twice the client’s monthly budget in a single day

Here’s a 5-minute challenge for you:

Ask my Script Sensei to create a script for you to prevent budget mistakes. 

Share your results and/or questions with me, and I’ll help you with your next step.

LINK: https://chatgpt.com/g/g-68d80c18068c819186aeb92dde66348e-nils-script-sensei

– Nils

supercharge your e-commerce campaigns with the power of Google Ads scripts

Want to supercharge your e-commerce campaigns with the power of Google Ads scripts?

Join me tomorrow for a deep dive into advanced scripting techniques specifically designed for e-commerce advertisers.

WEBINAR (free): Best scripts for Google Ads and eCommerce and how to use them

DATE + TIME:  Tuesday, October 21, 4 PM CET

LINK: https://www.channable.com/next-level-ecommerce

I’ll be sharing my go-to Standard Shopping + Search strategy to outperform PMax. During the free webinar, I’ll share the setup plus how I use scripts to automate the process. 

See you tomorrow?

– Nils

how to NOT use scripts

How to NOT use scripts:

One of my students proudly presented a Google Ads script that would make 5% changes back and forth to budgets and tROAS on a weekly basis, just to “look busy.”

I immediately removed him from the class, of course 😉

– Nils

PS: Want to learn the exact prompts for creating scripts of real value with the help of ChatGPT?

Sign up for my next ‘5-Day ChatGPT and Google Ads Scripts Challenge’:

LINK: https://nilsrooijmans.com/5-day-chatgpt-and-google-ads-scripts-challenge-2025/

Data exclusions don’t affect conversion reporting

Here’s an email I got from a team member this morning:

“Hey Nils, I’ve excluded the faulty conversion data for Oct 12-14, but Google is still showing the conversions in the conversion column.” 

True. 

It’s not obvious, and IMO doesn’t make any sense, but still:

“Data exclusions only affect the data that Smart Bidding uses. You can still find these excluded conversions in your reporting.”

SOURCE: https://support.google.com/google-ads/answer/10370710?hl=en

Another thing about data exclusions that is far from intuitive, but DOES make sense:

“Data exclusions apply to clicks: Your data exclusions must exclude clicks that could have had the affected conversions attributed to them. When these clicks are excluded, the associated conversions are also excluded.” 

This means that if conversion tracking showed a defect October 12-14, and a big chunk of your conversions (i.e., >30%) take more than 1 day from last interaction to convert with a conversion delay of 2 days, you might want to exclude more clicks (i.e., October 10-14).

Makes sense, but not intuitive at all, if you ask me. If you agree, I recommend you discuss with your colleagues to get your head around it.

– Nils

[AMA] “What do advertisers get wrong with (scripts) automation?”

Yesterday, we talked about how automation doesn’t replace strategy. (Email shared below for your convenience.)

Today, fellow member of the list Mark Andoljšek (name shared with permission) asked:

“What’s the one thing most advertisers still get wrong with (scripts) automation of Google Ads?”

Thanks for asking, Mark!

Here’s a common “missed opportunity”: I see a lot of advertisers automate outputs, not inputs. They’re happy to let scripts add negatives, pause ads, or tweak budgets — but they never automate the data feeding the system.

Examples:

  • They’ll have a script running that adjusts CPA targets for smart bidding while the OCI conversion tracking is buggy without them noticing, or
  • They’ll have a script labeling products (“hero,” “zombies,” etc.) while the product data in the feed is outdated, or
  • They’ll have a script pause low-performing keywords while the landing pages for out-of-stock products are still part of the RSA.

Garbage in -> garbage out.

Want a real edge?

Automate data hygiene, such as by using:

  • Scripts that alert when conversion tags stop firing.
  • Scripts that check feed freshness every hour.
  • Scripts that check for out-of-stock landers or broken links.

Automation isn’t only about “doing more.” It’s also about feeding better signals so the machine can actually work for you, not against you.

Cleaner inputs. Smarter automation. More profit.

Happy scripting!

– Nils

PS: I’m trying to help some more PPC friends by answering questions via an ‘Ask Me Anything’ each Wednesday. 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 🙂

PPS: Here’s the link to yesterday’s email: https://nilsrooijmans.com/daily/automation-doesnt-replace-strategy

Automation doesn’t replace strategy

Always remember: automation doesn’t replace strategy. It amplifies it — for better or worse.

Too many accounts I audit look like this: PMax and Smart Bidding everywhere, zero strategy behind it. No clear objectives, no structure, no well-defined targets, no profit tracking, no guardrails, no clue. Just Google “optimizing” itself into your client’s wallet.

Think of Smart Bidding like a self-driving car: great at following a route, terrible at picking destinations. If you don’t set the destination, Google will — and it always leads to Mountain View. If you don’t define what “good” looks like (e.g., profit, ROAS, CPA, new customers), Google will define it for you -> it optimizes for spend, not success.

So before you turn on PMax / smart bidding, ask yourself:

  1. What is the machine optimizing towards? 
    * Have you translated business objectives into the right Google Ads goals?
  2. Does the machine get the right input? 
    * Are you tracking the thing you want to optimize for? (e.g., profit, new customers)
    * Are you feeding the machine the right data? (product data, audience data, creatives)
  3. What do you do when the machine gets it wrong?
    * Too much wasted spend in the learning phase? (how to prevent/anticipate)
    * Campaign not meeting its target? (how to fix beyond simply editing the tROAS/tCPA setting)

Implement your strategy first. Build scripts or automated rules to monitor if the machine starts drifting off-course. Guide it — don’t blindly trust it.

Otherwise, automation won’t save you time. It’ll just make your mistakes happen faster.

– Nils

PS: Here’s a link to my SMX Advanced session that presents some ideas and scripts related to the above.

easy way to share negative keyword lists across your accounts

Are you still copying negative keyword lists between accounts?

Here’s your PPC Productivity tip for the day:

You can use the Shared library in your manager account to create, edit, and remove negative keyword lists that can be applied to your client accounts.

If you’ve been laboriously adding the same lists of negative keyword accounts manually, this is for you.

I use them to share generic negative keyword lists that are not client-specific. 

Examples include negative keyword lists for:
– HR-related (“jobs,” “resume,” etc.) 
– Question words (“how,” “what,” “when,” etc)
– DIY (“diy,” “make,” “create,” “do it yourself,” “home made,” etc.)

Here’s how to create and share these lists in your manager account:  https://support.google.com/google-ads/answer/7519927?hl=en

NOTE: When you create negative keyword lists in your manager account, they’re added to the Shared library of all your client accounts by default. Your clients can see all the shared lists in your manager account.

– Nils

my negative keyword list naming convention

When it comes to naming my negative keyword lists, I prefer to use the following template: asterisk + descriptive name in all caps.

Here are examples:

  * ACCOUNT NEGATIVES  
  * COMPETITOR BRANDS
  * LOCATION NEGATIVES
  * QUESTION WORDS

Here’s why: in the Google Ads UI, when looking at the negative keywords and keyword lists in your campaigns, Google sorts them alphabetically. This makes it difficult to quickly see what negative keyword lists are attached to your campaigns, as they are buried between the negative keywords.

Adding the asterisks in front of the names of your negative keyword lists makes it easier to see all the lists attached to your campaign at a glance.

Here’s what that looks like:

– Nils

When GPT returns invalid code: how to fix it

Long-time member of the list and script fanatic Alberto Esteves Correia (name shared with permission) asked:

“Some people think GPT will do everything for them, even if they know nothing about programming or scripting.

When GPT returns invalid code, how to get out of it?”

It’s true: most LLMs still hallucinate a lot when it comes to Google Ads Scripts and often return code that is broken.

Here’s how to fix that and learn some things along the way (works for any LLM):

1. Assign ChatGPT the role of a Google Ads Script developer tasked with debugging the code.
2. Copy-paste the code. Then, ask ChatGPT to explain the code that shows the issue.
3. Copy-paste the error. Then, ask ChatGPT to explain the error message.
4. Ask ChatGPT to fix the code and explain the fix.
5. If a new error message pops up: rinse and repeat steps 2, 3, and 4.
6. If the same error message pops up: 
  6.1: Ask ChatGPT to find supporting documentation on the Google Ads Scripts Developer documentation site.
  6.2: Copy-paste the documentation into ChatGPT.
  6.3: Repeat steps 2, 3, and 4.

If all that doesn’t work, post your issue on the Google Ads Scripts Developer Forum: https://groups.google.com/g/adwords-scripts

Want to learn the exact prompts I use to get the most out of ChatGPT script development?

Sign up for my next 5-Day ChatGPT and Google Ads Scripts Challenge.

Link: https://nilsrooijmans.com/5-day-chatgpt-and-google-ads-scripts-challenge-2025/

– Nils

GPT power

Last week, I shared my Custom GPT for Google Ads scripting with you.

Fellow member of the list Klára Bognár (name shared with permission) put it to the test. Here’s her experience:

“I just wanted to thank you for creating this custom GPT. It really helped me simplify what seemed to be a very complex problem.

Before finding your GPT, I had tried three different AI models (ChatGPT, Claude.ai, and Gemini) to figure out how to add and remove headlines in PMax campaigns using Google Ads Scripts with time-based scheduling.

All of them concluded that it could only be done with a combination of Google Sheets + Apps Script + a GCP project for OAuth, and I even started developing such a solution. But that approach turned out to be complicated to share with colleagues due to the developer tokens and OAuth credentials.

I didn’t give up hope and asked your custom GPT if there might be another way — and now it’s actually working, entirely within Google Ads Scripts!

Win!

Thanks for sharing, Klára. I hope this experience will convince others to give the Google Ads Scripts Sensei a try.

Here’s the link again:
https://chatgpt.com/g/g-68d80c18068c819186aeb92dde66348e-nils-script-sensei

I recommend you go play around with it for the next 10-15 minutes and let me know how it goes.

Happy scripting!

[AMA] “Can you share a custom GPT to help us with Google Ads Scripts?”

Fellow member of the list, Wijnand Meijer (name shared with permission), asked:

“In your presentations, you often talk about custom GPTs to help with scripting. Can you share it?”

Sure thing!

My “Google Ads Scripts Sensei” will help you understand, fix, and create Google Ads Scripts 🙂

Zero coding skills needed.

Here it is:
https://chatgpt.com/g/g-68d80c18068c819186aeb92dde66348e-nils-script-sensei

I recommend you go play around with it for the next 10-15 minutes and let me know how it goes.

Happy scripting!

– Nils

PS: I’m trying to help some more PPC friends by answering questions via an ‘Ask Me Anything’ each Wednesday.

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 🙂

what script to create, and 50% discount on AdworldExperience

When determining what script to create next, ask yourself: 

What went terribly wrong this week/month?

Then, feed that issue into your favorite LLM and ask it:

“Suggest 3 ideas for a Google Ads Script that would prevent {issue}”

Start there. 

Master the art of coming up with ideas for scripts that create real value. 

Then advance.

– Nils

P.S. I’ve got two tickets with a 50% discount on next week’s edition of AdworldExperience (Bologna, Oct 2-3). If you’re interested, reply within the next 24 hours. The random price draw will be tomorrow morning (Saturday) CET. Here’s the program: https://www.adworldexperience.it/en/program/