a tool to easily add typos to your (negative) keywords

Here’s a handy tool I just came across: http://tools.seobook.com/spelling/keywords-typos.cgi

What it does: it creates a list with the most common typos for your (negative) keywords.

Why you’d care:

1. Negative keywords don’t do close variants; you’ll have to add each and every frequent typo to prevent your ad from showing.

2. To prevent PMax from hijacking your brand traffic, adding typos to your brand campaign and/or PMax negative keyword lists is a must.

PRO TIP: Create a script that automatically adds close variant search terms as new keywords to your branded campaign. This will prevent PMax from taking priority for these searches. In theory, at least.

– Nils

a glimpse into our AI scripting future

I just asked GPT-4 to create a Google Ads Script for me.

The script it created first pulls the performance labels for the headlines and descriptions of my RSAs.

It then calls GPT-3 to ask it a general question on how it can improve headlines and descriptions of RSAs.

The script then takes this answer from GPT-3, combines it with the current assets and their performance scores, and then asks GPT-3 to create new headlines and descriptions for the ones that had a ‘LOW’ performance score… based on what it had just learned (from itself) on how to improve headlines and descriptions.

I had to fiddle with the prompts a bit and do some tweaking of the final script to get it to work, but GPT-4 was able to almost completely write the script itself.

Also, I would say the quality of new headlines and descriptions wasn’t top notch, yet definitely good enough for most of the accounts I’ve seen in my lifetime.

I am still working on the prompts, as they are not ready for prime time yet. Stay tuned for more…

– Nils

P.S. Want to finally get started writing your own Google Ads Scripts? If so, I’ve got good news for you!

If you can read English, you can create your own Google Ads Script.

In my Google Ads Scripts for Beginners workshop, you will learn exactly what to do to get your very own script running in your account. In ONE DAY.

Places are limited. Reserve your spot now: https://nilsrooijmans.com/google-ads-scripting-workshop-for-beginners/

I hope to see (and hear) you there!

my favorite filter to reduce wasted ad spend

Here’s my favorite way to manually reduce wasted ad spend:

1. Go to the search term view at account level 
2. Create filter (clicks > 100 AND conversions < 1)
3. Save filter
4. Revisit the filter at least once every month

And there’s your list of potential negative keywords! 

Simply add the negative keywords to your account and gone are those clicks that go nowhere.

PRO TIP: have a script automatically monitor your search terms for you, and have it send an email alert every time a search term matches your filter(s).

– Nils

P.S. Have you ever thought about creating your own Google Ads Script but gave up on the idea?

I’ve got good news for you!

If you can read English, you can create your own Google Ads Script.

In my Google Ads Scripts for Beginners workshop, you will learn exactly what to do to get your very own script running in your account. In ONE DAY.

Places are limited. Reserve your spot now: https://nilsrooijmans.com/google-ads-scripting-workshop-for-beginners/

I hope to see (and hear) you there!

playground

Finally, we’ve had some fresh snow this weekend!

Today, it will mostly be off-piste skiing for me.

Off-piste skiing in fresh powder is a completely different game compared to on-piste skiing. Different snow, different skis, different techniques.

It feels like I need to start from scratch and re-learn everything.

Back to school.

The mountains are a playground, with new attractions, and new challenges every day.

That’s what makes skiing so much fun, I guess — the constant challenge of improving myself.

Being able to make the most out of every situation.

Here’s the thing: as PPC professionals, Google Ads is our playground — a constantly changing environment in which to experiment, test, and learn from mistakes, leading to higher ROI.

That’s what makes it so much fun, I guess.

– Nils

Google Merchant Center feed rules – an advanced little trick

Feed management… A necessary evil for all retail advertisers who want to advertise on Google Shopping.

A big gear grinding time sink when you are doing things manually.

Luckily for us, Google Merchant Center has the option to use ‘feed rules’ to do some of the heavy lifting. And the so called ‘custom attributes’ allow for some advanced logic!

