new ‘EU political ads’ campaign setting

I just came across this new ‘EU political ads’ campaign setting in Google Ads:

Google says:

“Starting this month, you will be asked to declare if you intend to run political advertising targeting the EU in your Google Ads campaigns. 

Campaigns with a declaration of “yes” will not be permitted to serve ads in the EU, per Google policy.”

Here’s what I know at the moment based on (very little) Google documentation:

  • All newly created campaigns need to self-declare this setting
  • All existing campaigns that do not have this setting specified will continue to serve
  • All campaigns that indicate “Yes, this campaign has EU political ads” will stop running as of September 22.
  • Before you can make changes to Location targeting in existing campaigns, you need to self-declare this setting
  • Before you can create a Draft/Experiment for an existing campaign, you need to self-declare this setting

In some of my accounts, the campaign settings tab already shows this setting (not all accounts yet).

Unfortunately, I do not see this setting at the level of the account, and Google Ads Editor V2.10.2 does not show this setting for me 🙁

What do you think? Do we need to specify this for all individual campaigns via the Google Ads interface? 

If so, you bet I’ll try and script this for us!

– Nils

conversions with cart data — my preferred setup

If you’ve recently seen the warning “Conversions with cart data need attention,” you’re not alone.

Google recently added this check to the conversion diagnostics tab. A good thing, if you ask me.

If you do not know what ‘conversions with cart data’ entails, read this: https://support.google.com/google-ads/answer/9028254

Here’s my preferred way to set it up properly:

1. Add product-level sales data to the dataLayer on the order confirmation page.

Here’s an example:

window.dataLayer.push({
       event: "purchase",
       transaction_id: "20250829_002",
       value: 16.20,
       items: [
         {
           id: "123abc"
           item_id: "123abc",
           item_name: "World’s Smallest Speedo",
           item_category: "Apparel",
           item_category2: "My Favorite Swimwear",
           coupon: "LOOK-AMAZING",
           discount: 2.20,
           price: 9.20,
           quantity: 2
         }
       ]
      });

Note how I’ve added both the ‘id’ and ‘item_id’ to the items in the ‘items’ array. This is because for GA4 or Firebase as a conversion source, you need ‘item_id’ — and when using Google Ads as the conversion source, you need to use ‘id’. 

Make sure the ID value matches the product IDs in your merchant center.

2. Use Google Tag Manager with Google Ads Conversion Tracking tag template to send the data on the purchase event.

3. Add cost_of_goods_sold attribute in your GMC product feed to allow for profit tracking.

That’s it.

– Nils

[AMA] “How Often Do You Monitor Your Conversions?”

Here’s a question I saw on Reddit today:

“How Often Do You Monitor Your Conversions?”

Below was my response.

I like to perform different checks at different intervals. The number of ‘conversion tracking checks’ on my list is quite large (>100). I’ll limit my response to the most important ones.

The intervals for repeating the checks vary between the accounts, with the intervals based on the size (monthly spend) of the account; bigger accounts have higher frequencies.

Here’s my typical conversion tracking monitoring for an account that spends between 10k and 50k per month.

QUARTERLY

  1. Check if all important user behaviors and conversions are being tracked (i.e., purchase, begin checkout, add-to-cart, MQL, SQL, Prospect)
  2. Are there any custom goals, or should there be? Are they used correctly by the campaigns?
  3. Count setting: how many conversions are being counted (one or all) per click/interaction, and is this correct?
  4. Are the click-through, engaged-view, and view-through conversion windows set to the right values that match the user journey and sales cycle?
  5. Is consent mode (V2) implemented properly?
  6. Are ‘enhanced conversions’ configured correctly? (Pro tip: use separate conversion actions with and without enhanced conversions to measure the uplift)
  7. Is Google’s conversion modelling working?
  8. Has the new_customer variable been configured so campaigns can be segmented based on new vs. returning customers?
  9. Are website redirects dropping conversion tracking parameters (i.e., UTM, GCLID, gad_source)?
  10. Does it make sense to implement Custom Variables in your tracking? If so, is it set up correctly?

