“What Google Ads Scripts Should I Be Using?”

“What Google Ads scripts should I be using?”

It’s a question I get all the time, in all shapes and forms:

“Which are the best uses of Google Ads scripts?”
“What are the best scripts for Google Ads?
What Google Ads scripts do you use most?
What is your favourite Google Ads script?

Sorry, there is no simple answer here. It’s a “how long is a piece of string” question and the only right answer is the infamous “it depends.”

I run over 40 custom-built scripts in my manager account that monitor my client account settings and performance. Some examples:

  • monitoring conversion tracking
  • spend versus budget alerts
  • payment issues
  • smart-bidding-gone-haywire alarm
  • monitor campaign settings like ad rotation, search partners, etc.
  • low QS keywords with significant spend alert

These scripts allow me to scale my business and still sleep well with the comfort of knowing that all things run smoothly. If any dramatic change happens, my scripts will alert me in no time.

Most of these scripts are custom-built by me, and not publicly available yet. However, I plan on developing a paid membership community that will let you have access to them soon, so stay tuned.

For now, I have created a short list of FREE scripts that typically benefit almost every account I come across:

1. Broken Link Checker
2. Negative Keyword Suggestions
3. Negative Keyword Conflicts Checker
4. Search Query Mining Tool (n-gram analyses)
5. Trending Search Terms Report

You can find the scripts here:

https://nilsrooijmans.com/google-ads-scripts-faq/what-google-ads-scripts-should-i-be-using/

Happy scripting!

– Nils

Step, Step, Step, Pause

Swen taught me a valuable lesson today:

“Step, Step, Step, Pause”

I was trying to replicate his moves. Him being my salsa teacher.

(Surely you’ll understand, no link to a video recording here. At least not yet!)

His lesson reminded me of my answer to a very common question:

“How to test different bidding strategies for a Google Ads campaign?”

My answer dances to the same rhythm as Swen’s advice.

Step 1: Create a campaign experiment and change the bid strategy setting in your experiment to the thing you want to test (i.e., different strategy, or different target).

Step 2: Sync the experiment (Trial) with your original (Base) campaign. This way, changes you make in your Base campaign will automatically be included in your experiment.

Step 3: Schedule the experiment to run for at least 6 times the median of your conversion lag AND at least 14 days.

Step 4: Wait.

That last step will give your bidding strategy the time to find its rhythm, just like Swen helped me find mine.

– Nils

Is it a “lack of automation” problem?

If you don’t have as much time as you’d like to finish your work, you might have a “lack of automation” problem.

Or… you might not.

How can you tell?

Let’s say you’re an individual freelancer or part of a small PPC team, and you’re already running multiple Google Ads Scripts that automate all the repetitive tasks…

…but you still don’t have enough time to finish your work.

In a case like this, I’d say a lack of automation probably isn’t your main problem.

Your main problem is probably one of the following:

– you’re biting off more than you can chew (or may be forced to)
– you don’t have a clear plan (strategy)
– you don’t have a clear process (SOPs)

Tinkering with Google Ads Scripts might be fun, but it might not improve your situation if it’s not the main problem.

– Nils

a very quick and easy way to add promotions to your RSAs

Do you want to apply your special Black Friday headline to all RSAs in just a few seconds? 

Instead of changing all your RSAs in different ad groups in different campaigns, you can simply use this little-known Google Ads feature:

Campaign Level Headlines (and Descriptions)

Here’s how I use it:

  1. Create Black Friday headlines (e.g., ‘Crazy Black Friday Offer’, ‘40% Discount with Code BF40’)
  2. Pin the headlines to Headline 1 and Headline 2 
  3. Set start date and end date for the Headlines
  4. Select the Headline in the Asset view, and Add it to all campaigns I want to apply it to

That’s it.

Our friends at Paid Media Pros created this awesome video that walks you through the process:
https://www.youtube.com/watch?v=m35xGQjTFpE

