Here’s A Free AdWords Script That Pauses Your Duplicate Broad Keywords

Former Googler Daniel Gilbert shares a Brainlabs script that helps you avoid disaggregated data in your AdWords campaigns.

Chat with SearchBot

chaos-order-tightrope-ss-1920

In AdWords, broad keywords (with broad match modifier applied) are great. Broad match keywords let you enter the paid search auction without knowing the search queries in advance, as well as giving you a way of getting to difficult-to-predict long-tail users.

This is particularly powerful when used in a campaign structure that separates broad and exact keywords.

However, there’s a big problem with the way some account managers implement their broad match keywords. Because such keywords pay no heed to the order in which the words in a search query appear, it’s possible to have equivalent broad match keywords in your account.

This situation disaggregates your data and obscures the true picture of your account performance.

Example 1

Let’s look at an example where you have the following broad match keywords in your account:

  • “+red +nike +shoes”
  • “+nike +shoes +red”
  • “+nike +red +shoes”

If a user searches for “buy red shoes that are nike,” it’s possible that any of those three keywords will be triggered by the search query. All three can be triggered by the same set of search queries — they’re equivalent. We can think of this trio of keywords as belonging to the same equivalent keyword group, since they are essentially duplicates.

Having equivalent keyword groups becomes problematic when looking at your keyword performance. This data is disaggregated across all the broad match keywords in an equivalent keyword group.

The true cost of the “+red +nike +shoes” keyword should take into account the cost of all the keywords which are in its equivalent keyword group (e.g., “+nike +shoes +red” and “+nike +red +shoes”).

Any statistics, such as ROI and cost, should be viewed across the equivalent keyword group, and any informed decision to change bids should take into account these aggregated statistics.

The Solution

At Brainlabs (my company), we have an AdWords script to overcome this problem so that you don’t end up with any broad match equivalent keyword groups.

The script will go through your account and determine which keywords are equivalents of each other and together form equivalent keyword groups.

For each equivalent keyword group, one broad match keyword will be selected based on performance — the “best of the bunch” — and will be given a label. All other broad match keywords in the equivalent keyword group will be given a different label.

Once all your keywords have been labeled up, you can simply keep your best-of-the-bunch broad keywords enabled and pause the rest.

Here’s an image to illustrate what will happen for the keywords mentioned above when the performance metric being used is the average CPC:

Broad keywords

In order to use this script, simply copy the code below into AdWords scripts in your AdWords account. (If you’ve never run a script before, please read the Marketing Land series on AdWords Scripts first.)

You’ll need to configure a few options, and then you’ll be set. Select these options depending on your preferences and account setup:

  • ACCOUNT_WIDE will determine whether your equivalent keyword groups can be made from keywords taken from a single campaign or from many campaigns. Set to false if you want the equivalent keyword groups to be made from keywords within the same campaign only.
  • METRIC is the AdWords performance metric that determines which broad match keyword from the equivalent keyword group is going to be kept. The broad match keyword with the best metric will be kept. The metrics you can choose from are CTR, Quality Score,* impressions, average CPC and converted clicks.
  • CAMPAIGN_INCLUDE_FILTER is a list of terms that will filter which campaigns you want to look at. A campaign must have one of the terms in this list contained in its name.
  • CAMPAIGN_EXCLUDE_FILTER is a list of terms that will filter which campaigns you want to look at. A campaign cannot have any of the terms in the list contained in its name.
  • DATE_RANGE is the date range over which to compare the metric you have chosen above.
  • KEEP_LABEL is the name of the label you will use to label the broad match keywords that have the best metric stat (e.g., the highest Quality Score).
  • PAUSE_LABEL is the name of the label to give to all the keywords in the equivalent keyword group that haven’t got the best metric stat.

If you find the script keeps timing out, it may be that your account is too big. Try running the script multiple times using CAMPAIGN_INCLUDE_FILTER and CAMPAIGN_EXCLUDE_FILTER to look at different campaigns each time.

*This is reported Quality Score (QS). Reported QS is the QS of searches that exactly match the keyword, rather than an aggregate of QS of searches the keyword has served ads for. This is not that useful for broad match keywords.

The Script


Opinions expressed in this article are those of the guest author and not necessarily Search Engine Land. Staff authors are listed here.


About the author

Daniel Gilbert
Contributor
Daniel Gilbert is the CEO at Brainlabs, the best paid media agency in the world (self-declared). He has started and invested in a number of big data and technology startups since leaving Google in 2010.

Get the must-read newsletter for search marketers.