MONTHLY

  1. Are the most important conversion action(s) used for bid optimization and reporting (primary), and less important conversion action(s) for observation (secondary)?
  2. Do the conversion actions’ repeat rates make sense? 
  3. Are you submitting unique transactionId’s for each conversion? (check for duplicate conversions via filters clicks =1 , conversions >1)
  4. No duplicate tracking (same conversion being tracked by two or more primary conversion actions)? 
  5. Do the conversion goals have the right value assigned to them (fixed or variable, depending on goals)?

WEEKLY

  1. Does the diagnostics tab show any issues?
  2. In case of OCI, is the status of the uploads okay?
  3. (*) Any significant increase/decrease in the number of last week’s conversions that deserves further attention (i.e., last week’s number of conversions deviates from the mean by more than 2 times the standard deviation)

DAILY

  1. (*) Any significant increase/decrease in the number of yesterday’s conversions that deserves further attention (i.e., yesterday’s number of conversions deviates from the mean by more than 2 times the standard deviation) 

HOURLY 

  1. (*) Is conversion tracking still up and running? Check for non-zero conversions in the last 

NB: I’ve automated the checks indicated with an asterisk (*) via scripts. I’ll share a free version tomorrow. Hit reply if interested.

– Nils

PS: I’ve decided to try and help some more PPC friends by answering questions via an ‘Ask Me Anything’ each Wednesday. If you’ve got a question to which my answer would benefit a larger part of the community, send it my way, and I’ll try to answer it 🙂

why I absolutely LOVE account audits, or, get paid to learn new skills

Some people collect stamps. I collect hidden insights from audits.

Audits aren’t work. They are advanced PPC classes that make you money.

At least, that’s how I approach them. 

Every two months, I like to perform one (paid!) in-depth account audit to sharpen my PPC skills.

Paid-for account audits allow you to spend time on the nitty-gritty details inside Google Ads that you’d otherwise ignore because of a lack of time.

You basically get paid to learn new skills.

Over the years, I’ve collected hundreds of learnings from over fifty in-depth audits in an audit checklist that currently holds over 650 (!) checkpoints.

Yes, that’s a lot. Also, a lot of work is required to perform an audit like that.

Unless, of course, you automate parts of the work with scripts 🙂

But most importantly: you create a ton of value, both for you and the client!

Here are some examples of lesser-known things I’ve recently added to my Google Ads Account Audit Checklist:

1. For advertisers in the EEA, is price transparency enabled? 
See https://ppcnewsfeed.com/ppc-news/2024-03/price-transparency-in-account-settings/

2. Is the account using a tracking template or a final URL suffix? If so, is it set up correctly and not wrongly overwritten by settings at the level of individual campaigns?
See https://support.google.com/google-ads/answer/7197008

3. Are you using Ad customizer attributes? If so, are they configured correctly for RSAs? 
See https://support.google.com/google-ads/answer/11559470

4. Are you using Brand lists? If so, have the brand(s) been recognized by Google?
https://support.google.com/google-ads/answer/13721847

5. E-commerce remarketing tag: do the remarketing parameter IDs match the product IDs in Google Merchant Center?
See https://support.google.com/google-ads/answer/7305793

– Nils

PS: Want to see more checks like these and how I use scripts to audit Google Ads accounts?

Join me for my talk at AdworldExperience (Bologna, Oct 2) titled ‘Little-known tactics to audit your Google Ads account’

Register via https://www.adworldexperience.it/en/?affiliates=143 and use promo code ‘cooler10’ to get a 10% discount.

“Les vacances sont finies!” (or, getting back to routines)

“Les vacances sont finies!” 

It’s what my mother used to say every year after the traditional three weeks of 
croissants, baguettes, and barbecues in “la douce France.” 

It was her way of telling me this: “Get back to your school routines!”

Well, les vacances sont finies!

So, here I am getting back to my routines, including:

1. Writing my daily emails, starting today 🙂
2. My monthly account audits (more on that tomorrow)
3. Automating my PPC routines

