It’s been 2 years since AdWords removed the option to exclude close variants from exact and phrase match keywords. But, there are many accounts out there which continue to have close variants as separate keywords in their accounts. At best, having close variant duplicate keywords in the account is harmless. You continue to get the all the traffic that matches if any of the close variant keyword. But, at worst, it can give you misleading signals.
The problem with duplicate keywords
Consider an account that has the following 2 keywords.
For the sake of simplicity, consider that all the settings for these keywords are same.
Now, when someone searches for “pet foods”, the search query matches to any of the two keywords as both are close variants of the search query. Unless you have these two keywords configured in separate ad groups, with carefully chosen negative keywords, AdWords can match the search query with any of the keyword.
Why is that a problem?
First, you will never know the real performance of a keyword. If the search queries are being matched with multiple close variant keywords, the actual performance is combined performance of all those keywords.
Second, your metrics may show a wrong picture. For a month, if traffic from [pet food] moves to [pets food], you might get worried. You will try to find the answer with bids, ads and other changes that you may have done to the account. Such false alarms are undesirable. They can make you complacent and ignore the real ones as well.
Third, your ad test may take longer time to arrive at significance. If the keywords [pet food] and [pet foods] are in separate ad groups and you are testing a new ad copy, you will arrive at a conclusion faster if only of the keyword was getting all the impressions. Having traffic spread across multiple keywords means sub-optimal ad copies will be shown for longer duration, thereby affecting the performance of the account.
What’s the Solution?
We bring you the true duplicate keyword detector. Most of the existing solutions identify presence of one keyword across multiple ad groups. This doesn’t solve the problem of close variants.
The AdWords script developed by us will flag even the close variants as duplicates
This script identifies the duplicates within same keyword match type. That is the keywords [pet food] in exact match and “pet food” in phrase match are not shown as duplicates.
Here are some example of duplicate keywords that our AdWords script will help you identify.
|Sr No||Duplicate Keywords|
|3||+nyc +italian +restaurants
+italian +restaurant +nyc
Here’s what the resulting sheet looks like. All the duplicate keywords are grouped together, ordered by impressions, highest first. Each duplicate group has single highlighting. You can see the performance from last 30 days for each of those keywords. Based on the performance data, you can decide which keywords to pause and redirect traffic to other well-performing keyword.
An Important Note: This script uses a technique called stemming to find out the roots of each word. For example, the words “food” and “foods” will both have same root word “food.”
To get root word for each word, this script contacts an external service, built by Karooya. This scripts break all the keywords in individual words, removes duplicate instances of words and then contacts external service to get stemmed words. For example, let’s assume an account that has the following keywords, in exact match.
Here, the unique words are – pet, food, dog, dogs, cat, foods. Stem roots for only these words are retrieved. The actual keywords are never sent to the service. Also, these source words are not stored anywhere. Rest assured, your keyword data is safe.
How to use this script?
Now that you know what the script can do, let’s talk about the script. You can get this script here.
Here are the variables that you can change to customize it to your requirement.
- SPREADSHEET_URL : This is the only variable that you must change. This is the Google Sheet which will have the result once you execute the script. Create a new sheet with Google Sheet and copy-paste URL of that sheet in place of ‘https://docs.google.com/YOUR-SPREADSHEET-URL-HERE’.
- DATE_RANGE: You can use some pre-defined ranges like LAST_30_DAYS or LAST_14_DAYS. By default, the script will get the data for last 30 days.
- USE_CUSTOM_DATE_RANGE: If you want a particular date range to be used then, set this flag to “true” and modify the START_DATE and END_DATE to indicate the date range. The date format is “yyyy-mm-dd” aka “Year-Month-Date.” For example, if you want a report from last quarter of 2015, the START_DATE would be “2015-09-01” and END_DATE would be “2015-12-31.”
- IS_MCC_ACCOUNT : This flag is to indicate whether you will be running this script at MCC-level. By default, it is set to false. Change it to “true” if you want to use for all the linked accounts in your MCC account. The results for each account will be stored in a separate sheet. Be careful, if you have many many accounts.
- IGNORE_PAUSED_CAMPAIGNS, IGNORE_PAUSED_ADGROUPS and IGNORE_PAUSED_KEYWORDS : These flags indicate to ignore paused campaigns, ad groups and keywords. By default, these 3 flags are set to true i.e. all the paused campaigns, ad groups and keywords are ignored.
- FILTER_ACCOUNTS_BY_LABEL : If your MCC account has tons of linked accounts, you may not want to run this script for all the accounts. In that case, turn this flag to “true” and then specify the label with ACCOUNT_LABEL_TO_SELECT variable. Only the accounts with the specified label will be analyzed to generate this report.
Once again, here is the link to the AdWords script.
Feel free to send us an email (support AT karooya.com) if you have any queries for this script.