What is the seasonality trend of search terms?
The seasonality trend of search terms refers to the regular and predictable pattern of variation in the popularity or search volume of specific keywords or phrases over time. This pattern typically repeats itself within a certain period, such as weekly, monthly, or annually. The concept of seasonality is often associated with certain events, holidays, weather changes, or other factors that influence people’s behaviour and interests at specific times of the year.
We can get search trend data of a particular search term using Google Trends but if we want to get a trend data history of the past five years, then we couldn’t get that forecast from Google Trends.
Here we have come up with a solution! We have created a custom script of python to analyse the trend data of the past five years and get a forecast report.
Here are the steps to follow:
Step 1: Open Google Colab
Step 2: Insert code cell
Step 3: Type the code
Install pytrends library by copy pasting the following code and click the on the button:
!pip install pytrends –quiet
Install peakutils library by copy pasting the following code and click the on the button:
!pip install peakutils –quiet
Import peakutils library:
import peakutils
from collections import Counter
Import other important libraries:
import pandas as pd
import numpy as np
import scipy.stats as sp
import matplotlib.pyplot as plt
Define Months of the year variables:
MONTHS = {1:’Jan’, 2:’Feb’, 3:’Mar’, 4:’Apr’, 5:’May’, 6:’Jun’, 7:’Jul’, 8:’Aug’, 9:’Sep’, 10:’Oct’, 11:’Nov’, 12:’Dec’}
Define get_peaks variable and the parameters:
def get_peaks(kw, geo=’UAE’, timeframe=’today 5-y’):
“””
A function to get the trend for a keyword and to spot when peaks happen.
Notes
—–
This func uses pytrends, an unofficial API for Google Trends
.. _Pytrends Repo/Docs
https://github.com/GeneralMills/pytrends
Parameters
———-
kw : str
A search term.
geo : str
A two-letters string representing a country.
Default: US
timeframe : str
A string representing the timeframe.
Default: last 3 years.
Nice timeframes to know:
* Last 3 years: ‘today 3-y’
* Everything: ‘all’
“””
from pytrends.request import TrendReq
pytrend = TrendReq()
pytrend.build_payload(kw_list=[kw], timeframe=timeframe, geo=geo)
df =pytrend.interest_over_time()
df.drop(columns=’isPartial’, inplace=True)
df = df.resample(‘M’).mean()
# line chart on resampled DF
df.plot(figsize=(20,3))
# bar chart on resampled DF
df.plot.bar(figsize=(20,3))
time_series = df[kw]
cb = np.array(time_series)
indices = peakutils.indexes(cb, thres=0.60, min_dist=0.1)
months = []
for i in indices:
month = time_series.index[i].to_pydatetime().month
val = int(time_series.iloc[i])
months.append(MONTHS[month])
print(“===PEAK MONTHS===”)
sleep=60
print(Counter(months).most_common(3))
#Uncomment the following lines if you want rising queries
#print(“===RISING QUERIES===”)
#print(pytrend.related_queries()[kw][‘rising’])
#Uncomment the following lines if you want top queries
#print(“===TOP QUERIES===”)
#print(pytrend.related_queries()[kw][‘top’])
Step 4: Insert the inputs to the program for getting the results
get_peaks(‘Hardwood flooring installation‘, ‘US‘)
Here is the trend data forecast of past 5 years:
This data is for Hardwood flooring installation this search term, and US location.
This is how we can get the google search trend data forecast(5 years data) of the search terms and analyse the peak of the time when the search volume changes at most.
A simple way to detect if and when a search term reaches a seasonal peak, using Google Trends data.
Practical use cases:
- Decide the best month to update an existing article
- Decide the best month to publish a new article
Here i am giving the colab experimented dashboard where you can just input your search terms to generate the trend data to analyse
Here is the link: https://colab.research.google.com/drive/1PMnoRkAYSGULPjSDTlkAhyj7DhgtTN0V?usp=sharing
Note:
You may find some error while getting data of particular keywords,
For example:
So don’t worry about that, that will occur due unavailability of the data in google trend database. You need to input other form of search term and run the code.