One of the PPC routines I like to automate is checking for keywords that show Quality Scores that could be easily improved.

Here’s the script to automate that often-overlooked task:

Quality Score Components Checker

URL: https://nilsrooijmans.com/scripts/QS-Component-Score-Checker.txt

What it does: 

The script checks all the serving keywords in your search campaigns for their Quality Score component scores.

If the keywords have had at least (1) the minimum number of impressions and cost, AND (2) a low score for the ‘Ad Relevance’ or ‘Landing Page Experience’ component, it is reported in a Google Sheet. 

If there are keywords reported in the sheet, the script will also send a link to the report via email.

Why you care: 

The Quality Scores of your keywords reflect your ad quality. Ad quality is an estimate of the experience that users have when they see your search ads and the quality of their experience once they reach your landing page. Higher ad quality generally leads to better performance, including better ad positions and lower cost. Thus, improving ad quality and monitoring your Quality Scores can save you buckets of coins!

How I use it:

Personally, I restrict my Quality Score optimization efforts to a very limited set of keywords for which optimizing the QS is: 

A) making a significant difference (in number of clicks and/or average CPCs), and

B) easy to do

In practice, this means that I only look at keywords with significant cost (>$100 per month) and a below-average score for either the ‘Ad Relevance’ or ‘Landing Page Experience’. These components can easily be improved, often resulting in 10%-15% lower CPCs, whereas the ‘Expected CTR’ component is much harder to optimize.

Now get back to your routines, install the script, and start optimizing your accounts!

Installing the script only takes 5 minutes.

– Nils

PS: This script is part of the collection of scripts in my e-Book “21 Must-Have Google Ads Scripts.” Grab a copy if you enjoyed it!

[e-commerce] why your feed’s product_type should have meaningful values

Did you know that Google’s smart bidding transfers “learnings” about the predicted conversion value of clicks on product A to other products that are similar to A?

It does.

And that’s a good thing.

Here’s one of the reasons this is important: imagine a scenario where over 20% of your campaign’s conversions are generated via clicks on best-selling products that recently went out of stock.

 This can be a HUGE challenge for Google’s smart bidding:

  • It has learned to predict the conversion value of clicks on these best-selling products, sending them more clicks, and generating more conversion data that it can use to update its models. However…
  • Now that these products are out of stock, it can’t send clicks to products for which it has high confidence in high conversion values. It first needs to recalibrate by gathering more conversion data for the other products for which it doesn’t have the same level of confidence in its predictions yet.
  • This recalibration can potentially inflate predicted conversion values for clicks on the other products that are still in stock.

Result: your ROAS will (temporarily) fluctuate like the stock market after a Trump tweet, and potentially be waaaaaaaay below your target.

Not good.

Google’s smart bidding sort of tries to anticipate scenarios like these by “transferring” learnings about the conversion value of clicks on product A to other products that it thinks are similar to A.

“Similar”? 

Yes, Google’s smart bidding uses deep neural networks that “embed” products in a multi-dimensional space where it “groups” similar products together.

This embedding process uses the values of the attributes in your product feed. Think Google Product Category, Brand, Color, Gender, Price Buckets, and… Product Type!

Here’s the thing:
To better enable Google’s smart bidding algorithms to handle the transfer of “learnings” from out_of_stock products that had good performance to other “similar” products, we need to improve the value of the attribute ‘product_type’ in the product feed to allow Google to make better judgments about product similarity. Accurate, descriptive product_type attributes allow Google to make better embeddings that allow for better generalizations.

Here’s what Google says:

Here are some useful guidelines on how to improve the effectiveness of key Smart Bidding signals in your Shopping campaigns:

[…] Categorizing your products in 3 to 5 levels via the attribute ‘product_type’ following an arrangement similar to your website will help improve your impression share. (Nils: and predicted conversion values)

SOURCE: https://shoppingsolutions.withgoogle.com/expertise/smart-bidding/

Don’t let bestsellers that go out of stock ruin your campaign performance. Help Google match them to similar products via descriptive product_type attributes!

– Nils

