Success story from reader Cezar Keller

Fellow subscriber Cezar Keller wrote in to share his experience with the premium version of my Change History Alert script
(shared with permission, slightly edited for clarity):

Hi Nils,

I just implemented your Change History Alert script and it works like a charm!

The script even flagged automated changes coming from “Internal Tool” with an user “low activity system bulk change”.

Those are the changes that Google announced in the beginning of the year for low activity campaigns and ad groups.

Thanks a ton and have a great week.

Best regards

Cezar

Success stories like this always make my day 🙂

Thanks to Cezar for sharing, and I hope it inspires others to install the script and get alerted when Google makes (unwanted) changes to the account.

Here’s the link to the free version of the script: https://nilsrooijmans.com/google-ads-script-change-history-alerts/

– Nils

trust

There are many ways to win a client or a job, but there’s one surefire way to lose it: to run out of trust.

There is a Dutch saying that intends to remind people that trust takes time to build, but it can be lost quickly.

Vertrouwen komt te voet en gaat te paard.
(Trust comes on foot and leaves on horseback.)

Here’s my PPC tip for the day: continuously invest in building trust. Here’s how you can do this:

1. Show results (KPIs + numbers)
2. If the numbers aren’t that good, explain your efforts to improve them.

That’s it.

– Nils

PS: Wonder how I show results? Read this: https://nilsrooijmans.com/google-ads-monthly-reporting-script-my-very-basic-version/

newsletter ideas based on your trending search terms – part 2 (fully automated)

Two days ago, I wrote about newsletter ideas based on your trending search terms. (A link to that will be provided below for your convenience).

In the email, I posed a challenge to you:

“…you can automate the ChatGPT part Caterina described as well. Simply extend the script with some code to feed the prompt and trending search terms to the ChatGPT API, and have the script send the email with the 10 newsletter ideas.”

Guess what?

Fellow script fanatic and PPC legend Frederick Vallaeys (Optmyzr) took on the challenge and created the automation for us!

Blog Ideas from Trending Search Terms in Google Ads”

From the script comments:

/*
* The script finds search terms that have at least a minimum number of impressions
* in the past 7 days and have either increased by a specified multiplier compared to
* the previous 7 days or have gone from zero to meeting the minimum impression threshold.
* For the top 5 highest-volume trending search terms, it uses the OpenAI GPT API to
* generate blog post ideas.
* The script then compiles these ideas into an email and sends it to your specified
* email address.
*/

Here’s the link to the script: https://gist.github.com/siliconvallaeys/0527249a7aee382db6360e50e4d7487a

Happy scripting!

– Nils

P.S. As promised, here’s a link to part 1: https://nilsrooijmans.com/daily/newsletter-ideas-based-on-your-trending-search-terms

[Lead Gen] Harsh truth

Here’s a harsh truth for PPC-ers in lead gen:

Ultimately, your success depends heavily on the client’s sales skills.

You can generate all the high-quality leads in the world, but if the client can’t convert leads into sales, you might as well target ads for tanning salons in the tropics.

For converting leads into sales, the landing page matters a lot. However, the speed and sales skills of the person contacting the lead are what really make the difference.

Be sure to measure and optimize.

Measure:
1. The response rate (are all the leads followed up within 5 minutes?)
2. The quality of the lead (spam, irrelevant, or MQL?)
3. How good is the lead-to-sales funnel (are conversion rates what is to be expected based on the quality of the lead?)

Optimize all of the above. 

– Nils

newsletter ideas based on your trending search terms

A fellow member of the list, Caterina Mariani (name shared with permission), posted an interesting use case for one of my scripts last week.

I’ll let her explain below:

I absolutely LOVE reading this because it is THE reason I am sharing these scripts: to empower the PPC community and stimulate others to build something more powerful on top.

Great work and thanks for sharing, Caterina!

Now, in case you are wondering… you can automate the ChatGPT part Caterina described as well. Simply extend the script with some code to feed the prompt and trending search terms to the ChatGPT API, and have the script send the email with the 10 newsletter ideas. 🙂

Here are the scripts to get you started:

Happy scripting!

– Nils

