Modified broad match keywords=> phrase match keywords

From mid-February 2021, modified broad match keywords will be treated like phrase match keywords in Google Ads. This has the consequence that suddenly the order of the individual words in the keyword EVENTUALLY plays a role.
For keywords where the word order was previously irrelevant (modified broad match), the order can suddenly become relevant and vice versa for phrase match keywords.

Example: +good +wine becomes the keyword "good wine" due to the update. According to the explanation of my Google contact, no more ads will be shown for this keyword in the future when searching for "wine good vintage", since "good" now refers to "vintage" and not to "wine". Here the order matters!
Therefore, I think here it makes sense to add "wine good" as a phrase match keyword in the ad group. In order not to lose impressions for such cases (keywords with property words) and others, this free Google Ads Script generates corresponding phrase match keywords in all variations (permutation) from selected or all active, modified broad match keywords.
NO Google Ads Scripts knowledge is required - very easy to use. Just copy & paste!

Update: You can now choose whether to create corresponding phrase match keywords for all active modified broad match keywords in the account or only for those with a specific label.
Update 2: Before you use this script, take a look at our latest script that we have programmed for this problem!
Identify and fix search query problems in Google Ads

  The problem of the Google Ads Update in February 2021

The following diagram from the official announcement of the Google Ads Update in February 2021 shows the problem very well: Auswirkungen des Google Ads Update im Februar 2021
Source: Google Ads Help

Pharse match keywords will be shown for many more queries with the update, but the order of the individual words in the pharse match keyword can still play a role. Therefore, for the keyword +moving +services +NYC +to +Boston, ads will no longer be served for the search query moving services Bosten to NYC.

The official Google Help states:

As a result, phrase match will expand to cover additional broad match modifier traffic, while continuing to respect word order when it’s important to the meaning.

This means:

  1. Google's artificial intelligence (AI) will decide in the future whether the order of words still plays a role in the keyword option phrase match or not. This means that anyone who previously created phrase match keywords because the order was important to them can no longer rely on this.
    So in the search query report for word group keywords, you may look out in the future to see if Google has considered the order of the words as desired.
  2. Adjectives are assigned to nouns. The keyword +best +sneakers becomes "best sneakers" with the update. Google deduces that "best" refers to "sneakers". Therefore, the keyword for the search query "best prices for sneakers for toddlers" no longer triggers an ad, since "best" here refers to "price" and not to "sneakers".
  3. Those who previously created modified broad match keywords because broad match keywords too often served ads for completely irrelevant search queries and the order of the words in the keyword didn't matter, must now hope that Google's AI recognizes that although the keyword option is phrase match, the order of the individual words in it doesn't matter.
    Those who don't want to rely on this can use this script.

Can someone explain me the advantages of this update? I mean from Google Ads users point of view!:-)

A new keyword mix option like +bus "london paris" would have been cool and useful.

But this update is NOT an improvement in my opinion.

 The solution to the problem

Our free script generates all variations of phrase match keywords for each modified broad match (mbm) keyword.
So for the keyword +moving +services +NYC +Boston these keywords would be added to your Google Ads account:
"moving services NYC Boston"   "services moving NYC Boston"   "NYC moving services Boston"   "moving NYC services Boston"   "services NYC moving Boston"   "NYC services moving Boston"   "Boston services moving NYC"   "services Boston moving NYC"   "moving Boston services NYC"   "Boston moving services NYC"   "services moving Boston NYC"   "moving services Boston NYC"   "moving NYC Boston services"   "NYC moving Boston services"   "Boston moving NYC services"   "moving Boston NYC services"   "NYC Boston moving services"   "Boston NYC moving services"   "Boston NYC services moving"   "NYC Boston services moving"   "services Boston NYC moving"   "Boston services NYC moving"   "NYC services Boston moving"   "services NYC Boston moving"

It is obvious that not all combinations are reasonable. The keywords that do not generate impressions after a few months can then be deleted. For now, I would completely ignore messages like "low search volume" and rely only on the actual impressions. In addition, it may well be that Google will continue to soften the phrase match keyword. Maybe impressions will be generated at a later point in time – whether they make sense then is of course another question:-)


In the example above, you can see that for a modified broad match keyword, which consists of 4 single words, would add 24 new phrase match keywords. With five words, there would be 120 new keywords. Therefore, only modified broad match keywords with a maximum of 5 words are considered. Modified broad match keywords with more than the configured number of words below will get the label "z_mbm2phrase_old_todo". For these keywords you have to add meaningful phrase match keywords manually. Or reduce the number of words in the keyword, remove the label "z_mbm2phrase_old_todo" and start the script again.