PS: If you are nerdy like me and like to scan scientific papers that describe these mechanisms, here’s a good read: https://storage.googleapis.com/gweb-research2023-media/pubtools/6407.pdf

[Google Ads Script Review] Monitor Bestsellers’ Status

Hana Kobzová, a fellow member of the list and Google Ads Scripter, recently shared an interesting script.

What it does:
This script monitors the availability and approval status of a list of (best-selling) product IDs in your Merchant Center. If any of the products in the list run out of stock or get disapproved, you will receive an email alert.

Why you’d care:
For most e-commerce shops, over 80% of revenue is generated by less than 10% of the products. When a significant amount of these products runs out of stock or gets disapproved, you will immediately see a drop in conversions. What’s even worse, smart bidding might start spending high CPCs for other products that don’t have sufficient conversion data to reach your tROAS yet -> less conversions, lower ROAS. You want to be in the know when your most important products have issues! This script makes sure you do.

Why I like it:
The script is easy to understand and relatively basic, yet creates a lot of value and can easily be expanded with additional features.

URL: https://ppcnewsfeed.com/blog/product-monitoring-in-google-merchant-center/

PRO TIP:
Ask your favorite LLM to expand the script to dynamically create the list of best-selling product IDs for you. That way, you won’t have to add and update the product IDs in the code yourself. 

Happy scripting!

– Nils

PS1: Want to learn how to use LLMs to edit and create a Google Ads Script for you? 

Join me for my SMX London workshop ‘Google Ads Scripting with AI for Beginners’ (Sep 17), or SMX Advanced Berlin ‘Advanced Google Ads Scripting & AI’ (Sep 29)

Register by 1 August to save up to £200, and if you use the code ‘Nilshms15’, you get an extra 15% off!

PS2: Want to learn how I use scripts to predictably scale profitable growth in e-commerce accounts?

Join me for my talk at AdworldExperience (Bologna, Oct 3) titled ‘Advanced Google Ads Scripts for e-Commerce’

Register via https://www.adworldexperience.it/en/?affiliates=143 and use promo code ‘cooler10’ to get a 10% discount.

[Updated Google Ads Script] Fetch Google Shopping Feeds Every Hour of the Day

Today, I worked from one of the oldest rooms in the Boston Public Library — Bates Hall in the McKim building.

Designed by Charles Follen McKim, it was the first large free municipal library in the United States. It features stunning Renaissance Revival architecture and murals by John Singer Sargent.

There’s also an inscription carved over the entrance: “Free to All.”

The whole experience got me thinking. 

While traveling, as a non-US citizen, I was able to get access to a stunning working place like this, for free.

The space is beautifully preserved, but quietly modernized. 

Behind the antique wood, coffered ceiling, arched windows, and long rows of green-shaded lamps, there’s fast WiFi and fresh wiring. 

That balance between historic charm and free up-to-date infrastructure made me decide to update one of my scripts and share the MCC version for free:

Fetch Google Shopping Feeds Every Hour of the Day

URL: https://nilsrooijmans.com/google-ads-script-increase-shopping-feed-update-frequency/

What it does:

This script fetches your shopping feed every hour. This way, all the data in your Merchant Center and Shopping Ads is always up-to-date.

Why you care:

The Google Merchant Center interface only supports once-per-day updates of the product data in your shopping feed. Because of this fetch rate limitation, your shopping campaigns may show outdated product listing ads on the Google SERP.

If you’re interested in the MCC version for manager accounts, just hit reply. 

I am sharing it for free for the next 24 hours. (It normally costs $170.)

– Nils

PS: I am in Boston for SMX Advanced, where I will present some of my latest scripts for PMax. 

Next week, I will release the script that got the most votes (for free). Check yesterday’s email to cast your vote:

https://nilsrooijmans.com/daily/on-my-way-to-smx-advanced-boston-what-script-do-you-want-me-to-release

On my way to SMX Advanced (Boston) – what script do you want me to release?

Good day!

I am on the KL0617 flight to Boston for my speaking gig at SMX Advanced.

After years of being “online only,” I absolutely love that SMX is returning to IRL events in the US.