Here’s a great video that explains how you can use ‘custom attributes’ to use all available operators in the rule engine.

Great nerdy stuff to automate your way to PPC success!

“When creating feed rules In Google Merchant Center, not every attribute allows you to use all operators. For example, custom labels do not allow you to use price-based operators such as calculate.
 
So setting custom labels based on pricing will not be possible. However, you can set up custom attributes (not to be confused with custom labels) which allow you to use all available operators. Then assign your custom attribute, on a custom label.
 
In this video I explain all the steps with an example.”

LINK: https://support.google.com/google-ads/community-video/205469365/how-to-use-all-operators-in-google-merchant-center-feed-rules?hl=en

– Nils

[Chrome Extension] “Add as Keyword” Match Type Helper

Adding relevant search terms as new keywords in your account is a great way to grow your account.

The data in your search term reports is a gold mine for just that. Simply go into your search term report, find relevant search terms for which you would like to get more clicks, and add them as a keyword.

But here’s the thing: when you decide to add the keyword Google now defaults to making that keyword Broad match. 

There used to be a dropdown match type selector where you could choose to make that added keyword Exact, Phrase, or Broad match before adding the keyword to your ad group. Google removed that match type selector and now you have to manually add the Exact or Phrase syntax which means extra, repetitive work.

We don’t like. 

Luckily for us, this Chrome extension solves the issue by giving you the ability to:
– Select the match type per keyword when adding matched search terms
– Change the match type for all matched terms before adding, in bulk

WIN: Time savings AND reduced risk of making mistakes when trying to manually add the match type syntax.

Here’s the link: https://chrome.google.com/webstore/detail/google-ads-add-as-keyword/lohkmkohhglpgndcmobnpiekmkobgdkp

Go ahead and try it right now, it only takes 2 minutes!

– Nils

Here’s what ChatGPT thinks about its role in PPC

Many of you asked me how ChatGPT would change our jobs and how we can use it to make our jobs easier. 

And, of course, many of you want ChatGPT to create scripts for you. (Good news: you can! More on that later.)

For now, I decided to ask ChatGPT itself.

Here’s my prompt:

“Imagine ChatGPT as a real-time collaboration tool for PPC professionals, enabling them to brainstorm, strategize, and optimize Google Ads campaigns with AI-generated insights and suggestions. Describe the dynamics of this AI-human collaboration.”

And here’s what it came up with:

ChatGPT could serve as a real-time collaboration tool for PPC professionals, revolutionizing the way they brainstorm, strategize, and optimize Google Ads campaigns. By integrating AI-generated insights and suggestions, the dynamics of this AI-human collaboration would create a seamless and efficient workflow that enhances productivity and results. Here’s how this collaboration could work:

1. Continuous Improvement: The AI-human collaboration would create a feedback loop, where ChatGPT learns from the PPC professionals’ decisions and outcomes, continuously improving its suggestions and insights over time. This would lead to a more productive and effective partnership.

2. Seamless Integration: ChatGPT would be integrated into the Google Ads platform or other project management tools used by PPC professionals, allowing them to easily access AI-generated insights and suggestions within their existing workflow.

3. Dynamic Brainstorming: As PPC professionals discuss and brainstorm ideas for campaigns, ChatGPT would actively participate by suggesting keywords, ad copy, targeting options, and bid strategies based on its extensive knowledge and real-time analysis of campaign data.

4. Real-time Analysis: ChatGPT would continuously monitor and analyze campaign performance, identifying patterns and trends that may be affecting results. It would then provide actionable recommendations for adjustments and optimizations to improve the campaign’s performance.

5. Instant Feedback: PPC professionals could consult ChatGPT for instant feedback on their ideas and strategies, enabling them to make data-driven decisions and quickly iterate on their campaign designs. This would help to reduce time spent on trial and error and improve the overall efficiency of the campaign development process.