Here are more details from Google:
https://support.google.com/google-ads/answer/13548268?hl=en

Trust me, if you run Black Friday promotions, this is one of the quickest and easiest ways to promote them.

– Nils

Want me to create more free scripts next year?

Thank you for being here!

Your appreciation means a lot to me. It’s like a turbo on my scripting engine and keeps me motivated to share my PPC learnings in my daily emails.

Today, I’ve got a favor to ask.

If you’ve gotten some value out of my scripts and/or newsletter this year, and want to stimulate me to create more value next year, help me help you:

Please take 5 minutes to complete the survey at https://www.ppcsurvey.com/

…and vote for me as your PPC scriptfluencer of the year 🙂

That’s it.

Thanks a ton!

– Nils

What’s your biggest PPC nightmare?

Want some PPC horror stories?

Check out this terrifying thread on /r/PPC: https://www.reddit.com/r/PPC/comments/1ga58zk/whats_your_biggest_ppc_nightmare/

If nothing else, it will sharpen your awareness of some of the worst PPC mistakes our universe has to offer.

Here’s one of my recent painful mistakes:

I implemented consent management via CookieYes on a Shopify store. Configuration went smoothly. Preview in GTM. All seemed well. Except… CookieYes was missing the integration with Shopify Consent API. So, no conversions were being tracked anymore (even if the user did provide consent). Then, smart bidding decided to reduce bids to ALMOST ZERO! No clicks, no conversion, no smile on the client’s face.

Ouch!

You have to know: I dream of happy clients. 

Angry clients are nightmare fuel to me.

Your turn: what’s your biggest PPC nightmare?

– Nils

PS: I am thinking about doing a live webinar next week where I’ll show you how I create a Google Ads Script to prevent the most “popular” PPC nightmare. So, if you want to prevent your nightmare from coming true, be sure to respond!

Just Script It

Nike’s slogan, “Just Do It,” is arguably one of the most iconic taglines in advertising history. Introduced in 1988, it was designed to inspire athletes and individuals to push beyond their limits, embodying determination, confidence, and a proactive attitude. The phrase has since become synonymous with the Nike brand, encouraging people worldwide to take action and pursue their goals.

It’s because of that last part that I really love the slogan. 

Whenever I find myself in doubt or procrastinating, I tell myself: “Just Do It!”

I’ve decided to embrace a small variation of this brilliant piece of marketing history. From now on, expect to hear me say “Just Script It” more often than Google changes match types.

Are you tired of sifting through SQRs and negating search terms? Just Script It
https://nilsrooijmans.com/google-ads-script-negative-keyword-suggestions/

Spending countless hours researching new keyword candidates? Just Script It:
https://nilsrooijmans.com/google-ads-script-automated-gpt-keyword-suggestions/

Almost lost your job because of overspending the client’s budget? Just Script It:
https://nilsrooijmans.com/google-ads-script-monthly-budget-target-email-alert/

If Nike can inspire the whole world to take action and pursue all sorts of goals, surely I can inspire you to automate your work.

Just Script It!

– Nils

“Does it make sense to add bid adjustments to smart bidding campaigns?”

Here’s a question that pops up a lot:

“Does it make sense to add bid adjustments to smart bidding campaigns?”

Short answer: No. Almost never.

Longer answer: It depends.

Here’s a table that summarizes when bid adjustments CAN be added:

And here’s what Google has to say:

If you are using Smart Bidding strategies, powered by Google AI, including Target CPA, Target ROAS, Maximize conversions, and Maximize conversion value, you don’t need to make manual bid adjustments since those strategies automatically set bids to optimize for the conversion goal specified by the customer. 

If you make a manual bid adjustment to your automated Smart Bidding strategy, it won’t be supported.

Device bid adjustments for Target CPA allows you to modify the value of your CPA target, rather than the bids themselves.

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

– Nils

[Ad Copy] Simple trick to increase CTR 

Here’s a simple ad copy trick that often produces better CTR for me: use power phrases from testimonials in your description and put them between double quotes.