The title of my session is “Mastering Performance Max using Scripts – the 2025 edition.”

I’ll be presenting some of the new scripts I’ve developed last year to tame the PMax beast.

Here’s a short list:

  1. PMax Low-Performing Landing Page Alerts
  2. PMax Campaign Settings Alerts
  3. ChoppyMax Monitor
  4. PMax Ad Schedule Suggestions
  5. PMax Disapproved Entities Alerts
  6. PMax Trending Products
  7. PMax Bad Placements Exclusion Suggestions
  8. PMax Product Price Alerts

If you are interested in any of these scripts:

Hit reply and name the one script you are most interested in (or simply reply with the number).

Next week, I’ll share the script that got the most votes.

In the meantime, I’ll use this flight to have some LLM cook me another script 🙂

Happy scripting!

– Nils

Sales Promotion and Smart Bidding – how to figure it out?

A fellow member of the list, Arnaud Adam, wrote in with this question the other day (name shared with permission):

“Sometimes, we run Sales promotions (e-commerce). CVR is increasing, Google is happily spending money. Then the promotion stops but it takes a while for Google to figure it out. What are the options to limit the spending after the promotion?”

Great question! Here’s how I like to approach it (for e-commerce with short conversion delays).

FIRST:

  • If I expect the sales promotion to have a significant impact on the conversion rate of a significant portion of the clicks in one or more campaigns -> use a seasonality adjustment (for one or more campaigns).
  • If I expect only a small change in conversion rates or a significant change in only a small portion of the clicks -> do nothing.

SECOND:

  • If I have applied a seasonality adjustment, I’ve seen a significant impact on conversion rates for a significant portion of the clicks during the sales promotion, and if I also see smart bidding not scaling back the bids after the promotion -> use Data exclusions.

A little bit of background from the horse’s mouth:

“Seasonality adjustments are an advanced tool that can be used to inform Smart Bidding of expected changes in conversion rates for future events like promotions or sales.

If you’re expecting conversion rates to increase by 50% during a 3-day sale, you can create a seasonality adjustment that increases the conversion rate by up to 50% for those 3 days. Your campaigns will optimize their bids during the events and return to their pre-adjust performance after the event is finished. No negative adjustment is needed once the promotion is over.”

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

NOTE: I think Google made a mistake in the documentation. I think they meant this: “You can create a seasonality adjustment that increases the CPC bid by up to 50% for those 3 days.” 

Use with care:

– Nils

[PPC Hack] Add a negative keyword list to PMax campaigns straight from the Google Ads UI

Ever tried to add a negative keyword list to your Performance Max campaigns?

It’s painful, right? 

Yes, we can finally add negative keywords to our PMax campaigns, but for negative keyword lists, you have to download a sheet, fill in all kinds of boring details, and then email the sheet to a Google Ads support rep. 

Then wait for DAYS, and hopefully, if the stars align and your support rep admits PMax isn’t always the answer, Google will be kind enough to add the negative keyword list to your PMAX campaign. 

But then you’ll have to do it all over again if you want to add new lists to new campaigns. 

A frustrating and tiresome process, to say the least.

Now here’s a HACK I discovered on Reddit:

(Disclaimer: It really is a hack. It doesn’t always work. I got it to work 8 out of 10 times. YMMV.)

Follow these steps to create and attach a negative keyword list to your PMax campaigns:

1) Create a negative keyword list ‘* PMax Negative Keywords’ in the shared library

2) Apply the list to a standard search campaign (just pick one)

3) Navigate to All Campaigns → Content, then select the checkbox next to ‘* PMax Negative Keywords’

4) Click Edit → Copy

5) Go to your PMax campaign → Content, click on the three-dot menu (More), then select Paste and select the campaigns you want to add your list to

6) Remove the negative keyword list from the campaign used in step 2

Again, it really is a hack — it doesn’t always work. I got it to work 8 out of 10 times, YMMV. Test with care.

Source on Reddit: 
https://www.reddit.com/r/PPC/comments/1j8ezy0/pmax_negative_list_you_can_apply_yourself/

