The Search Volume of a brand via Google Trends is amazingly useful for a marketer.
For example, it is a great indication of how popular a brand vs competitors in some cases.

It is really easy to hack together a brand tracker that is fairly functional.
Let’s walk through a quick use case then the build:

The example below is of the top 5 airlines in Singapore and the index of relative search volume.

While messy, this is still useful as we can still have the following insights:

    • Scoot started doing really well mid-2017 with Tigerair searches dropping to zero
    • A news search reveals that Tigerair came under Scoot brand that year

However, there is still a lot we don’t know:

  •  Did all of the searches for Tigerair transfer to Scoot or did some of the Brand equity get snatched by competitors?
  • We can see Scoot is dominating, however relatively speaking, by how much versus all the rest?
  • Similarly, how much of the searches in % terms has each brand won and how does the trend look?

With a bit of Python and Google Trend’s data we could answer these question with the graph below:


  •  All of the searches for Tigerair transferred to Scoot – Yay for the marketing department at Scoot! (I really hope they have this graph with them and got the promotion they deserved)
  • We can see Scoot is dominating and at 40% of airline brand searches (if we consider the above as the “Universe”)
  • We can see in terms of Volume, Singapore airline and Scoot is dominating with jetstar and AirAsia (not on this chart)  slightly behind


And if we contrast this with the experience of the merger of Indian into Air India in 2007.

We could see rebranding across a larger market took at least 5 years in comparison to the 0.5 years scoot took! Also it is evident that search share for the brand as an overall did not transfer totally to “Air India” with Indigo actually winning over a larger portion of branded searches.



So how is this done?


First, download the CSV and place into dataframe – brandData

We would need to do some minor clean up on the datetime
Then after that, we select out a suitable period to smooth out events.
ie, We consider only averaged indexed value over a month.
This smooths out outliner events in the data (worked well on a tragic AirAsia mishap – details in footnote)

#sort of datetime
brandData["period"]= brandData.index

brandPivot= pd.pivot_table(brandData,index=’period’,values=brandData.columns,aggfunc=np.average)

Here is where the I got a trick from a really brilliant analyst, credits to Stephanie Tang that used it to calculate SOV for a different problem

for i in kw_list:


Then the data is now ready for charting.

import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib.ticker as ticker

brandPivot["periodGraph"]=brandPivot["periodGraph"].apply(lambda x:"20"+x[:2])

fig, ax = plt.subplots(figsize=(8.09, 5))
pal = sns.color_palette("Set1")
plt.stackplot(x,y, labels=brandPivot.columns, colors=pal,alpha=0.6)
xlabels=[j if i % 10 == 0 else "" for i,j in enumerate(brandPivot["periodGraph"].tolist()) ] ax.set_xticklabels(rotation=30,labels=xlabels)
plt.legend(loc='upper left')

And there you have it!
Your very own free brand tracker powered by Google Trends + python.
Need a quick report? Feel free to reach out on LinkedIn – I’ll be happy to run the code for you.

The more attentive may protest – Why is Air Asia not on this analysis?

This is because without Python and code to normalize/average the data, google trends goes “Kaput” due to a large event for Air Asia (a tragic flight crash) that sent search volumes crazy. I couldn’t do the comparison. However, our analysis still holds even if AirAsia was in the mix – based on our graph that did just fine even with the event.