For example, for a Ducati rental store, you could write something like:

Latest Models, Starting at only $120 a day, 200 miles included.

Or, you could write this:

“Wow! The bikes were brand new. AND we got them for only $120 a day with enough free miles for 4h non-stop riding!”

This kind of social proof works wonders in many of my accounts.

PRO TIP: use an LLM like ChatGPT to analyse your testimonials and come up with some crispy, vivid phrases.

– Nils

monitor your inbox to spot Google reps making changes to your account without permission

Sorry, I need to send you another warning: apparently, Google Reps are making changes to accounts without asking for permission.

To add some more drama to the story: they make these changes using Google’s internal system, which means that these changes DO NOT show up in the account’s change history!

I’ve read rumors about this from multiple people on Reddit and LinkedIn.

The changes were made by Google’s third-party partners. Even though the Google Rep did not have permission, the person was nice enough to send an email that listed the changes made. 

That email was sent using an address that ends with “@xwf.google.com.” That domain is always used if Google Reps work from one of Google’s third-party partners.

Source: https://support.google.com/chrome/a/answer/15342384?hl=en

Which brings me to my advice for you today:

Create a filter/rule in your inbox that highlights/stars emails sent from @xwf.google.com 

That way, you will at least notice the email if another Google Rep has the balls to make changes that are hidden from us in the Google Ads UI.

– Nils

PMax no longer automatically outranks Standard Shopping

WARNING:
PMax no longer automatically outranks Standard Shopping; it’s now all about Ad Rank. Source: https://support.google.com/google-ads/answer/15535462

BEFORE this change, when you have the same product in both Standard Shopping and PMax:
PMax would always take priority and place the bid that enters the auction UNLESS your PMax targeting settings and/or PMax negative keywords or a limited budget prevents this.

AFTER this change, when you have the same product in both Standard Shopping and PMax:
PMax will take priority if its bid delivers an Ad Rank that is higher than the Ad Rank of your Standard Shopping campaign.

RESULT:
There’s a lot to think through here, but my conclusion is dead simple:
1) CPCs on clicks from Shopping Ads will increase (because of higher bids entering the auction for the same user queries/products). 
2) Managing a Google Ads account that runs both Standard Shopping and PMax has become more complex (because one-dimensional prioritization is replaced with two-dimensional prioritization).

POTENTIAL RISK FOR ADVERTISERS:
Standard Shopping campaign spend goes up, without corresponding growth in revenue/profit.

FIX:
Monitor your Standard Shopping campaigns like a hawk and adjust targets and budgets to meet your goals (not Google’s).

SCRIPT: Standard Shopping Spend Alert

Join me in my effort to warn the PPC community: if we get over 100 people to like this post and add “spend alert” in the comments, I will create and share the script for free.

Here’s the link:
https://www.linkedin.com/posts/nilsrooijmans_googleads-pmax-script-activity-7255149988157042688-XuhV

Or, you can reply to this email to get the script if we reach the magic number.

– Nils

“Served costs” versus “billed costs”

I am on my way to Bologna for my seventh (or eighth) year of AdworldExperience. I’ve lost count 🙂

Each year, it’s one of the best PPC events I’ve been to, so I am really looking forward to it.

If you’ll also be at the event, come say hi! I’d love to chat.

My flight to Bologna was a pleasant surprise for me. 

The surprise is related to the PPC topic I’ve been talking about in the last two days — spend.

So, here’s what happened: KLM was kind enough to offer me an upgrade to business class for a fair amount.

I took it.

However, my credit card has not (yet) been charged…

Which brings me to another not-all-that-intuitive topic related to Google Ads budgets: “served costs” versus “billed costs.”

Here’s what Google says:

The served cost is the cost of all the clicks or impressions that the campaign received.

The billed cost is the actual amount you’re responsible for paying, after adjustments have been made to your account for items like overdelivery, invalid activity, and more.”

You can view the daily costs at the campaign or account level from the Transactions page.

