help me decide the next course?

I am recording a video course on Google Ads Scripts this summer.

Can you help me decide on the exact contents?

I’ve prepared 3 different courses for different levels and need some advice on which one to start with:

A) Google Ads Script Tutorial for Absolute Beginners

  • Learn the absolute basics. 
  • At the end of this tutorial, you’ve learned just enough to comfortably install, test, and run your Google Ads Scripts, AND you’ve installed the 5 best scripts for your account.
  • Contents: 5 15-minute videos + 5 exercises
  • Your total workload: 4h
  • Price: ~$170

B) Google Ads Script Training for Beginners

  • Learn to create basic scripts.
  • At the end of this training, you will be able to read and understand almost any Google Ads script out there, understand basic Javascript concepts AND you’ve created your first, very own, Google Ads Script from scratch. 
  • Contents: 8 15-minute videos + 8 exercises
  • Your total workload: 8h
  • Price: ~$470

C) Google Ads Script Course for Intermediates

  • Learn to fix and write Google Ads Scripts for any task.
  • At the end of this course, you’ll know about all Google Ads Scripts concepts and how to use them. You’ll be able to fix and write scripts for almost any task in Google Ads.
  • Contents: 12 15-minute videos + 12 exercises
  • Your total workload: 20h
  • Price: ~$1470

D) Other, namely…

For A, B, and C, please rate your level of interest in each on a scale of 1 (least interested) to 7 (most interested).

If you respond in the next 48 hours, you will get access to an early bird discount.

Thanks a ton for your help!

– Nils

[Google Ads Script Review] PMax Shopping Spend Drop Alert

Are you running PMax campaigns and do you hate wasted ad spend?

If so, here’s another Google Ads Script for you. 

What it does:
This script monitors Performance Max campaigns across multiple Google Ads accounts under an MCC. It checks if these campaigns were served in Google Shopping the previous day and if their spend meets a specified threshold. If any campaigns do not meet these criteria, the script sends a warning via email.

Why you’d care:
For most advertisers running PMax campaigns, clicks from the Shopping PLAs are the main revenue driver. Spending the budget on other channels like Display and YouTube mostly tanks results. If, for some reason (*), PMax stops generating clicks from Shopping and/or starts spending much more on Display or YouTube, you want to be in the know.

(*) Potential reasons for PMax dramatically shifting spend to non-Shopping channels:

  • Main products go out of stock
  • Main products get disapproved
  • Settings mistakes: wrong exclusion settings in product groups (e.g., custom label filters), too low/high ROAS targets, budget too high
  • Sudden change in actual ROAS performance due to: sale promotions, seasonality, competitor pricing, increased brand traffic
  • Google’s greed to make more $$$

Why I like it:
This script will help you monitor PMax behavior and make sure performance stays on par. It is another great example of how I like to use scripts to Keep an Eye on Google’s AI.

URL: https://drive.google.com/drive/u/0/folders/1GsgWS3GYeIXxTBvHyxJrkY-Za3FD1Vd8

Note on the installation:

Be sure to read the instructions in the Google Drive folder.

PRO TIP:
Learn about 15 other scripts I use to optimize PMax campaigns by watching the recording of my SMX Advanced session on “Mastering Performance Max campaigns using scripts.”

Happy scripting!

– Nils

What role do I want my work to play in my life?

When you consider a new client or job opportunity, one of the first questions to ask is: 

“What role do I want my work to play in my life?”

Make as few decisions as possible that violate your answer.

Here’s the thing:

Many opportunities are disguised in excitement but actually give you less of the life you want.

– Nils

betting to grow

In PPC, every decision is a gamble.

When you decide on a course of action, you’re betting that your decision will pay off.

It might work, or it might not work.

You don’t know in advance.

You CAN’T know in advance.

You have to test.

You have to take a chance. 

As with all bets, you must put some “chips on the table” for a chance to “win the pot.”

The trick to making good decisions over the long term is to consistently try to maximize your payoff and minimize losing what you put at risk.

In other words, don’t “bet the total monthly budget” on a long shot that is highly unlikely to pay off.

Instead, make lots of small bets that have the potential of paying off big.