– Nils

P.S. If you want to know why I added the little asterisk (*) ​in front of the name for my negative keyword list, read this: https://nilsrooijmans.com/daily/little-trick-quickly-see-what-negative-keyword-lists-are-attached

The Google Idealist, Realist, and Cynic. Which one are you?

When it comes to beliefs and opinions about Google, I see roughly three archetypes in the PPC community.

The first is what I call the Google Idealist.

This person believes what Google says to be true. 

Google does no evil and always has the interest of every stakeholder in mind.

Every new feature and recommendation from Google can benefit the advertiser, and should be enabled without questioning.

The advantage of being a Google Idealist is that you don’t have to work that hard; just follow Google’s advice, and you’re done. The downside of being a Google Idealist is that you might get disappointed by Google not delivering on its promises.

Opposite of the Google Idealist is the Google Cynic.

The Cynic doesn’t trust anything Google says and believes Google is only motivated by pleasing Wall Street and the value of its shares.

Google’s recommendations are there to make Google money, and black boxes are only there to keep us from seeing the truth.

New features introduce problems rather than solutions.

The advantage of being a Google Cynic is that you won’t get disappointed if things don’t work out as Google wanted you to believe. The downside of being a Google Cynic is that you sort of blindfold yourself from seeing potential opportunities for growth. 

The third type of reaction comes from what I call Google Realists.

The Realist looks at Google as what the company and its ad platform actually are. 

This person accepts practical constraints and focuses on what is achievable.

Every claim or new feature is viewed as a learning opportunity; something worth testing.

The advantage of being a Google Realist is that you make practical decisions based on objective facts, rather than wishful thinking or dogmatic beliefs. You’re prepared for various outcomes. As a Realist, you quickly adjust to changing conditions, increasing your resilience. The downside of being a Google Realist is that it is hard work chasing the facts, and that the facts might hold you back in “trusting” new opportunities for growth.

Personally, I like to see myself as a Google Realist, slightly leaning towards the Cynical side; I want to trust Google, but due to its behavior, I can only do so by verifying.

My motto when it comes to claims and new features from Google:
“Don’t Trust. Verify!”

You’ve got to believe in something.

What is it you believe?

– Nils

[Google Ads Script] Change History Alerts — YOU NEED TO UPDATE

This morning, I woke up early at my houseboat to get some stuff done.

I got myself a coffee, watched the sun rise over the Amsterdam canals, and opened my laptop.

My first thought was, “WTF?!”

My inbox was flooded with questions about one of my most popular scripts, the Change History Alert script.

If you don’t know the script, check out the description below.

If you know the script and are running it in your account(s), you need to update to version 1.2!

Why?

Apparently, Google made some undocumented changes in the reporting API that broke my script.

Don’t worry. I’ve fixed it. 

(So much for my productive start of the morning…)

GOOD NEWS: The only thing you need to do is install the latest version. Installing the update only takes 2 minutes.

You can find it here.

Be in the know (again) when someone makes changes to your account!

