Save on Your PPC Phrase and Match Modifier Keyword Close Variants with This Script

There’s a script that automatically applies phrase match negatives to your BMM and phrase match keywords to avert the trigger by close variant search queries.

Google, oops, did it again – they’ve extended “same meaning” close variants to phrase and broad match modifier keywords.

The news is now, implied words and synonyms in search terms will also trigger phrase and BMM along with plurals, stemmings, misspellings and changes to word order for your keywords. For those of us who rely on precise keyword matching and granular data for the best insights to work with, this is another major blow.

But there is hope on the horizon. There is a script that provides a stopgap workaround that will tide you over until Google can get back on their meds.

Messing with match types – a brief history

In case you missed it: it all started with Google’s tweaks to exact match which were not exact in the slightest. First, they allowed plurals, misspellings and stemmings for all match types in 2014. In 2017, they went a step further by ignoring changes to function words and word order when deciding whether a search term triggers your keyword.

Further ignoring all of the Armageddon signs, in late 2018 they hammered the final nail into the coffin of exact match by allowing so-called “same-meaning” searches. Regardless of if it’s a paraphrase, requires an implied word or includes a synonym, if Google judges the “intent’ of the search to be the same as your exact match keyword, that keyword will be triggered. And now they’ve done the unthinkable by bringing these same-meaning close variants to phrase and BMM keyword types.

“Houston, we have a problem”

Here are a few stories about why imprecise matching is an issue (herehere, and here). Simply put, semantics matter. You might think that word order or plurals don’t make much of a difference, but paid search experts know, for example, that “london hotel,” “london hotels” and “hotels london” keywords absolutely perform differently. Previously, with fine-tuned precision, we could change our bidding for each of these keywords according to their respective value.

The broadening of “close variants” to include so-called “same intent” searches compounds the problem further, especially for BMM, which is edging ever closer to being indistinguishable from true broad match.

Google argues that advertisers are likely to see a 3-4% uplift in conversions from their phrase and BMM keywords as a result. I’m sure this is true for some Google Ads users.

PPC experts, however, rely on precise, granular insights to inform optimizations and drive performance. Moreover, we probably already had the “new” traffic covered with specific keywords. These changes muddy the data and impede our ability to bid appropriately and to funnel traffic effectively.

What the script does

This script automates a workaround. PPC practitioners having widespread keyword coverage will get help preserving their funnel system by applying relevant phrase match negatives based on data from search term reports.

How it works:

This starts by downloading a search query report. It then finds queries that meet two criteria: 

  1. The query contains a BMM or phrase keyword from a different ad group as a substring (this enables it to identify where it “should have” matched instead).
  2. The query is not a substring of any of the other keywords in that ad group (this prevents the script from blocking ads from showing in multiple keywords per ad group situation).

It then applies this substring keyword as a phrase negative to the query’s original ad group match as selected by Google and evidenced in your search term reports. Queries will be funneled through to the most relevant keyword for the search rather than hitting on loosely related keywords judged by Google to have the same meaning or intent regardless of their spellings, function words, plurals, etc.

You can set it to run however often you’d like (Smart would be weekly or monthly after the initial run). It will email you a .csv file detailing the changes it has, or would have, made.

How to set it up

In the account you’d like the script to run, select Tools and Settings > Bulk Actions > Scripts from the top bar. Click the blue plus button in the top left of the scripts page to create a new script, give it a sensible name to make sure you can find it again later if you need to, and grant it any authorization requests that pop up.

You will then need to paste all of this code into the input box, and modify the inputs section at the beginning of the script as below:

  • var campaignNameDoesNotContain = [];

Use this if you’d like to exclude campaigns. Add the substring you’d like to be excluded within speech marks, e.g. [“Brand”, “Competitor”] if you’d like to exclude campaigns with “brand” and/or “competitor” in the name. 

  • var campaignNameContains = [];

Same logic as above, but for which campaigns you’d like to include. 

  • var makeChanges = true/false;

When set to true, the script will add the phrase match negatives in your account. If false, you will just receive an email. 

  • var emailAddresses = “”;

Enter the addresses to be emailed when the script runs, separating with commas if you’d like multiple people to be notified.

  • var impressionsThreshold = 0;

If you’d only like to compare keywords with search queries that have received over a certain number of impressions (we advise you use this in larger accounts).

Once you’ve modified the inputs, save the script with the button at the bottom and navigate back to the main scripts page. From here, you can find your newly created script and set its frequency (in the third column as standard) to weekly or monthly, and you’re good to go.