The number of keywords per ad group and account is limited:

  • max. 5 million ad group targeting items per account (such as keywords, placements, and audience lists).
  • max. 20,000 ad group targeting items per ad group (such as keywords, placements, and audience lists)

Source: Google Ads Help
However, this only affects EXTREMELY large accounts.

 What does the Google Ads Script do?

The script goes through all active search campaigns one after the other. For each campaign, first the existing phrase match keywords are captured and then all modified broad match keywords are gone through. For each modified broad match keyword, corresponding phrase match keywords are created in the same ad group as shown above. Unless there is already this phrase match keyword in the campaign, then this phrase match keyword will be skipped.

The modified broad match keyword gets the label "z_mbm2phrase_old". Or it contains the label "z_mbm2phrase_old_todo" if the keyword does consist of to many single words and you have to create phrase match keywords manually. This way you can easily filter for it.
The new phrase match keyword that contains the single words in the same order as the original keyword get the label "z_mbm2phrase_new_replace". The other new phrase match keywords get the label "z_mbm2phrase_new".

Final URLs, bids, URL suffix, tracking templates, CustomParameters and labels are taken from the modified broad match keywords and assigned to each phrase match keyword.

 Instructions to set up the script

  1. Configuring the script below
  2. Copy the code under "The free Google Ads Script" to the clipboard
  3. Create a new Google Ads script in Google Ads and paste in the code
  4. Save and test (click Preview button)
  5. For large accounts, run the script multiple times if necessary. A note will appear in the log if there was nothing more to do.
  6. Please like and share this page as a sign of thanks and encouragement :-)

 Script configuration

E-mail address for alerts (optional)

Parameter configuration (optional)

If you do not enable this option, corresponding phrase match keywords will be created for all active modified broad match keywords.
If you no longer want to use the outdated keywords or want to see in the statistics how the Google Ads update is affecting you, you can automatically pause modified broad match keywords. The modified borad match keywords should not be paused before the Google Ads update is activated in your account.
Google considers the old modified broad match keywords as phrase match keywords with the update. Therefore, you don't actually need to create a phrase match keyword with the same word order as in the modified broad match keyword. However, I prefer to create these keyword sas well, so that I can still decide in the future whether to remove the old modified broad match keywords.
  Maximum number of single words per modified broad match keyword
For the keyword +moving +services +NYC +Boston above, 24 phrase match keywords would have been created as a replacement. In the table below you can see how many new phrase match keywords are generated (Keywords column) if the modified largely matching keyword consists of x words.

Google will hate me for this script anyway, but I limited the selection here to 5!:-)

 The free Google Ads Script

// ### // Copyright data-inside GmbH / no warranty / ohne Gewähr
// This AdWords Scripts lib can be used by anyone at no charge. Use is granted without guarantee or liability. Redistribution of this code or derived code is prohibited.
var g_sMailAddress = ""; // error reports are send to this address
var g_sAccountName = AdWordsApp.currentAccount().getName(); // used in emails reporting errors
function main() {
 try {
  var sVersionDataInside = "1.2"; 
  var url = "";
   pauseMbmKeywords: false            // pause broad match modified keyword +word1 +word2 +word3 because the replacement "word1 word2 word3" shall be used?
   createPhraseInOriginalOrder: false // create "word1 word2 word3" for old keywword +word1 +word2 +word3?
   onlyLabeledMbmKeywords: false      // true => only perform modified broad match keywords with label z_mbm2phrase_create_phrase. false => all modified broad match keywords
   maxWordsInMbmKeyword: 4             // (default: 4) 4 => 24 phrase keywords are generated for 1 modified broad match keyword! 5 => 120, 6 => 720 keywords, 7 => 5040 keywords!
 } catch (e) { try {MailApp.sendEmail(g_sMailAddress, "Exception in Script 'phrase match keyword generator' - "+AdWordsApp.currentAccount().getName(), "Exception: "+e.message+"\r\nStacktrace:\r\n"+e.stack);} catch (e2) {Logger.log(e2.message);} throw e; }

I look forward to your feedback:-)

Holger Schulz alias admigo

Copyright and disclaimer

This Google Ads Scripts lib can be used by anyone at no charge. Use is granted without guarantee or liability. Redistribution of this code or derived code is prohibited.

 Instruction: Insert script into Google Ads account

Please configure the script at the top with your parameters first.
Then copy the Google Ads script from the gray box to the clipboard.
Then go into your Google Ads account and proceed step by step, as shown:
Step 4 "Script name" you can choose freely. For example "mbm2phrase" (modified broad match to phrase)
Please omit step 9. The script should only be executed manually – if necessary several times for large accounts.
Google Ads Scripts Installation
Please use a desktop browser to rate. Thanks.