6. Personalized Learning: ChatGPT would learn from each PPC professional’s unique preferences, working style, and campaign history, enabling it to provide tailored insights and suggestions that align with their specific needs and goals.

7. Cross-team Collaboration: By serving as a central hub for campaign discussions and ideas, ChatGPT would facilitate cross-team collaboration and knowledge sharing among PPC professionals, designers, and copywriters, leading to more cohesive and effective campaigns.

8. 24/7 Support: ChatGPT would be available around the clock, offering PPC professionals constant support and guidance in managing their Google Ads campaigns. This would help reduce stress and workload, enabling professionals to focus on more strategic tasks.

In summary, by incorporating ChatGPT as a real-time collaboration tool for PPC professionals, the dynamics of AI-human collaboration would lead to more efficient brainstorming, strategizing, and optimizing of Google Ads campaigns. This partnership would not only improve campaign results but also enhance the overall workflow and productivity of PPC professionals.

What do you think?

– Nils

PS: I am considering giving a workshop that teaches you how to use ChatGPT to create scripts for you. If you’re interested, send me an email at nils@nilsrooijmans.com.

WARNING: Your existing scripts might be off the rails

Here’s a pretty common situation in today’s Google Ads Scripts environment: You’ve had a script running smoothly for months or even years. You’ve changed nothing in the script. Yet, at right this moment, the script fails because of “Stopped due to timeout”.

I’ve seen this issue appear in multiple accounts.

The root cause is unknown to me, but it almost certainly has something to do with Google quietly migrating your old scripts to the new environment.

There’s no error in the code. The script just times out.

Here’s the thing: If you do not check your script execution logs, you might not spot this issue and your scripts won’t run!

My current solution: Simply create a completely new script, copy-paste the code from the old script into the new one, and test again.

Most of the time it works without the need for any further debugging.

Happy scripting!

– Nils

PS: If you run into other scripting issues that are a bit more complex, my Google Ads Script Support Call might be just for you. Here’s the link: https://nilsrooijmans.com/google-ads-scripts-support-call/

a cognitive perspective

PPC is a numbers game.

But also it isn’t.

Sometimes we need to step back and take a different perspective.

Your ad impression creates a user perception that creates a sensation.

The way that sensation is interpreted determines the outcome of a decision. A decision to click, or not to click.

The next desired action, the conversion, is a leap of faith and requires trust.

– Nils

little secret PPC productivity hack

Did you know?

In Google Ads, you can hold ‘SHIFT’ and press ‘A’ to jump up to the “whole account” level while staying on the same view.

I like to use this shortcut when I am looking at search terms within one campaign, and then quickly want to check how a search term performs in the whole account.

Here’s a list with some more shortcuts to improve your PPC productivity:

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

– Nils

[Google Ads Script] Change History Alerts

Change happens.

Some changes are good. Other changes… not so much.

Occasionally, some of the most terrible changes pop up in your change history.

And the worst thing… they do so without you noticing!

Remember that last client of yours? That stubborn, overly self-confident, ego-driven maniac? He decided he knows best. Made some “minor” changes to your carefully optimized account. All by himself. Changing ad copy, reducing test budgets, and adding non-brand keywords to your BRAND campaign… the horror.

Or maybe that overly ambitious intern who joined your team last week… Negating keywords all over the place!

And let’s not forget the worst of the worst — your colleague accidentally hitting the ‘Apply’ button next to one of Google’s Recommendations. 

Oh dear.

Here’s the thing:

It is _your_ job to manage and optimize your account. Therefore _you_ want be in the know when someone else makes any unanticipated change. And you want to know _immediately_!

Thankfully, there’s a script for that.

Today, I am sharing a stripped-down version of one of my favorite scripts in my private stack:

Change History Alerts

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 people outside your team 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

PS: Want to learn how to create scripts like this from scratch? 

Sign up for my next “Google Ads Scripting Workshop for Beginners” (scheduled for early June 2023).

GPT and PMax

GPT-5: Can perfectly build a website from simple wireframes.

