5-Step Guide To View Site Search Terms In GA4

Site Search in GA4

Written by Joanne Kearney

Joanne has over 10 years’ experience working in digital analytics, executing and managing many large scale projects across the UK and Ireland. Joanne is also an experienced trainer, having developed many customised corporate training schemes and regularly speaks at digital and analytics events.
July 16, 2021

Back in March, we covered how you can set up site search tracking in Google Analytics 4. Here, we are going to look at how you can expose and view the search terms in regular reporting widgets, not just via real-time reporting. When you set up site search tracking and then perform a search, you’ll see the event come through as a view_search_results event in the ENGAGEMENT > EVENTS report:

…but clicking on this to view further details, will only show you a widget containing the list of terms searched in the last 30 minutes. What if you want to see historical data? As we’ve mentioned before, GA4 takes a bit more customisation work than Universal Analytics to get the data that you want, displayed in the right place.

To do this and expose the site search parameter you’ll need to create the event as a custom dimension first.

 

Exposing Site Search Terms in GA4

  1. Select CONFIGURE from the menu on the left-hand side of any Google Analytics page…then, select CUSTOM DEFINITIONS on the secondary navigation pane:

2. Select CREATE CUSTOM DIMENSION:

3. In the NEW CUSTOM DIMENSION boxes you’ll find fields for:

  • Dimension Name: The name that will appear in your search term widget (report table)
  • Scope: Specifies to which data the custom dimension or metric will be applied.
  • Description (optional): Free text to describe your dimension further
  • Event parameter: The event parameter you want to be exposed in reports

While the dimension name and description are free text boxes, scope is predefined. The event parameter might be available to be selected from a pre-defined list- if not, just type ‘search_term’. When tracking site search, the scope should be set to ‘Event’ and the event parameter should be ‘search_term’ as your objective is to pull through the value of the search term parameter.

search_term is the parameter pulled through on the view_search_results event which is triggered when a user searches your content.

4. Once that’s done, go back to REPORTS > ENGAGEMENT > EVENTS. Then, in the table select view_search_results:

5. On the next page, you might see the event name you selected (in the drop-down box) and a widget that corresponds to the custom dimension name you used to create the search_term dimension:

It is there that you will now see a list of the search terms that people have used to search your site!

6. *Update* Create an Exploration if step 5 does not work: We are aware that step 5 might not always work (sometimes it does, sometimes not – that’s the surprise element of GA4!). If you don’t see the widget showing search queries, you can view the same via an exploration report. To do this navigate to EXPLORE and create a new exploration:

Then, follow the same configuration below:

VARIABLE CONFIGURATION: Name: Site Search Query (or whichever name you choose for your site search report)

Dimensions to import: Search Term and Event Name

Metrics to import: Event Count

TAB SETTINGS CONFIGURATION: Rows: Search Term Values: Event Count Filters: By Event Name Filter contain: view_search_results You should then see your search terms from there:

18 Comments

  1. humaira

    It still does not work – shows empty container – do we have to set a tag in GTM for this?
    dataLayer.push({
    ‘event’: ‘view_search_results’,
    ‘search_term’: {heavy duty, how to repair a slide,
    }
    });

    Reply
  2. humaira

    also what is the difference between search & view_search_results

    what will happen to this datalayer which defined by google for search?

    dataLayer.push({
    ‘event’: ‘search’,
    ‘search_term’: {heavy duty, how to repair a slide,
    }
    });

    Reply
  3. humaira

    Do I have place a new datalayer for this to work?

    dataLayer.push({
    ‘event’: ‘view_search_results’,
    ‘search_term’: {heavy duty, how to repair a slide,
    }
    });

    also what is the difference between search & view_search_results

    and what will happen to this datalayer which defined by google for search? this one also doesn’t show the search terms in GA4

    dataLayer.push({
    ‘event’: ‘search’,
    ‘search_term’: {heavy duty, how to repair a slide,
    }
    });

    Reply
  4. Joanne Kearney

    Hi Humaira,

    You shouldn’t need to use the data layer if the search term is passed through in the URL when a user performs a search on your site.

    You just need to follow setting up site search under Enhanced Measurement first- the blog below has steps on how to do this:
    https://www.glowmetrics.com/blog/setting-up-site-search-in-ga4/

    Then, you follow the steps above to expose the site search terms via a custom dimension to view this in the event report.

    Joanne

    Reply
  5. humaira

    followed both of your blog now – placed the custom definitions as well, paused the search tag in tag-manager

    now it does not show search_term in 30 min window

    /search?keyword=hello

    placed keyword and search under admin/site search

    Am i doing something wrong?

    Reply
    • Joanne Kearney

      Hi Humaira,

      You should be able to see the event parameter view_search_results in realtime reports when a search has taken place.

      Under Engagement > Events, within this table you should also be able to see the event for view_search_results and if you click that, you should be able to see the SITE SEARCH QUERY within a widget there.

      If you are still having issues, feel free to email me directly on joanne[at]glowmetrics.com and I can take a look at your set-up.

      Joanne

      Reply
      • humaira

        That would be great – I have dropped you an email

        Kind regards
        Humaira

        Reply
  6. Nikki

    Got as far as step 4 fine. Step 5 – no joy. The widget is not there and there’s no reference to the dimension name I created anywhere.

    Reply
    • Joanne Kearney

      Hi Nikki,

      I’ve just updated the blog article with a step 6- if step 5 still isn’t working for you.

      Kind Regards,

      Joanne

      Reply
  7. kevin mccaul

    Hi, When I go to Configure-Custom Dimensions – There’s not an event labelled “search_term” Thanks

    Reply
    • Joanne Kearney

      Hi Kevin,

      Do you mean you can’t see an event parameter for ‘search_term’? If you can’t see it in the list you should be able to type it in manually and that should work.

      Kind Regards,

      Joanne

      Reply
      • Jasmine

        Hi Joanne,

        I type it in manually, but it’s not working 🙁

        When I tried to test it on the website, the ‘search_term’ parameter is showing up at the Event report in the Last 30 Minutes though.

        What should i do?

        Reply
        • Joanne Kearney

          Hi Jasmine,

          Can you perform a search on your site, wait at least an hour and then try step 6 above using the Exploration report?

          Are the search terms appearing in the exploration report?

          If not, can you email me- joanne[at]glowmetrics.com with the website you are trying to track it on and I can look into it further.

          Thanks,

          Joanne

          Reply
  8. Melanie

    When I go to Configure-Custom Dimensions – There’s not an event labelled “search_term” and I can’t type.

    Reply
  9. Gar Haywood

    Joanne:

    First, great work. Thanks for all the info.

    I got everything to work here but my “Search_Terms_Historical” data still doesn’t appear in a widget under Reports > Engagement > Events > View Search Results. What step am I missing?

    Reply
  10. Pandu Aji

    Thank you for make this detailed instruction. I don’t know why GA 4 hidden the search query feature.

    Reply

Submit a Comment

Your email address will not be published.

Enjoyed reading this article? Find more like it below…