the case for CRO

Once upon a time, there was a PPC freelancer who knew more about the Google Ads platform than all Google Reps combined.

Uhh, wait. Sorry, I meant she knew more than all PPC specialists combined.

Yes. That sounds better.

Every day, she would tinker with all the details in the platform and test each and every setting, as if her life depended on it.

Her nickname was “PPC-pedia.” Every PPC boy knew where to find her if they had any questions on Google Ads.

Her real name was Shadira.

One day, Shadira inherited a Google Ads account which had been managed for 5 years by a decent PPC professional.

His name was Bob.

Bob was good.

Good, but not “PPC-pedia”-level.

Not Shadira. 

Now, it was Shadira’s job to grow the number of leads per month, at a sort-of-similar CPL.

“No problem,” she thought.

Her, being the uber-platform-specialist she is.

And so she went:

  1. N-gramming her way through the SQRs to negate the wasted spend away
  2. Up-QS-ing the top keywords that generated 80% of the clicks
  3. “Enhancing” those conversions to get more data in
  4. A/B-testing ad copy to the point where even David Ogilvy could not come up with better headlines
  5. Ramping up new audiences to target ever more specific and high-converting niches

But still, progress looked like a 90s dial-up connection trying to load the Google Ads UI.

Shadira could not get the account to grow. Not in a profitable manner.

That is, until finally it hit her:

(The numbers are fictional, but the ratios are factual.)

Here’s the thing: no matter how perfectly structured your account is, how well-chosen your keywords and audiences are, and how convincing your ads are, a poorly-designed landing page will cripple your ability to scale the business.

– Nils

[Lead Gen] KWR for High CPC niches

Here’s what I like to do for KWR in High CPC niches (e.g., lead gen) to grow my accounts:

A) Generate a list of the top 10 converting search terms (ideally, SQL/true Sales)

B) Download SQR report for the last X months (make sure the download represents enough data for the currently enabled keywords in your account)

C) Feed A and B to ChatGPT, and ask it to come up with 10 new keyword ideas for which the suggested keyword is not already listed in B

This will give you completely new keywords that aren’t targeted (yet) with your existing keywords.

If you like the approach, here’s how you can automate it: https://nilsrooijmans.com/google-ads-script-automated-gpt-keyword-suggestions/

– Nils

Mastering Performance Max using Google Ads Scripts

Quick question: what exactly does Performance Max maximize?

I’ll let you go first.

You: “Performance Max maximizes my profits.”
Me: “No.”

You: “Ah, I see. I am tracking revenue, not profit. So Performance Max maximizes my revenue.”
Me: “Nope.”

You: “Uhh, OK, then it must be conversions.”
Me: “No, again.”

You: “What? What else is there? Clicks then?”
Me: “No, no, no!”

You: “WTF?!”
Me: “It’s spend. Ad spend. Performance Max maximizes your ad spend, as long as you let it.”

If you are 100% convinced the last statement is complete BS, you can stop reading now and open the next mail in your inbox.

If, however, you are like me and you think it’s an interesting hypothesis worth testing and letting the data speak for itself, then my column on Search Engine Land might be of interest to you.

If you are already convinced it is true, this is your lucky day because we’ve got some interesting scripts to help you stop Performance Max from wasting your money.

Here’s the link again:
https://searchengineland.com/mastering-performance-max-using-scripts-446736

– Nils

[Performance Max] Disable automatically created videos

Here’s a new feature from Google: you can now disable automatically created video assets in PMax campaigns.

It’s a great move by Google, giving us back some more control.

NOTE: It’s not fully live, some accounts don’t show this yet.

If that is you, here’s a nice HACK to prevent PMax from creating videos for you and wasting money on YT: create a video that gets disapproved.

Just use a screenshot of the type of video you only watch in private settings (you know what I am talking about), or create an image that contains the word F#$K (without hiding the letters U and C).

Video gets disapproved, but stays in the asset group -> no more automatically generated video asset 🙂

Many of us have been asking for the option to exclude videos from PMax for a long time.

Let me end this note by thanking Google for finally acting upon feedback from the PPC community.