Source: https://support.google.com/google-ads/answer/9237921

So, if your campaign’s served cost is over twice the daily budget (and if you haven’t changed the budget setting on the same day) -> go check that billed cost!

If all is well, you are lucky; Google gave you more impressions, clicks, and hopefully conversions than you’re charged for!

Let me check my luck on KLM’s transaction page tomorrow 😉

– Nils

daily budget calculator

Yesterday, we talked about how Google Ads’ daily budget settings are anything but intuitive.

Here’s a link to the story, for your convenience: https://nilsrooijmans.com/daily/your-daily-budget-is-not-really-your-daily-budget

The moral of the story is that calculating new daily budget settings when managing monthly budgets is far from trivial.

Fellow member of the list Tim Moorhead (name shared with permission) agreed, and he created a calculator you can use for adjusting daily budgets when making mid-month changes.

This tool calculates the correct daily budget by entering your month-to-date spend and your new or updated monthly budget. 

Here’s what that looks like:

(click image to enlarge)

Here’s a link to the Google Sheet (make a copy first): https://docs.google.com/spreadsheets/d/155yRUSdlBS8ESfKb34PeETzedKpGl9tvYkxQ3YWhIqI/copy

Thanks for sharing, Tim!

– Nils

your daily budget is… not really your daily budget?

I posted some campaign-budget-related comments on Reddit and LinkedIn today that I think are worth repeating:

Do you know how much Google can charge you when you make changes to your daily budget setting or ad schedule?

First, some definitions and theory.

  • Your average daily budget:
    the average budget amount that you set for each ad campaign on a per-day basis, it specifies how much you are roughly comfortable spending each day over the course of the month.
  • Your daily spending limit:
    the maximum amount you pay on an individual day.
  • Your monthly spending limit:
    the maximum amount you pay for the given month.

Your daily spending limit is 2x your average daily budget, because of Google’s disputable overdelivery feature. 

Your monthly spending limit is 30.4 times your average daily budget (as 30.4 is the average number of days in a month).

1) What happens when, today, you make a change in the daily budget setting?

1.1) The impact on your daily spending limit

On the day you make a change (or more than one change) to your average daily budget, your daily spending limit will be based on the highest average daily budget that you chose for that day. So, let’s say you have a campaign with an average daily budget of US$100. On the same day, you first increase your budget to $150, and then lower it to $75. The daily spending limit for the day is going to be the highest of your average daily budgets multiplied by 2, therefore $150 * 2 = $300.

1.2) The impact on your monthly spending limit:

When you change your budget, your spend for the rest of the month won’t exceed your new average daily budget multiplied by the remaining days in the month. Let’s look at a hypothetical monthly spending limit for this month. On October 1, you set an average daily budget of $500, for a monthly spending limit of $15200 (i.e., $500 * 30.4). Then, assume that today, October 14, you’ve only spent $5000 and you decide to increase your average daily budget for the remaining days of the month. You then change your average daily budget to $750. The maximum you’ll be charged for the month of October will be: $5000 spent so far + ($750/day * 17 days remaining in October) = $17750 monthly spending limit.

2) How much can Google charge you when you use ad scheduling to only show ads during the week days?

Let’s say you set a daily budget target of $100 in your campaign settings, and schedule your ads to only show on weekdays (Mondays to Fridays). Let’s assume that this month has 20 weekdays (4 weeks times 5 days per week).

Now, what happens to your spending limits?

You might expect Google to recalculate your monthly spending limit, to be 20 x $100 = $2000, thus limiting the max amount you pay for the given month to $2000.

Not so!

Ad scheduling does not impact your monthly spending limit and does not impact your daily spending limit. Google will still try to spend 30.4 times your average daily budget on a monthly basis.

In our scenario, this means Google will spend 30.4 x $100 = $3040 per month if the search volume is there and the daily spending limit allows it to. Our daily spending limit is 2 x $100 = $200, which easily allows for an average daily spend of $3040/20 = $152. 

