AdWords Scripts: Keyword Funnelling for Better Targeting

One of the fundamental elements of running a paid search campaign is keeping an organised house. Your account taxonomy should be a thing of beauty, even comparable to that of a work of art! Ok, maybe I’m getting carried away but you get my point.

So to help with this, we’ve created a script that helps with keyword funnelling, one of the most important yet overlooked parts of campaign structure.

But what is keyword funnelling you ask?

In a nutshell keyword funnelling is where we make sure that the search query entered into Google is matched to the most relevant keyword in the account e.g. a search query for ‘wooden shelves’ is getting matched to the keyword [wooden shelves] and not a close variant like [wood shelf].

Incorrect funneling will still drive traffic and serves its purpose but if you are serious about account management then your inner control freak should be bugging you that you should, at the very least, understand how they are performing so you can choose to leave them be or take further action.

Enter ‘correctly matched’, ‘mismatched’ and ‘missing’

This is where the script comes into play. The way it works is that the script will run through all of your search queries, looking within the rest of the keyword sets to see if there is an equal match or if the keyword isn’t in the account.

There are three possible outcomes once you’ve run the script:

  1. Correctly matched: The search query entered matches the keyword in the campaign. This is good!
  2. Mismatched: The search query entered better matches another keyword in the campaign and not the one it’s showing against. This is not good, you will want to investigate this.
  3. Missing: The search query is not in the campaign at all. This is the point where you decide whether you wish to add it to the campaign or not.

Script options

To use the scripts you will need to create a blank Google sheet and copy its location. The following options are in the script:

  • ONLY_ACTIVE: set this as ‘true’ if you want to take in only active campaigns and adgroups. Alternatively, set as ‘false’ to process all
  • REPORT_URL: enter the URL of the Google sheet you created
  • DATE_RANGE: elect your target date range (options within the script). If you leave this blank then data from LAST_N_DAYS will be used automatically.
  • LAST_N_DAYS: Select a period for the last number of days to current e.g. 90 will pull last 90 days worth of data.
  • MIN_IMPRESSIONS: This means to only look at search queries with that minimum threshold. It’s especially useful for routing out all the low volume terms.
  • CAMPAIGN_LABEL: You can select to process campaigns only with this label.
  • includeCampaignNameContains: This lets you process campaigns that contain certain text, comma-separated for multiple entries e.g. ‘exact, brand’.
  • excludeCampaignNameContains: Opposite to the above, this lets you exclude campaigns that contain certain text, comma-separated for multiple entries e.g. ‘phrase, broad’

The output sheet is all standard until you get to column P which is where the magic happens. Be sure to filter results so you can better see the matched, mismatched and missing data.

We’ll be releasing more scripts in the coming weeks so keep an eye out for those here on the blog (or why not signup to our monthly newsletter so you never miss them?!).  However, as committed members of the PPC community, we’d love to have your suggestions for scripts you’d like to see us build and share with our other awesome readers like you!

To make a request please drop me a message at – Enjoy!