Here’s another thing we’ve been asking for for a long time: https://www.linkedin.com/posts/nilsrooijmans_googleads-pmax-activity-7242790287285059584-RjnI

Let’s hope this trend continues.

– Nils

[Performance Max] “Any defense to craptastic leads from out of town?”

Here’s a question that popped up in Ed Leake’s GTA community the other day:

“I have a client that has a small local remodeling business. He wants to be on the map ads and I don’t blame him, but the quality of the leads are horrendous.

I’m not just talking about folks that are looking for jobs; we’re getting leads from New Jersey and California BUT the business is in Atlanta, GA.

Is there a way to force PMAX to behave?

Here’s what I responded with:

1. Have you set location targeting to ‘Presence: People in or regularly in your included locations’?  

2. Be sure to create a report via Report Editor that shows the ‘User location’ (different from the Matched locations in the UI that don’t show the real location of users). See details: https://nilsrooijmans.com/daily/matched-location-user-location

3. Next, exclude NJ and CA (and other irrelevant locations) from your PMax campaigns via locations exclusions. (Yes, you can exclude locations in PMax.)

Ed agreed, and added this:

“It is ridiculous that you have to exclude EVERY country, but we often do it just to be safe.”

I couldn’t agree more…

– Nils

PS: It is this kind of knowledge exchange inside the community that makes GTA punch above its weight and deliver a great return on your investment!

