How to get finer-grained Google search data

28/7/2024

Google search volumes can be a pretty good market research signal. Their usefulness goes way beyond simple SEO. Search volumes can provide insights into market demand, emerging trends, and much more.

One way of making use of such data is through Google Trends. Google Trends is a gold mine for analysts and researchers, but it has a major drawback: indexed data. It can tell you that search volumes have doubled but it won’t tell you if they went from 10k to 20k or from 10m to 20m. Luckily, there are some workarounds.

Getting some data

Let’s get some data from Google Trends. For best results, we’ll need a keyword with decent amounts of search volume. For example: nike . Download the CSV file.

NOTE: The time range filter should be set as precisely as possible, to avoid issues with the scaling factor. In this case, we’ll take June 2024 - today

As mentioned, this is only one half of the equation. We now have a dataset that tells us how searches have been moving for the keyword nike, but not much else.

We now need a precise number to anchor things on. One way to get this is Google Keyword Planner . There are also some 3rd party vendors .

NOTE: Google Keyword Planner might show ranges if your ad spent is below a certain threshold (which doesn’t seem to be public knowledge)

import pandas as pd
pd.set_option('display.float_format', '{:,.0f}'.format)
data = pd.read_csv("multiTimeline.csv",  header=None, names=['Date', 'Value'])
data = data.iloc[2:]
data.Date = pd.to_datetime(data.Date)
data.Value = pd.to_numeric(data.Value)
data =data.set_index("Date", drop=True)

Here’s the Google Trends Data:

Value
Date
2024-06-0175
2024-06-0278
2024-06-0372
2024-06-0469
2024-06-0568
2024-06-0668
2024-06-0769
2024-06-0880
2024-06-0980
2024-06-1071
2024-06-1171
2024-06-1272
2024-06-1369
2024-06-1468
2024-06-1578
2024-06-1676
2024-06-1767
2024-06-1862
2024-06-1967
2024-06-2063
2024-06-2166
2024-06-2275
2024-06-2377
2024-06-2469
2024-06-2565
2024-06-2666
2024-06-2766
2024-06-2872
2024-06-2973
2024-06-3076
2024-07-0169
2024-07-0269
2024-07-0372
2024-07-0476
2024-07-0566
2024-07-0679
2024-07-0778
2024-07-0870
2024-07-0970
2024-07-1074
2024-07-1172
2024-07-1277
2024-07-1384
2024-07-1479
2024-07-1572
2024-07-1674
2024-07-1777
2024-07-1877
2024-07-1984
2024-07-2093
2024-07-2190
2024-07-2280
2024-07-2379
2024-07-2478
2024-07-2584
2024-07-2686
2024-07-27100
2024-07-2896

We’ll only need the June subset:

Value
Date
2024-06-0175
2024-06-0278
2024-06-0372
2024-06-0469
2024-06-0568
2024-06-0668
2024-06-0769
2024-06-0880
2024-06-0980
2024-06-1071
2024-06-1171
2024-06-1272
2024-06-1369
2024-06-1468
2024-06-1578
2024-06-1676
2024-06-1767
2024-06-1862
2024-06-1967
2024-06-2063
2024-06-2166
2024-06-2275
2024-06-2377
2024-06-2469
2024-06-2565
2024-06-2666
2024-06-2766
2024-06-2872
2024-06-2973
2024-06-3076

I went ahead and looked up the search volumes in Google Keyword Planner -> 5m average searches in June 2024. What’s left to do is to convert index values in absolute values.

screenshot

june_avg_idx = june.mean()
june_abs_value = 5_000_000

The conversion is pretty straightforward: we multiply the indexed value by the absolute value for June and then divide by the average index:

final_data = data["Value"].apply(lambda x: (x * june_abs_value)/june_avg_idx)
final_data
Value
Date
2024-06-015,286,654
2024-06-025,498,120
2024-06-035,075,188
2024-06-044,863,722
2024-06-054,793,233
2024-06-064,793,233
2024-06-074,863,722
2024-06-085,639,098
2024-06-095,639,098
2024-06-105,004,699
2024-06-115,004,699
2024-06-125,075,188
2024-06-134,863,722
2024-06-144,793,233
2024-06-155,498,120
2024-06-165,357,143
2024-06-174,722,744
2024-06-184,370,301
2024-06-194,722,744
2024-06-204,440,789
2024-06-214,652,256
2024-06-225,286,654
2024-06-235,427,632
2024-06-244,863,722
2024-06-254,581,767
2024-06-264,652,256
2024-06-274,652,256
2024-06-285,075,188
2024-06-295,145,677
2024-06-305,357,143
2024-07-014,863,722
2024-07-024,863,722
2024-07-035,075,188
2024-07-045,357,143
2024-07-054,652,256
2024-07-065,568,609
2024-07-075,498,120
2024-07-084,934,211
2024-07-094,934,211
2024-07-105,216,165
2024-07-115,075,188
2024-07-125,427,632
2024-07-135,921,053
2024-07-145,568,609
2024-07-155,075,188
2024-07-165,216,165
2024-07-175,427,632
2024-07-185,427,632
2024-07-195,921,053
2024-07-206,555,451
2024-07-216,343,985
2024-07-225,639,098
2024-07-235,568,609
2024-07-245,498,120
2024-07-255,921,053
2024-07-266,062,030
2024-07-277,048,872
2024-07-286,766,917

92 rows × 1 columns

Boom. We now have finer-grained data all the way up to July 28.

Code: Github Repo