If you don’t want to be charged more than $2000 then you need to recalculate your daily budget target yourself and change it to $2000/30.4 = $65.79.

As you can see, pacing budgets via the daily budget setting is far from intuitive but also no rocket science. 

This is also something that highly benefits from automation, so be sure to check out these scripts to help you manage your budgets:

– Nils

SKAGs or STAGs?

A long-time member of the list, Kevin (name shared with permission), wrote in with a frequently asked question today:

Hey Nils,

[…]

do you still use SKAGS (I do), or are you organizing your keywords differently these days? 

thanks for all the knowledge you share, you’re a great sport.

Kev

Thanks, Kev! The answer is short and easy: these days, I like to group my keywords around ads and landers that respond to a single search intent (or theme, if you will), not single keywords. 

So, STAGs (Single Themed Ad Groups) all the way.

SKAGs used to be really powerful when match types were (sort of) reliable and we had things like Standard Text Ads and ETAs. These days, with RSAs, fuzzy match types, and smart bidding, my default is STAGs.

The only two exceptions I can think of where I still use SKAGs are Brand campaigns and situations where one search term is responsible for let’s say >50% of clicks and conversions in the account (e.g., “car insurance”). In the latter case, I would create an exact match SKAG for that keyword and fine-tune my audiences, ad copy, extensions, landing page, and negative keywords to perfection.

Another scenario that comes to mind is B2B searches with relatively low volume but high order value. Sometimes, it makes sense to use SKAGs for these searches (especially if conversion tracking does not clearly communicate the high order value). But even then, there’s a big chance I will be adding keywords with similar intent to the same ad group later on.

– Nils

PS: I love receiving and answering questions like these, so if you have any you are willing to share with the list, please send them over. I can’t promise I will answer all of them, but I will surely try!

Ads in AI Overviews… join me in my quest to open up the black box?

Every time Google announces something new that has the smell of reducing transparency and control, I Rebel Yell: “My money, my clicks, my data!”

The next minute, I find myself digging in the report editor and running GAQL queries against the API until my CPU burns a hole in my laptop. I shout at my table duck as if she quacks Googlish, and I pull my last hairs out just to get those numbers.

This time is no exception.

Last week, October 3, Google announced “Ads in AI Overviews: now live.”

“…you can show ads in these experiences with your existing AI-powered Search ads, Shopping and Performance Max campaigns. There’s no additional action required. As we evolve the consumer Search experience, we’re also building advancements into our ads solutions, allowing you to automatically connect with customers as they search in new ways.

Source: https://blog.google/products/ads-commerce/google-lens-ai-overviews-ads-marketers/

“…automatically connect with customers as they search in new ways.”

Right.

My current understanding is that Google will not allow us to target or segment these clicks from AI overviews, not by click type or network. So again, little transparency and less control.

But… maybe, just maybe, there might be some insight in the gad_source URL parameter.

If you’re not familiar with this parameter, read this: https://support.google.com/google-ads/answer/13327296?hl=en

The support article explains:

“…the gad_source URL parameter is used to identify the source of ads URLs and improve the accuracy of ads conversion measurement.”

Great, so we can learn more about the source of the ads URLs (and hopefully, even if that source is AI Overviews).

However, the article doesn’t explain the meaning of the different values for this parameter (and I couldn’t find it anywhere online).

So, let’s find out together, shall we?

Here’s what I’ve learned so far (work in progress):

(click image to enlarge)

You can check these URL parameters in your Google Ads account.

To do so, here’s how:

  1. Go to the All Campaigns view, Insights and reports, Landing pages, and Expanded landing pages.
  2. Add the campaign column and filter using ‘Expanded landing page contains gads_source=X’
  3. Segment by Click type, Network, or some other segment.
(click image to enlarge)

Or, when you see an ad in AI Overviews in the wild, check the lander URL.

Please let me know what you find. I plan to share our findings next week.

Thanks a ton,

– Nils