Travel sites and Google Analytics Site search - essentials

Travel industry is extremely rich in terms of data collection opportunities. Using Universal Analytics great new features online travel agencies and tour operators can easily implement and use this data for numerous tasks – mainly to gain insight on on site behavior and plan ahead (using data).

This, first in a series, article will deal with one of the main travel site tools – Search, Site search.

Why is Travel industry so specific when it comes to internal search?

Travel search usually does not use only one parameter in search but instead a series of parameters which best describe the end user intent – need.

The basic query usually consists of:

  1. Arrival date
  2. Check out date
  3. Destination and / or Location and / or Product (Hotel, Resort, Brand, Rental)
  4. Number of adults
  5. Number of children

If we were to translate this query in simple terms we would end up with a simple question:

What is the best offer for me and my better half in May 2015? We’d like to see Spain for 14 days and we believe Barcelona would be a great fit …

Now the search engine as the online salesperson – yes it is a 24/7 sales tool, needs to render best possible offers. If applicable it can/should ask additional questions to filter out offers not suited for the for mentioned couple.

These questions could be:

  1. Hotel category
  2. Price range
  3. Additional services (wifi, pool …)
  4. Activities (hiking, dancing, sleeping …)

The ideal follow up action set would include (a basic funnel):

  1. Looking at the product page for more details
  2. Booking process
  3. A long overdue vacation
  4. Repeat purchase:)

Looking back at the entire process we can determine the main points of interest where we can collect data and gain valuable insight.

  1. Initial search
    What was the users initial query – ideally we would need to track:

    1. Arrival – YYYYMM
    2. Destination or product
    3. Number of adults (good to have since we can easily use segments and push remarketing campaigns accordingly)
  2. Search refinements
    Each subsequent search performed during the session

    1. Add additional parameters to the search
    2. Completely new parameters
  3. Site Search monetization
    Did the search process end up with:

    1. Site exit
    2. Booking entrance
    3. Booking success

All main activities usually occur directly on search result pages. Depending on how the site was built we have many options on how to retrieve these desired values and send them to Google Analytics.

Before we get all technical lets look at what we can do with the data collected and hopefully answer why is it worthwhile to invest in tracking site search.


Why do it?


Aside from the default segments (built in) sessions with or without search you can explore user behavior based on their queries – destination, hotel category, arrival date. This will help assign value to segments – revenue based on desired destination, hotel, activity ….


So many options here – basically each query is a remarketing opportunity where you can choose to be more or less specific. Just think of a display ad containing Spain / Majorca, desired date of arrival, total price for 2 persons, image includes spa (which was additionally selected) and if you can afford give 2 tickets to a party (if the user selected dancing as a favorite activity) – the possibilities are endless.

Search behavior

Evaluate the efficiency of your search engine. There are some decent metrics available in the reports such as:

  1. Total Unique searches – evaluate between search terms and total demand
  2. % Search Exits – % of searches resulted in the user leaving the site
  3. % Search Refinement – % of searches resulted in a new search

The standard Behavior > Site Search > Usage report can help determine how sales friendly is your search engine in terms of purchase behavior of those who searched and those who did not.

Research tool

After collecting the data for a significant period you will have massive insight into some specific cases for example:

  1. When do people start searching for a specific query? (and when they actually buy it)
  2. When do people from Germany start searching for a vacation in Spain with children
  3. Which of the additional services are important to visitors from Italy and which selection did lead to a purchase?
  4. And much more …


Technical setup and options

Step 1.
Which parameters to track

Which values will you actually use in reporting, remarketing or segmentation tools and decision making.

Step 2.
Retrieve the values

This is the part where you may ask for some help from your developers. I said may as there are situation where you can do it without the help.

It is also important to know are you using a tag management system like Google Tag Manager or are all of your tracking codes implemented directly into site template structure.

Values in URL
If the values are exposed in the URL as query parameters (/?arrivalDate=20150522&…) or as anchor (/#arrivalDate=20150522&…) you can and should use Google Tag Manager where Macros / Variables are your best friend.

Values via a dataLayer.push (for Google Tag Manager)
But if the situation is not as simple a good way would be to ask your developers to render all required information inside a dataLayer on all pages related to search – just a simple piece of code inserted on your page which can look like this:

// Insert before GTM snippet or add a custom event if this is not possible
window.dataLayer = window.dataLayer || [];
‘searchArrival’ : ‘20150522’,
‘searchDestination’ : ‘Majorca’,
‘searchAdults’ : ‘2’

Step 3.
Format data and send

After we retrieve the raw value we may sometimes need to reformat data to conform it to reporting needs. In this simple example we would like to send this data in two basic ways.

Site search term
The values become available inside Behavior > Site Search reporting in Google Analytics – but as the query is complex we would need to combine these 3 values into one single entry where the end result would be ‘20150522,Majorca,2’

Technical needs
Option 1. Use a virtual page view method and override the default URL so that the URI reported in Google Analytics looks like this – ‘/searchresultpage/?mySearchTerm=20150522,Majorca,2

Option 2. Use view filters – Custom advanced filter where you would extract Custom Dimensions values and combine these into Search term.

Custom dimension
It would be wise to track all three of the values as separate dimensions as you could more easily report on trending and correlation of these dimensions – so CD1 would be searchArrivalMonth where we would put only the month part of the string, CD2 would be searchArrivalYear only the year part of the string …

Technical needs
Define the custom dimensions inside Google Analytics admin (property) as hit level dimensions. Use the indexes either in GA universal tracking code or via Google Tag Manager (preferred implementation) and assign the values to each custom dimension on each pageview hit (related to search of course).

Added bonus – read this fine article by Simo Ahava which explains the site search technical stuff – highly recommended –

Step 4.
Additional info to acquire (Opportunities)

Consider setting up additional tracking features:

  • Content grouping value as search result page entry.
  • Enhanced e commerce to see product performance based on search result lists.
  • Custom metric which will report on the number of offers found for a specific query where you will definitely keep your eye open for the dreaded ZERO search result – meaning no offer could be found in the search process.

Author bio

Zorin Radovančević

May 10, 2015 Google Analytics, Google Tag Manager

Senior Web Analytics implementation and planning specialist - all things related to Google Analytics, Google Tag Manager and Yandex Metrica.


Leave a Reply

Your email address will not be published. Required fields are marked *