Placing small bets on new products, new keywords, and new audiences.

That’s how you grow your PPC accounts.

– Nils

Join me at SMX Advanced: free session on Mastering Performance Max using Scripts

Are you having trouble getting consistent results from PMax?

Do you feel PMax is wasting your spend?

Or does scaling PMax campaigns feel like a hit-and-miss to you?

If so, please join me in my session about ‘Mastering Performance Max using Scripts’. Coming up at SMX Advanced next week!

You will learn (1) how Google Ads scripts can open up the black box that PMax is, and (2) how you can use scripts to automate PMax optimizations that would not happen without them.

Hope to see you there!

Session Title: ‘Mastering Performance Max using Scripts’ 

Date and Time: June 11, 12.30 PM – 1.30 PM (EDT) / 18.30 – 19.30 (CEST)

Register for free: https://searchengineland.com/smx/advanced/agenda

should you increase your impression share?

Last week, one of my coaching clients asked how they could improve impression share for good-performing keywords.

Here’s my answer:

I am not sure if a “better impression share” is really what you are after; sometimes “worse” impression share leads to more profits.

The reason for this is that Impression Share (IS) includes all auctions where your ad showed (impressions), and all auctions where your ad is competitive enough to enter the auction (total eligible impressions).

NOTE: The total volume of searches out there might be much higher than your number of total eligible impressions because of your targeting and/or budget and bidding settings preventing you from entering the auction.

Impression share (IS) is the percentage of impressions that your ads receive compared to the total number of impressions that your ads could receive. Here’s an example:

Impression share = impressions (47) / total eligible impressions (100)

Thus, IS = 47%

It might very well be that with a CPC bid that is 200% of your current bid, you achieve an IS of 72%. However, your CPA might increase drastically because of your higher spend on acquisition.

That being said, there are some cases where it makes sense to try to increase your IS. Here’s how:

1) If you are happy with the current CPA, AND your campaign is limited by budget, meaning ‘Search lost IS (Budget)’ > 0% —> simply increase budget (I recommend steps of 20%)

2) If your current CPA is below your targets, AND your campaign is NOT limited by budget —> try increasing your CPA target (again, I recommend steps of 20%)

3) If your current CPA is around your target or higher —> 
   3.1) improve your targeting (add negatives, exclude low-perf placements, exclude low-perf locations, exclude low-perf audiences, exclude low-perf demographics) 
   3.2) improve your ad quality. Also see: https://support.google.com/google-ads/answer/6167130?visit_id=638516356303037699-3656695430&rd=1

– Nils

create an edge

One of the characteristics of Google Ads Scripts that I probably don’t talk about enough is this:

Google Ads Scripts give you an edge over your competition.

Here’s why:

In an AI-driven world, where Google is trying to automate everything for the average advertiser, scripts allow you to automate the stuff at the edges.

It is at the edges where you make the difference and discriminate yourself from your competitors.

Here’s the thing:

Google Ads Scripts allow you to create automations that are unique for you and your clients.

(And the more uniqueness you create, the better you position yourself for this AI-driven future that levels our playing field.)

– Nils

underused but useful feature

Here’s a feature I often receive a great deal of praise for when I demonstrate it during my coaching sessions:

Segment by Conversion Action.

It’s an easy way to quickly discover the exact type of conversions generated by your campaigns.

Here’s what that looks like:

(click image to enlarge)

Notice how, in this example, the third campaign seems to generate a completely different mix of conversion actions than the first two.

Here’s the thing: segmenting by conversion action might give you insights that you would have completely missed if you only looked at the totals (and you have more than one Primary conversion action).

PRO TIP: If you try this and notice valuable insights, add custom conversion columns for each conversion action, and add them to your column set. Here’s how -> https://support.google.com/google-ads/answer/11305866?hl=en

Your 5-minute action for today: if you have more than one primary conversion action, segment by conversion action and have a look at the results.

Do it now, the numbers just might surprise you!

– Nils

Should you configure MCC scripts via a Google Sheet?

Here’s a question that rolled in from one of the participants of my last webinar on Google Ads scripts:

“If you manage more than 20 Google ads accounts, would you recommend to make use of MCC scripting via a Google spreadsheet where you can add the accounts IDs and thresholds? If so, what are the steps to realise this as it is an advanced method?”

Yes. Using a Google Sheet to manage the client accounts on which your script should run is a great way to keep your scripts setup organized.

For the scripts that run in my manager account, I like to use a Google Sheet that has a ‘config’ sheet inside the spreadsheet.

The config sheet has multiple columns, typically organized as follows:

  • Column A: holds the IDs of the client accounts on which your script should run (REQUIRED)
  • Column B: holds the label for campaigns in the client accounts on which your script should run (OPTIONAL)
  • Column C: holds an additional filter for the campaigns; it holds a REGEXP to match campaign names for campaigns in the client accounts on which your script should run (OPTIONAL)
  • Column D…N: hold the configuration variables for the script logic. Examples: click thresholds, ROAS targets, ‘out-of-stock’ strings landing page HTML, third-party API keys
  • Column O: holds the spreadsheet URL for the output report
  • Column P: holds the email addresses where the output should be sent

Here’s an example:

When the script in my manager account runs, it first reads all the information in this ‘config’ sheet inside the spreadsheet.

Then, it executes (in parallel) the script logic, for each individual client account in column A, using the config variables in that row for that specific client ID.

Everything is nicely organized in this one sheet.

No more tinkering with multiple settings in multiple client accounts!

Happy scripting 🙂

– Nils

explicit needs, implicit desires

Yesterday, I wrote about the “three words for maximum PPC growth”: Maximise Relevant Impressions

Many of you responded with a question:

“Hey Nils, what do you consider a relevant impression?”

My take on relevance is this: your ad impression should address (A) an explicit need, or (B) an implicit desire.

The best ads do both.

Here’s an example:

user query = “cheap VPN provider”

– Nils

PS:

This example is taken from the PDF ’23 Pillars of Great Ad Copy’. It’s a playbook to get more clicks and conversions from relevant ads. The PDF is part of GTA.

If you want to simplify account management, take back control, and improve results (or get your money back) -> sign up for Ed’s God Tier Ads.   

Use my discount code “NILS100” at checkout for $100 off. Pay once, get lifetime access to everything.

I’d still share these tips without the kickback… Ed’s pro tips have made me way more money than I’ll ever see from commissions, but a few extra bucks is nice!

Here’s the link again: https://app.godtierads.com/gta-bonus-bundle/apnnu

Google Ads Scripts Webinar with White Shark Media

ICYMI: two weeks ago, I was invited by our friends from White Shark Media to join them for a webinar on the power of Google Ads Scripts.

We talked about how I got started with scripts and use them for the day-to-day management of accounts in my agency.

If you are new to Google Ads Scripts, it’s a great introduction.

WATCH NOW >>

Even if you’re already using scripts in your accounts, I think you’ll still find the discussion useful.

Sharing is caring!

If you have a friend who you think might benefit from this webinar, please consider forwarding them this email. Thanks!

– Nils

test your PROFIT curve

“Only those who will risk going too far can possibly find out how far one can go.”

T.S. Eliot

How far should you reduce or increase your (ROAS/POAS/CPA) targets?

To maximize your absolute PROFITs, you really need to test different target values in your smart bidding campaigns. 

Why? 

Because your targets directly influence your bids. And your bids influence the number of impressions, your ad position, the number of clicks, and ultimately your total conversion value.

This influence isn’t a linear relation though, it more or less follows a profit curve like this:

Here’s the thing: the exact shape of this curve differs per account, per campaign, and per time period.

To get to know the shape of this curve, we need to do some testing.

Here’s how I like to discover the shape of this curve for the campaigns in my account:

1. Create two versions of the same campaign (geo split, or run campaign experiment, 50-50 split)
2. Change ROAS/CPA target for the experiment  (+/- 20% change compared to the original)
3. Create a custom column that reports profit to easily monitor the difference in performance from the campaign view
4. Keep this experiment running for at least 14 days, and at least until the total number of conversions of both campaigns reaches 60
5. Re-adjust the target for the campaign that showed the least profit and go back to step 4

