
Search is an integral part of the discovery experience for any app. In this post, I talk about the critical search metrics for your web and mobile application.
Points to be covered:
- Critical metrics for tracking search performance.
- How to measure search performance with events in Google Analytics
- Improving search performance
- Introduction to Query console for GA
Search is broken down into 2 key parts:
Auto-suggest and SRP(search results page). Let’s get started with search metrics.
Critical metrics for tracking search performance
Total unique searches: The total number of unique searches on your website/mobile app. While some might consider this a vanity metric, it’s useful to plan for the number of search servers and overall planning.
% Search Exit: The most important metric to measure for your search performance. The percentage of users who leave your website after viewing the SRP page. Currently search exit is measured using Google’s search analytics reports.
Null keywords: Searches which return a ‘no-result’ on your application. These searches are useful early-on for identifying the major issues with your search algorithm and can be used for fine-tuning your search algorithm.
Screenshot from the Saavn website
Here’s a ready guide to track the number of no-result searches for your website: http://cutroni.com/blog/2009/09/08/tracking-ero-result-searches-in-google-analytics/
Search Refinements is defined as the number of times a user searched again immediately after performing a search. Again a very useful metric for your search. Now the interesting bit is how google defines ‘immediately’.
Percentage Search Refinements = The percentage of searches that resulted in a search refinement. Calculated as Search Refinements / Pageviews of search result pages.
Going a step deeper into search refinement we can figure out the common words that result in a refinement.
You can see in the last example some users were searching for the English artist queen while some wanted the hindi movie album queen.
Now that we have analysed the metrics we need to track, let’s look at some of the factors that determine would make or break your site performance.
API response times:
For an optimal user experience, the response times and data consumed by your api make a big difference. For best results a response times of < 100 ms is crucial.
You can reduce the data used by optimizing the response of your api.
Consider this is sample request for your api.
{“widget”: {
“debug”: “on”,
“window”: {
“title”: “Sample Konfabulator Widget”,
“name”: “main_window”,
“width”: 500,
“height”: 500
},
“image”: {
“src”: “Images/Sun.png”,
“name”: “sun1”,
“hOffset”: 250,
“vOffset”: 250,
“alignment”: “center”
},
“text”: {
“data”: “Click Here”,
“size”: 36,
“style”: “bold”,
“name”: “text1”,
“hOffset”: 250,
“vOffset”: 100,
“alignment”: “center”,
“onMouseUp”: “sun1.opacity = (sun1.opacity / 100) * 90;”
}
}}
Now based on the information displayed on your mobile app/website you can trim down the api request to include only essential information.
Get Dinesh’s stories in your inbox
2. Measuring search performance using Google Analytics events:
Google Analytics provides events which can be used for tracking search performance.
An event typically consists of 3 components: event category, event action and event label.
So if you’re tracking SRP events, a sample event would be sent as
ga(‘send’, ‘event’, [eventCategory], [eventAction], [eventLabel], [eventValue], [fieldsObject]);
ga(‘send’, ‘event’, [SRP], [song], [arijit singh]); here I’ve ignored the eventValue. Also note that this event is sent using the latest universal analytics terminology on Google Analytics.
Suppose the search keyword “arijit singh” was searched in the category songs. In this case the URL formed would be something like www.music.com/song/arijit%singh
Here I have sent the keyword and category information as an event.
Once a user lands on a SRP page, we get a listing of results.
We can capture the position of result clicked by the user and information about the result. So an event can be sent like
ga(‘send’, ‘event’, [SRP], [songs], [arijit singh|1], [Arijit Singh Hindi ]);
In the above screenshot the only available action on the SRP page is selecting the song. However in case more than one result actions are present like ‘favorite’ or ‘play’ song directly from the SRP page they would again be treated as a conversion.
The position click report:
Based on the position information captured we can create a position report for your keywords:
1st position: 60% clicks
2nd position: 20% clicks
3rd: position: 5%
4th and below: 15%
Looking at this report overtime for SRP and Auto-suggest would give you a direct idea of your search performance.
New metric: Search conversion
Based on GA events tracked we can define a metric called as search conversion. Essentially the number of times a search results in an action on the search results page. So if one searches for a song and goes to
One point to note while measuring this metric is that searches in the same session should be used to calculate conversion which can be summed over all sessions.
Ex. A user searches for ‘arijit singh’ -> event for SRP fired
user clicks on song result -> event for conversion fired
user clicks on another song result -> another event fired
Here conversion would be 1/1 = 100%, note that we have neglected the conversion for the same search. The only problem here is we would need to add a unique visitor id(Visitor ID) along with each event to match searches for a particular visitor. If anyone knows a better way, i’ll love to hear about it.
So based on this we can generate a report like:

Based on this report you can compare directly, how you’re doing on the majority of your keywords or if you’re doing bad for a recent search keyword.
Google Analytics Debugger and Query console
If you’re wondering how to verify the events being added to your website, let me introduce you to the google analytics debugger — a simple chrome plugin
Once the plugin is installed, just go to the icon on the browser and enable it. Once it’s enabled navigate to developer tools in your chrome browser and you should start seeing events being sent.
So all method calls can be easily tracked. Hurray!
Lastly I’ll like to introduce you to the GA query explorer. It can be used to build fantastic reporting dashboards and query all sorts of information possible from GA.
https://ga-dev-tools.appspot.com/query-explorer/
If you found this post useful, please feel free to comment. You can also follow me on twitter https://twitter.com/VernekarD I write on topics like product management, analytics and mobile.
If you have questions, please feel free to email me at lastnamefirstname@gmail.com