GPT-6: Can build and run a company. 

GPT-7: Passes Turing test.

GPT-8: Overthrows world governments and expands into space.

GPT-9: Fails to understand how PMax is supposed to work, gives up, and resorts to standard campaigns.

– Nils

Google just updated the best script I’ve ever used

“What is the best Google Ads Script you have ever used?”

Ugh… if only I got a penny every time someone asks 😉

Although I have many, many favorite scripts in my arsenal and they are all very useful, there is one single clear winner for me. 

It is the script I install the first day when taking over a new account. It is also a great way to finally get started using Google Ads Scripts.

I’m talking about a script that automatically alerts me if any of my landers are broken: the Broken Link Checker script, published by our friends at Google.

If you want to read more about what makes this script my favorite, go here: https://nilsrooijmans.com/the-best-adwords-script-i-have-ever-used/

This note is just to update you about the fact that Google has updated the script to be more efficient, especially with sitelinks.

So, stop wasting ad spend on clicks that go nowhere!

Go copy-paste and install the script. It only takes 5 mins.

– Nils

Questioning recommendations (Part 2)

Yesterday, I ranted about Google Recommendations. (A copy of it is provided below for your convenience.)

I also asked my subscribers to think about what happened and why. The response has been crazy (thanks for your enthusiasm!). Many of you wanted to know the details, so with your permission, today, the rant continues.

Here we go.

The new client is leadgen for SaaS business.

Sort of Salesforce, but different (and much smaller).

Let’s say the brand name is PowerDeals. (In reality, it’s a hard-to-remember, impossible-to-spell, crazy-web2.0-startuppish name that doesn’t have any meaning whatsoever.)

Now, in the before situation, my client had a brand campaign with a few exact match keywords on manual bidding.

Think:
[powerdeals], CPC bid: 1
[power deals], CPC bid: 1
[powerdealz], CPC bid: 1

Then, the friendly Google Rep came along with his wisdom straight from the big G Oracle’s mouth.

After implementing the Google recommendation, my client had a brand campaign with broad keywords on smart bidding (target impression share).

Here’s _what_ happened:

Ad spend for the brand campaign tripled, cost per lead increased 80%. Ad spend for the total account increased by roughly 10%.

And the worst part? The overall number of leads in the CRM system didn’t increase _at all_.

Here’s _why_ that happened: 

The combination of broad match and smart bidding opened up the campaign to a whole bunch of user queries that were either:
A. completely irrelevant for lead generation (thus low conversion rates),
B. very competitive (thus high CPCs), or
C: already generating most potential clicks via organic listings (most important)

This is best illustrated with some examples from new search terms in the SQR:
1) powerdeals login, avg CPC: 1.03
2) powerdeals support, avg CPC: 1.68
3) powerdeals crm demo, avg CPC: 12.62

Number 1 and 2 explain why the cost went up, but number of conversions did not. These types of queries generally do not generate new leads. 

Number 3 explains why the avg CPC of the campaign, and the cost, went through the roof. The auction for this user query is probably bursting at the seams, with competitors bidding like crazy for the “crm demo” keyword. But hey, we told the smart bidding to target a 100% impressions share, right?

The broad match keyword combined with high CPC bid from the target impression share bidding made this new brand campaign eligible to show ads for “powerdeals crm demo”, whereas before the old brand campaign could not.

NOTE: Before implementing Google’s suggestion, people would click on organic search listings, not on the paid ads. Our client wasn’t paying for this kind of traffic (very warm clicks with high conversion rates).

(To be fair, there were competitors showing ads where my client was not, but since the user explicitly searches for a CRM demo _from PowerDeals_ my guess is that they’re relatively likely to scroll down and click on the organic link.)

So, I think it is worth repeating:

Always question each and every recommendation a Google Rep or the Google algorithm makes before you apply.

When in doubt, follow the ABT mantra:

    Always
    Be
    Testing

– Nils

