• About Us
  • Services
  • Case Studies
  • Blog
  • Contact Us
  • Google Analytics Tip – How to Find All AdWords Search Queries Triggered from Phrase/Broad Matches

    It can be very difficult at times to find the actual search terms your PPC traffic arrives from, so this is a Google Analytics trick all advertisers should know. Google’s search query report can be useful but for high-traffic phrase or broad match keywords being told that 8 of your clicks arrived on “85 unique queries” doesn’t really give you the complete picture!

    Since the introduction of expanded broad match Google can (and does) match your broad match keywords to just about anything vaguely relevant; knowing these queries is important, either to negative match them or to reduce CPCs by using an exact match. The image below really does highlight this point, notice the extremely irrelevant term “shooting holidays USA” was triggered by a broad match of travel PPC!

    This report was setup last week and shows the AdWords keywords (either exact, phrase or broad match) followed by the actual search term which triggered the clickthrough in brackets:

    (Click for full-size image)

    Step by step guide on how to setup a Search Query report in Google Analytics
    This information can easily be found in Google Analytics but, although the method is simple, it is not obvious; to be able to access this PPC goldmine you have to use filters. Until last week I didn’t even know the filters feature existed and even if I had I wouldn’t have been able to do the regular expressions stuff that our filters will need. For this reason I’d like to thank the Google Analytics Experts and the linklove blog for giving me some simple step by step instructions.

    • In the above case we’ve set up a new profile before messing around, just to ensure that if a mistake was made none of the data is affected. There’s an “Add a Website Profile” option on the Analytics settings page; you want to add a profile for an existing site and then name it.
    • Then you want to write the two filters; click the “Filter Manager” button and then add a filter.
    • This first filter will get the search query and place it in a user defined field. I call it “Get Search Query” but you can name it whatever you want to. Select “Custom Filter” from the filter type drop down menu and select the “Advanced” radio button. You should see some input fields named “Field A -> Extract A” and similar.
    • In the “Field A -> Extract A” drop down menu select “Referral”; this will pull out the SERP’s URL on which the ad was shown. In the box to the left on the drop down menu write “(?|&)(q|p)=([^&]*)” without the quotation marks. This is a regular expression which extracts the search query from the SERP’s URL.
    • In the “Field B -> Extract B” drop down menu select “Campaign Medium” and write “ppc|cpc” in the box. This filters out all the organic clicks.
    • In the “Output To -> Constructor” drop down choose “Customized Field 1” and enter “$A3” in the box. This just tells Google Analytics where to store the data. Finally you need to click the button to make field B required and the one to turn off case sensitivity. Then apply the filter to your new profile.
    • The 2nd filter includes this new data in the keyword report. Again, you want to set up an advanced custom filter but this time choose “Customized Field 1” from the “Field A -> Extract A” drop down. In the box write “(.*)”
    • For “Field B -> Extract B” select “Campaign Term” to find out which of your keywords the search query matched and enter “(.*)” again in the box.
    • Finally in the “Output To -> Constructor” menu choose “Campaign Term” or wherever you want your data to go and then enter “$B1, $A1” The space after the comma means that you can export your data to a .csv and have a separate field for the actual search term.
    • If you’ve followed the steps as I’ve laid them out then the filters should be applied in the right order; if you want to check the information is there when you click to edit the new profile from the “Analytics Settings” page.

    As always, it’ll be a little while before Google Analytics starts to register the new data so don’t be too impatient. Unfortunately the filters can’t be applied retrospectively so you can’t start using them on all your old data but as far as I’m concerned this is the only downside. Set up the filters and start refining your AdWords campaigns!


    32 Responses to “Google Analytics Tip – How to Find All AdWords Search Queries Triggered from Phrase/Broad Matches”

    1. Truman says:

      Does it matter what you name your 2nd filter?

      For the 2nd filter, what are the settings for field a, b and override?

      Many thanks!

    2. Ophir Cohen says:

      It does not matter what you call it. It DOES matter that they are ordered that way – because the first filter grabs data and the 2nd puts t in the KW field – if you put the 2nd before > it will put empty data.

    3. Chris Kellum says:

      If you don’t want to go through all of that trouble, there’s a simple JS file you can download here http://www.roirevolution.com/blog/2008/02/exact_keyword_tracking_with_gajs.html Just upload their JS file on your server and then use the modified Analytics script they provide, and it’ll store all AdWords search queries in the user defined variable.

    4. Good tip Chris. I think there is a lot of debate about whether or not to use the user defined variable to contain the search query information. Your method is simpler if your website has a good CMS but it also prevents you storing anything else in the user defined variable.

    5. James says:

      Another step by step instruction page can be found (here…but the real source for this tip is from some Google Analytics Engineers. Several other folks have posted this tip this year…it’s well worth repeating, and repeating often because obviously not everybody has been exposed to it yet! :) Thanks for bringing the tip out again! To your continued success, James

    6. Truman says:

      Do I need to do the following for the 2nd filter that I create:

      Finally you need to click the button to make field B required and the one to turn off case sensitivity.

    7. Google Analytics Tip - How to Find All AdWords Search Queries Triggered from Phrase/Broad Matches | SEOptimise « Trader Aaron’s Weblog says:

      [...] Link source:http://white.net/noise/blog/2008/11/a-google-analytics-trick-everyone-should-know.html [...]

    8. Truman,
      Yes, you do need to make field B required. I’m not sure what difference case sensitivity would make; I had it turned off.

    9. Link Love - Wednesday 12/11/2008 says:

      [...] post by Ann again, telling about the making reports of link building may make your clients happy. Google Analytics Tip – How to Find All AdWords Search Queries Triggered from Phrase/Broad Matches on SEoptimise. A nice article by Richard Fergie on Google Analytics trick to the actual search [...]

    10. PPC For Hire says:

      This post is fantastic!! Thanks so much for the tip. I recently determined a fool proof way to track Yahoo and MSN to prevent the (not set) issue but this is all new .. and will definitly be implemented as soon as I can! Thanks again!

    11. How to find all AdWords Search Queries Triggered from Phrases says:

      [...] Google Analytics Tip – How to Find All AdWords Search Queries Triggered from Phrase/Broad Matches Filed Under (Search Enging Optimization, eCommerce) by Richard Fergie Read more [...]

    12. dom says:

      Excellent article, thanks.

      I was thinking about how this could be improved.

      For example, the data this report generates is related to keywords which generate clicks.

      What about the keywords which don’t generate clicks?

      Is it possible to identify the keywords brought in on broad/phrase match which generate impressions but fail to generate any clicks?

    13. Hi Dom,
      That sort of information is included in the AdWords Search Query Report. I don’t think it’s possible to get that information in Analytics because the Analytics script is only activated when people reach your site.

    14. [...] As shown in my last blog post, now that Google are using expanded broad match to show ads for “travel ppc” for the search [...]

    15. [...] My post about Google Analytics filters went down pretty well so I thought I’d keep the analytics bandwagon rolling and talk about how to [...]

    16. [...] Google Analytics Once you’ve implemented the Google Analytics filters I talked about last week you’ll have a list of the search queries people used when they clicked [...]

    17. Patrick says:

      I have implemented the filters but I have a question about the way the results are displayed in Analytics. Where can I find them?

      At this moment we are mostly using exact match keywords. So I guess the information obtained using this technique might be less relevant for us?

    18. Hi Patrick
      The results should appear in the keyword section of the traffic sources report. Use the “Paid search” segment if you get s lot of organic traffic so that the results appear at the top.

      You’re right in saying that if you only use exact match keywords then this technique isn’t really useful for you. Why do you not use phrase or broad match?

    19. Chris says:

      I set this up about a month ago, but my keyword reports for paid search are about the same — even though about 80% of my traffic comes from AdWords. There are a couple of keywords in there that show the search query, but most are as they always have been. I have auto-tagging turned on. Does that matter?

    20. john in brooklyn says:

      It appears that Google has really cranked expanded broad matching into overdrive. So be warned! As an example, I found this post by searching in Google “Google Expanded Broad Match”. There were two ads shown. One for an industrial air conditioning company. And one for a mortgage broker.

    21. Blog Stats and Updates – IV says:

      I have started using google analytics only recently. I don’t understand all this easily. It takes me a while to appreciate its usefulness. Thanks for sharing.

    22. SEO Company says:

      Hi, Great tips… really impressive…thanks.

    23. [...] Google Analytics to filter IP addresses, find the referral page of search results, identify real PPC keyphrases, separating Google.co.uk and Google.com referring domain, find universal search clickthroughs and [...]

    24. Nick says:


      great tipp! but i doesn’t work 100% correctly with me. The keywords a all listed perfectly fine seperated by komma, but the conversions are not captured correctly. the jump rate is correct i guess, but for each search query term term combination the conversions are not captured. they all get summarized in entries that represent the orginal adwords term:


      adwords keyword: keyword1


      keyword1 conv.rate. 1200%
      keyword1, addKey1+addKey2 conv. Rate 0%
      keyword1, addKey1+addKey2 conv. Rate 0%
      keyword1, addKey1+addKey2 conv. Rate 0%
      keyword1, addKey1+addKey2 conv. Rate 0%
      keyword2 conv.rate. 800%

      any idea ?

    25. Hi , I hv one problem . I re-upload all of my web file by mistake . Then after I found the GOOGLE link:wwww.domain.com result is still from the old web file . How can I make the implemental result i.e.old file re-direct to my new web file ?? I don’t how to do that code 301-redirect . How to put the code in my web ???
      Kindly help on this …

    26. [...] this.  Running query reports a (nice function in the new adwords interface, but not as good as the filters techniques for analytics) has shown that the ppc traffic generated from broad match terms seams to be getting less [...]

    27. Ellen says:

      I am really stuck on the reporting at the end. I can’t figure out how to pull the report. I run the search query report but I was expecting a column for raw query data and a column for keywords. All i see is a Search Query column which i assume to be the raw query data. What am I missing here? Also, i use 3rd party tracking to get results on my PPC campaign and that gives me all the raw query data that this report promises. Is there a benefit/difference that I am missing?

    28. @Ellen: Do you mean that you are using the Search Query Report in the AdWords Interface? That is slightly different to what I am talking about here. Your 3rd party tracking will give you pretty much all the information. Does it tell you the cost per click?

    29. RT @seoptimise Google Analytics Tip – How to Find All AdWords Search Queries Triggered from Phrase/Broad Matche… http://tinyurl.com/5ndccz

    30. http://tinyurl.com/5ndccz
      Google Analytics Tip – How to Find All AdWords Search Queries Triggered from Phrase/Broad Matches | SEOptimise

    31. [...] sind die Keywords auf die im Adwords Account geboten wird. Dazu gibt es Abhilfe via Google Adwords: SEOptmise hat neben anderen diese Methode [...]

    32. vitamin says:

      Great information post. But I have a problem about the filter. My site is in foreign language so does my adword campaign. I only see the search term in Unicode format. How can I adjust this to display in Human language form ?


    Leave a Reply