SCRIPT:
Change History Alerts (V1.2)

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 and 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 (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.

– Nils

conversation about AI

I had an interesting conversation with a prospect for an account audit today:

Advertiser: “There’s so much amazing AI stuff going on right now! But how do I know what work is done by an actual person inside the agency I hire to manage my account?”

Me: “What difference does it make?”

Advertiser: “{silence}”

Here’s the thing: ultimately, if the work delivers the result the advertiser is looking for, then I don’t think the advertiser should care who – or what – did the work.

– Nils

Join me for SMX Advanced Boston next month?

Next month, I’ll be speaking at SMX Advanced in Boston! 

My session is “Mastering PMax with Scripts – the 2025 edition.”

Learn more here: https://searchengineland.com/smx/advanced/agenda/?sessId=2985

I’ll present 10 new scripts that have helped me boost my clients` profits in the last 12 months.

Use the promo code SMXSpeakerFriend to save 15% off registration! Here’s the URL: https://events.searchengineland.com/smx-advanced-2025/?ref=rooijmans

See you there?
 
– Nils

client question – my answer might surprise you

A client asked this question today:

“Hey Nils, you’ve always been very critical of Performance Max campaigns, and now you’re suggesting we add PMax campaigns to our existing strategy?”

Yes. 

Two reasons:

1) Performance Max campaigns are part of my current go-to strategy for scaling e-commerce accounts.

2) ABT

Let me explain:

1. Here’s my current campaign setup for predictably scaling profits in e-commerce accounts:

      Phase 1: Standard Shopping + DSA campaigns
      Phase 2: Standard Text Ads
      Phase 3: Dynamic Remarketing via Display
      Phase 4: YouTube / Demand Gen (remarketing + prospecting)
      Phase 5: Performance Max (for “Hero”  products)

I start with “standard” campaign types because they allow me to control spend and scale the account in a predictable manner that allows for reliable and steady profit growth. Something my clients (and I) value greatly.  

I add PMax in the last phase because, when all else has matured and growth has plateaued, PMax can find new pockets of growth by targeting inventory that was not available before. Think Discovery, Gmail, Maps, and more inventory from the other channels that weren’t targeted by the standard campaigns.

2. Always Be Testing (ABT)

Every day in PPC is different, and Google Ads (especially PMax) is always changing. For this reason, I recommend to always be testing existing features, new features, new ideas, and yes, even completely new setups.

How I test PMax is the topic for tomorrow’s newsletter.

– Nils

saved by the script

Does this mistake sound familiar?

I have a client who runs ads in two different accounts. (We’ll not discuss “why two accounts?” today.) Then, I had to move some ads from account A to account B for portfolio bid purposes.

So yesterday, I migrated some ads and keywords containing the term “vw”.

This morning, I woke up with zero impressions for new ads — and fortunately, an email alert in my inbox that linked to a Google Sheet:

(click image to enlarge)

It turns out that the term “vw” was negated via a Negative Keyword List that is attached to my campaign. I didn’t ​see it ​yesterday.

Without the script, it would have probably taken me half an hour to figure out what was wrong, OR even worse, I wouldn’t have noticed the issue until much later!

Thank you, scripts!

Here’s the script:

Google Ads Script – Negative Keywords Conflicts – Updated version

URL: https://nilsrooijmans.com/negative-keyword-conflicts-alert-script-update/

What it does:
Email alert if an account has positive keywords that are blocked by negative keywords. The script saves all such conflicts to a spreadsheet and sends an email alert.

Why you’d care: 
Negative keywords are intended to prevent ads from showing on irrelevant search queries, but they may inadvertently block normal keywords from matching relevant search queries, making your campaigns less effective.  

– Nils

PS: This script is one of the golden nuggets from my eBook ‘21 Must-Have Scripts to Automate & Optimize Your Google Ads‘. If you think today’s script is of value to you, I am 100% sure you’ll want to have the other 20 running in no time. Get the full list of scripts and my step-by-step guide for only $47. That’s only $2 per script with a huge ROI.

Why Google might be overbidding (and how to stop it)

Did you know you can set a max bid for target ROAS bidding?

You can, and here’s why you should.

Let’s say you’re Google, and you have a smart advertiser who uses target ROAS bidding strategy.

The campaign is running smoothly, ROAS targets are crushed, and the campaign budget leaves room for a lot more spending.

What’s keeping you from setting a crazy high bid for that click in the next auction? Not much, right? 

According to Google’s documentation, target ROAS bidding will:

“…set maximum cost-per-click (max. CPC) bids to maximize your conversion value, while trying to achieve an average return on ad spend (ROAS) equal to your target.”

(Source: https://support.google.com/google-ads/answer/6268637?hl=en)

So if the average ROAS is above target and the budget is not yet spent, guess what? Extremely high CPCs are not an exception. We are all in it for the money, right?

Luckily for us, there is a slightly hidden secret to prevent this from happening: you can set a max CPC bid if you are using a portfolio version of the target ROAS (or target CPA) smart bidding!

It’s under “Settings > Advanced options” in your Portfolio bid strategy.

Keep the profit with you!

– Nils