PS: For those of you who missed it, here was part 1: https://nilsrooijmans.com/daily/questioning-recommendations

Questioning recommendations (Part 1)

True story: One of my coaching clients was running a nicely separated brand campaign. Exact match keywords for the brand name and some popular typos. Manual CPC bidding.

Then, a Google Rep came along.

“Hey, why don’t we switch to broad match and automated bidding to increase leads and make sure no competitor will outrank you?”

“Sure, that sounds great!”

And so it went. 

The carefully-selected brand keywords all switched to broad match, and bidding switched to “Target impressions share” (without Bid Limit!).

The result?

Ad spend for the brand campaign tripled, cost per lead increased 80%. Ad spend for the total account increased by roughly 10%.

And the worst part? The overall number of leads in the CRM system didn’t increase _at all_.

Remember: It’s Google’s job to make money for its shareholders. It’s your job to make money for your client.

Always, ALWAYS, question each and every recommendation a Google Rep or the Google algorithm makes before you apply.

– Nils

Google just announced one of the most significant changes in a long time

ICYMI: Google is changing from their last non-direct click import from GA4 to Google Ads to full cross-channel conversion credit import.

This is HUGE if you are using Analytics imported conversions as your primary conversions in Google Ads.

Here’s the announcement:

Here’s a great explanation and discussion on LinkedIn, posted by Frederik Boysen:

“Let’s start by mapping out a typical buying journey:

On Day 1, a customer makes a Google Shopping search, clicks to shop and sees the product, but does not buy. On Day 3, the customer clicks on a Facebook retargeting ad and makes a purchase.

Google Analytics 4 last non-direct click import (before):

As Google Analytics used a last non-direct click attribution model, Facebook was credited with 100% of the conversion value in this journey, since it was the last click before conversion. When importing conversions from Google Analytics into Google Ads, this conversion would not appear inside Google Ads as it wasn’t the “last non-direct click” in Google Analytics.

Google Analytics 4 full cross-channel conversion credit import (soon to be released):

With this upgrade, full cross-channel conversion credit will now be imported into Google Ads (even if the last non-direct click was not Google advertising). This means that now Google ads can get a fraction of the value and conversion attributed in Google ads – let’s say you are using a linear model – Google will get 0.5 conversion and 50% of the conversion value for this journey.

It is hard to gauge the exact impact until we see how it is implemented in action; however, I believe the new funnel cross-channel import is invaluable for reporting, and will give you a more accurate representation of conversion value when it includes the impact of other channels. It will also make it possible to identify huge gaps in the values tracked by Google Ads vs GA4 cross-channel credit product/ads, and adjust bids/changes accordingly.

That being said, GA4 tracking still has its flaws compared to Google Ads tracking;

Here are some differences:

GA4: Does not track view-troughs for networks like display or Youtube while Google ads tracking can.

GA4 does not have built in cross device identification, so you need user IDs, while Google ads tracking use logged-in user data to identify users a cross device and also have Enhanced Conversion to track and identified users across device with hashed first-party data.

GA4 is unable to provide full server-side tracking unless a script fires, while Google Ads offers complete server-side tracking with offline conversions click import which bypasses ad blockers and is collected on the server level.

These factors play an integral role in optimizing performance as they determine what data is received by bidding algorithms used by Google ads – This means that Google Ads tracking will still my preferred choice for bidding (Primary). But GA4 import will properly be my preferred choice for reporting.

Link to original post: https://www.linkedin.com/posts/frederik-boysen-607ab444_ppcchat-googleads-activity-7044033395730837504-SBqg

– Nils

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

Last month, I sent out an email requesting my newsletter subscribers to participate in this year’s PPC Salary Survey.

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

Data like this gives us PPC peepz some bargaining power!

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

Today Duane shared the results. Here you go:

PPC Salary Survey 2023 Final Report: https://www.reddit.com/r/PPC/comments/11xi72k/ppc_salary_survey_2023_final_report/

– Nils