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

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