NB: if you are not already tracking profit in your account, you can create a custom column that uses this formula to report the profit estimate. Here’s how:

(click image to enlarge)

Replace 0.3 with your average profit margin.

Then, this is what the result will look like:

(click image to enlarge)

– Nils

landing pages and benefits

Quick question: how many persons are involved in B2B buying decisions?

Quick answer: according to Google and ChatGPT, the typical buying group for a complex B2B solution involves 6-10 decision-makers.

10(!) decision makers…

That is a lot of convincing to be done.

If you are selling products or services via your website, that means your landers have some convincing to do.

In fact, this was one of the eye-openers for me from Ed Leake’s Landing Page Checklist Template: include benefits for all the persona / decision-makers involved in the sale process.

Here’s a screenshot of what that checklist looks like:

(click image to enlarge)

– Nils

PS:

If you join God Tier Ads, you will get access to multiple checklists like the one above that will help you set up and manage your Google Ads accounts.

If you want to simplify account management, take back control, and improve results (or get your money back): sign up for Ed’s God Tier Ads.

Use my discount code “NILS100” at checkout for $100 off. Pay once, get lifetime access to everything.

I’d still share these tips without the kickback. Ed’s pro tips have made me way more money than I’ll ever see from commissions, but a few extra bucks is nice!

Here’s the link again: https://app.godtierads.com/gta-bonus-bundle/apnnu

Monitor Google’s automatically-applied changes

This email from Google (with the subject “Google Ads will automatically pause low-activity keywords”) landed in most of our inboxes in the last few days:

“Starting in June 2024, we will begin to automatically pause low-activity keywords. 

Positive keywords in search ads campaigns are considered low-activity if they were created over 13 months ago and have zero impressions over the past 13 months.”

Good/bad?

My take: I am confused.

Initial response: Google, please f#$k off with these automatically-applied changes. Warnings I can easily turn off, yes, please.  Notifications on ways to improve things… all good. Automatically-applied changes without my consent? NO WAY!

Second thought: Not sure this is a bad thing, after all? After all, 13 months of zero impressions… sounds like pretty useless clutter in the account, right? Potentially hurting the mythical account level QS, and complicating account management for sure.

Third thought: I am still thinking… If you have been thinking about this, please do share your thoughts. I would love to learn!

Fourth thought: Even if pausing low-activity keywords turns out to be a good thing (for the average account), here’s the thing: I still want to be in the know when this change happens. (Because it just might not be a good thing for my account.)

Which brings me to…

…my Change History Alerts Script.

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

What it does:
The script checks all the entries in the Google Ads change history of your account, and if there is a change by a user outside of your list of ‘recognized’ users, you will get an alert via email. The alert mail contains the number of changes as well as a link to the Google Sheet that lists all changes by unrecognized users.

Why you care:
It is all too often that people outside your team (or Google) make changes to the Google Ads accounts you manage. You want to make sure these changes are in line with your strategy ASAP. This script ensures you do.

Happy scripting!

– Nils

Do the exact OPPOSITE of what Google recommends

I mostly do the exact OPPOSITE of what Google recommends.

Here are some of my (unpopular?) approaches:

1. I test LOWERING the budget in campaigns that run on smart bidding. Immediately, I see a reduced cost in incremental conversions, making the additional conversions profitable instead of losing money. (Note: the previously unprofitable uplift in conversions is being hidden by the averages we all look at.)

2. I turn off all auto-recommendations. Immediately, I see a huge reduction of wasted ad spend on clicks that don’t convert.

3. I split out ad groups for different keywords, and use exact match and phrase match. Immediately, I see an increase in ad quality, higher rankings, and more clicks at a lower cost per click for the exact search terms.

4. I test REDUCING the number of assets, and pinning my best headlines in Responsive Search Ads. Immediately, I see an increase in conversions AND conversion value per impression.

5. I run standard search and standard shopping campaigns next to Performance Max campaigns. Immediately, I see the overall account performance increase (revenue and ROAS up, cost per conversion down).

Always remember: Google’s recommendations are in Google’s best interest, not necessarily yours.

– Nils