If you want to simplify account management, take back control and improve results (or 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

Automate your reporting: this tool allows you to focus on what really matters

Automating Google Ads reports is like teaching a philosopher to code.

Suddenly, you have more time to ponder the bigger questions, like the true ROE (Reason Of Existence) of your Google Ads account.

You can ask yourself questions that (really?) matter, such as:

  • “Why does this audience dance more gracefully with my main KPI than that other group of ad-clicking-tire-kickers?”
  • “What is it that makes this group of best-selling products so special?”
  • “What seasonal trends do I see upcoming in the near future, that I can act upon today?”

Questions that impact your account’s performance far beyond the mere act of compiling reports.

If you agree, meet Swydo.

Swydo is like a Zen garden, automating Google Ads reports and cultivating peace in your workday.

It allows you to contemplate the profound instead of getting lost in the data-gathering and number-crunching weeds.

I’ve found Swydo to offer me huge time savings when it comes to automated reporting:

  • It aggregates data from all the major platforms.
  • It has a very small learning curve (and is easier to implement than Looker Studio).
  • It offers a free plan with a great onboarding service. You can get your specific report running in 20 minutes.
  • It allows for copy-paste templates you can use for each new client.
  • It’s the cheapest solution out there unless you want to spend a lot of time on the plumbing and client setups.
  • It is reliable and robust. Reports go out on time, every time.

Again, their support is amazing; just book a support call via Calendly, and skilled professionals will help you create any report you need.

Yes, my firsthand experience with Swydo support took me by surprise, after numerous calls with other “platform professionals”. (*) 

– Nils

(*): Interested to learn how I handle all the endless calls from Google Reps? If so, hit reply.

PS: If you want a reliable and affordable solution to automate your performance reporting -> sign up for a free trial at: https://www.swydo.com/

When you are happy with the tool and ready to upgrade, mention “NilsRooijmans” during the upgrade to get a $100 discount.

I’d still share these tips without the kickback, but a few extra bucks is nice! Here’s the link again: https://www.swydo.com/

Are you using this useful feature in Google Ads?

Here’s a little-known Google Ads feature that is actually quite useful: campaign-level headlines and descriptions.

Google says:

“Campaign-level headlines and descriptions can be scheduled if you have assets that you want to show during a specific time period. 

Additionally, these assets can be pinned to certain positions if you want to ensure they show

I absolutely love this feature, because:

1. You can easily schedule assets to show across all ad groups inside a campaign. Think: promotional messaging that has a specific start and end date, you can schedule them in advance!

2. It is great for headlines and descriptions that need frequent updating across RSAs. No more manually editing many ads in multiple ad groups when you enable/disable promotions!

Here’s a 9-minute video by our PPC friends from Paid Media Pros that clearly explains this great feature and how to use it:
https://www.youtube.com/watch?v=m35xGQjTFpE (play at double the speed)

If you haven’t used them thus far, I highly recommend checking them out. It only takes 10 minutes and I am sure you will benefit from using them in the near future.

– Nils

[PPC Productivity] Client batching

Here’s a quick and easy productivity win for you:

If you service multiple clients in different industries, group similar clients in your workweek.

For instance: 

  • Monday is the lead-gen day, when I service my lead-gen clients.
  • Tuesday is e-comm fashion day, when I service my B2C fashion clients.
  • Wednesday is coaching day, when I service my coaching clients.

Client batching works because it allows your brain to focus on one type of client strategy and the type of work involved at a time.

No need to let the mind wander off in supplemental feeds when you are working on lead gen clients. Skip the e-comm blog post that popped up in your notifications, etc.

And if you are lucky, coming up with an idea for client A immediately translates into an almost copy-paste strategy for client B that is already open in a second window.

– Nils

[SMX Advanced] Google Ads Audit Workshop

Do you ask yourself any of these questions?

“Is my account in optimal shape?”

“Am I wasting budget on parts that don’t convert?”

“Are all my settings set to the best, and still in place?”

“Am I missing opportunities for significant growth?”

If so, come join me in my SMX Advanced workshop:

Google Ads Auditing (partly automated via scripts)

In this hands-on workshop, we will go over some of the more advanced auditing techniques for Google Ads, that you will immediately check in your account.

We will also automate some of the checks and analyses via scripts. Don’t worry if you don’t have any scripting skills; the scripts will be readily available for you to copy-paste during the workshop.

After the workshop, you’ll be able to impress your potential clients, colleagues, and your boss with unique insights to improve almost any Google Ads account!

Curious?

Here’s a sneak peek of one of the things we’ll cover (based on a post from /r/PPC):

“I have on multiple occasions turned off the Google search partners option, but the next day somehow the option keeps turning back on. Eating up my entire budget with useless leads. Any ideas on why this might be happening and how I can fix it?”

Turns out, it was an auto-apply recommendation setting…

Easy fix: check the recommendations tab and the auto-apply settings.

But here’s the thing: you CANNOT sit back and simply trust Google to apply automations that will benefit your objectives.

Don’t trust, verify!

Verify by testing.

Use scripts to continuously monitor the test data for you.

Here’s one of my favorite examples:

[Google Ads Script] Search Partner Performance Alerts

This script compares the performance of the Search Partners to the Google Search Network.

In case of a significant difference in CPA/ROAS performance, the issue is logged in a sheet and an alert is sent via email. That way you’ll know when Search Partners aren’t performing, and you can opt out of the Search Partner network for these campaigns.

Interested in more info like this?

Sign up for the workshop 🙂

Click here to apply »
https://smxadvanced.eu/workshop/hands-on-google-audit/

(Use discount code ATFPPCP24 to get 20% off the workshop and the rest of the event.) 

Seats are limited. It’s not too late, but it will be soon.

I hope to see you there!

– Nils

PPC hacks to improve your Google Ads

Are you interested in some advanced PPC Hacks to optimize your Google Ads account?

If so, join me and the talented Nadine Maier at SMX Advanced in Berlin.

Here’s a sneaky sneak peek: we’ll be talking all things from budgets to bidding, from audiences to creatives, and from feeds to reporting.

Hack #13:

In the past, we used to run all of my competitor campaigns(*) on manual bidding with a CPC bid to ensure we ranked at the top of the page.

We noticed that it was hard to make these kinds of campaigns profitable because Quality Scores, CTRs, and Conversion Rates tend to be very low compared to the generic keywords in our accounts. This resulted in CPAs that were mostly too high.

Not anymore.

A few months ago, we started testing smart bidding on competitor campaigns and the results are very convincing.

Here’s the data from one of the latest experiments:

(click image to enlarge)

Note that the only difference between the original and the experiment is the bidding strategy. Moreover, search term analyses did not show a significant difference in the types of searches our ads showed for.

What this tells me is that Google’s target CPA bidding learned how to discriminate between clicks from people who are open to an alternative, versus the people who really are looking to buy from the competitor.

Great job Google, smart bidding FTW!

(*) Note: competitor campaigns are campaigns that only contain competitor brand names as keywords.

Want to see more “hacks” like these and learn much more from other PPC professionals?

 –> Get access to SMX Advanced Berlin (10-11 Sep, 2024) !

– Nils

P.S. I’ll also present a Google Ads Audit workshop at SMX Advanced. In this hands-on workshop, we will go over some of the more advanced auditing techniques for Google Ads, which you will immediately check in your own account. We will also automate some of the checks and analyses via scripts.

If you’d like to attend, you can apply below:

Click here to apply »
https://smxadvanced.eu/workshop/hands-on-google-audit/

(Use discount code ATFPPCP24 to get 20% off the workshop and the rest of the event.) 

Seats are limited. It’s not too late, but it will be soon.

I hope to see you there!

Want to use 4 different site links with the same URL?

Have you ever wanted to create multiple site links for a single landing page?

I did. Today.

Today was about all about onboarding a new client for me.

The client (lead gen) offers a single service, on a single landing page.

The problem: Google Ads requires unique URLs for each site link (sometimes, using the same URL gets them disapproved).

The solution? This simple hack from our PPC friend Mykyta Soima: 

PRO TIP: use different UTM parameters to easily track the clicks on the various site links in GA4 and make the URLs unique at the same time.

NOTE: technically, it is against Google’s policy to use site links with the same page content. In practice, I never ran into problems. Use the trick, while we can 🙂

– Nils

P.S. Exactly two weeks from now, I’m presenting a Google Ads Audit workshop at SMX Advanced.

In this hands-on workshop, we will go over some of the more advanced auditing techniques for Google Ads, which you will immediately check in your account. We will also automate some of the checks and analyses via scripts.

If you’d like to attend, you can apply below:

Click here to apply »
https://smxadvanced.eu/workshop/hands-on-google-audit/

(Use discount code ATFPPCP24 to get 20% off the workshop and the rest of the event.) 

Seats are limited. It’s not too late, but it will be soon.

I hope to see you there!

[WARNING] Low activity system bulk changes are coming to your account

Did you know? 

Starting June 10, 2024, Google is rolling out a permanent change that automatically pauses Google Ads keywords that haven’t had any impressions during the last 13 months. 

Last week, many PPC practitioners (including me) saw a ramp-up of this activity in our accounts.

Here’s what that looks like:

(click image to enlarge)

Whether or not pausing low-activity keywords is a good thing is up for debate. However, Google automatically applying this kind of change in our accounts without our consent… that’s something completely different!

Organizing the account is something that is best left to advertisers/PPC practitioners if you ask me.

And it gets even worse: even when you’ve opted out of all the auto-applies, Google will still automatically pause low-activity keywords (and ad groups).

Here are my auto-apply settings:

Now, luckily for me, I run a Google Ads Script that monitors the Change History of my accounts.

The script alerted me of this change, and I could undo the change to make sure I can still promote my workshop using the specific keyword.

Interested in the script?

Go here -> https://nilsrooijmans.com/google-ads-script-change-history-alerts/

– Nils

P.S. Exactly two weeks from now, I’ll be presenting a Google Ads Audit workshop at SMX Advanced.

In this hands-on workshop, we will go over some of the more advanced auditing techniques for Google Ads, that you will immediately check in your own account. We will also automate some of the checks and analyses via scripts.

If you’d like to attend, you can apply here:

Click here to apply »
https://smxadvanced.eu/workshop/hands-on-google-audit/

(Use discount code ATFPPCP24 to get 20% off the workshop and the rest of the event.) 

Seats are limited. It’s not too late, but it will be soon.

I hope to see you there!

Matched location != User location

Last week, I was in Riga.

The friendly people of Marketing Shake invited me for a speaking gig on Google Ads and AI.

The event itself was great. Getting there, not so much.

The morning of the event, the weather was good. 

Google Maps told me it was a 30-minute walk. 

So, I went walking to enjoy the lovely city of Riga. (Beautiful Jugendstil architecture!)

Google Maps pointed me to a spot in an industrial area, the route looked easy, and for some reason, I did not look up the exact location.

Turns out, that exact location was hidden between some big buildings with no clear directions.

Long story short: the 30-minute walk turned into 60 minutes of strolling back and forth in little alleys,  and being almost late for my presentation.

The whole adventure reminded me of how Google Ads is also hiding locations from us — the exact location of the user.

In the distant past, the Google Ads UI had an easy-to-access report called “User locations.” This report would list the physical location of the users that got to see your ads.

That report has been gone.

Now, some of you might think: “Right Nils, but we’ve still got the ‘Matched locations’ report under ‘Insights and reports’-> ‘When and where ads showed’, right?”

Yep, very true.

BUT, here’s the thing: matched locations do NOT show you the physical location of the user. 

Matched locations show your performance based on the locations that matched your ads. These locations could be users’ physical locations or locations of interest.

For example, you target a keyword [hotel Riga] in a campaign that geo-targets the Netherlands. If someone in Amsterdam searches for “hotels in Riga,” Riga would show as the ‘Matched location’.

But then, how do you see the user location ‘Amsterdam’?

That is no longer a default report inside Google Ads.

For that, you have to create a custom report via Report Editor.

Here’s what that looks like:

(click image to enlarge)

Notice the difference in performance between the different User locations?

It might be interesting to update your location targets, maybe exclude some locations (especially for PMax), and/or change some advanced geo targeting settings.

Now, go grab a coffee and create this User location report for your accounts. 

It only takes 5 minutes and the insights might surprise you!

– Nils

Why waste time on reporting?

Once upon a time, PPC Peter worked at an agency that served 100+ clients with a team of three PPC specialists.

Every day, Peter worked his PPC magic: routinely adjusting budgets, tinkering with some CPC bids, putting in one or two (negative) keywords here and there, adding a few exclamation marks in headlines, and throwing in some audience targeting where suits fit.

His tasks took little time, and little energy.

And even when he skipped a beat, no one ever noticed.

His salary was decent. 

Life was good!

That is, until his boss added this extra task: “Send out detailed monthly reports to all of our clients, on day 1 of every month!”

Suddenly, Peter’s life changed.

No more 1.5-hour lunch breaks.

No more stress-free evenings with the 5-year-olds.

No more practical jokes in the coffee corner.

Life was work!

At least, until Peter took “my” advice below.

In PPC, question everything (especially when it comes to reporting).

1. “Why do we need to send reports?”

2. “Why do we report these things we report?”

3. “Why do we manually create these reports?”

I love asking these kinds of questions (and they are easy to ask).

Answering them is not that easy.

However, based on many, many question-answering first-second-and-third dates, I can tell you:

Almost, almost, never is spending your time on creating reports the best use of your time.

The reporting itself doesn’t change anything in the accounts.

As for new insights gained from reporting… that’s a different story.

And conversations about these insights? Yes, they create value for sure!

Here’s the thing: if you truly need to send out reports, you want to spend as little time as possible on the task of creating the report.

You want to spend time on the new insights.

If you agree, here’s your go-to solution: Swydo.

I’ve found Swydo to offer me huge time savings when it comes to automated reporting:

  • it aggregates data from all the major platforms
  • it has a very small learning curve (and is easier to implement than Looker Studio)
  • it offers a free plan with great onboarding service (you can get your specific report running in 20 minutes)
  • it allows for copy-paste templates you can use for each new client
  • it’s the cheapest solution out there unless you want to spend a lot of time on the plumbing and client setups
  • it is reliable and robust (reports go out on time, every time)

Don’t get me wrong, I still think you should question the purpose (the “Why”) of reporting first. 

However, if you decide there is a purpose, Swydo is a great tool to get it done for you. Quickly, and easily.

– Nils

PS: If you want a reliable and affordable solution to automate your performance reporting -> sign up for a free trial at https://www.swydo.com/

When you are happy with the tool and ready to upgrade, mention “NilsRooijmans” during the upgrade to get a $100 discount. 

Note: I’d still share these tips without the kickback, but a few extra bucks is nice!

Here’s the link again: https://www.swydo.com/