Cara Scrape Data Google Trends: Panduan Praktis Lengkap (2026)

Mengapa seseorang ingin melakukan scraping Google Trends di tahun 2026, sebelum menulis satu baris kode pun, "mengapa" layak dipertimbangkan sejenak.
Google Trends adalah sesuatu yang benar-benar langka di internet:
jendela yang dapat diakses publik secara real-time ke dalam apa yang jutaan orang secara aktif pikirkan, cari, dan perhatikan.
Bukan survei.
Bukan perilaku yang dilaporkan sendiri.
Kueri pencarian yang sebenarnya, diagregasi dan diindeks sebagai sinyal minat relatif, diperbarui secara terus-menerus.
Itu adalah sumber data yang luar biasa. Masalahnya adalah antarmukanya.
Situs web Google Trends dibangun untuk eksplorasi kasual. Anda dapat mengetikkan kata kunci, melihat grafik, dan membentuk kesan kasar tentang bagaimana minat telah bergerak.
Yang tidak dapat Anda lakukan, tidak melalui situs web, adalah menarik data minat mingguan di 200 kata kunci secara bersamaan, memantau kapan topik yang muncul mulai melonjak, membandingkan permintaan geografis di 40 pasar, atau mengintegrasikan sinyal Trends ke dalam pipeline konten otomatis atau intelijen bisnis.
Scraping menyelesaikan kesenjangan ini dengan tepat. Ini mengubah alat yang dirancang untuk rasa ingin tahu individu menjadi infrastruktur data yang dapat diskalakan.
Ringkasan:
Cara paling andal untuk melakukan scraping data Google Trends di tahun 2026 adalah dengan pytrends, pustaka Python tidak resmi yang berinteraksi dengan API Trends internal Google, tanpa memerlukan kunci API.
Untuk scraping volume lebih tinggi atau persyaratan yang lebih kompleks, otomasi browser melalui Playwright menawarkan lebih banyak fleksibilitas.
Kedua metode memerlukan rotasi proksi residensial dalam skala yang berarti untuk menghindari pembatasan laju berbasis IP.
Data Google Trends tersedia untuk publik, dapat diakses secara legal untuk analisis, dan digunakan setiap hari oleh profesional SEO, pemasar konten, peneliti, dan analis keuangan di seluruh dunia.
Siapa yang benar-benar menggunakan ini dalam skala besar:
Seorang pemilik toko Shopify memperhatikan melalui Google Trends bahwa minat terhadap «Stanley cup tumbler» mulai naik tajam pada Oktober 2022, sekitar enam minggu sebelum menjadi fenomena budaya.
Dia melipatgandakan inventaris aksesorinya dengan harga pokok. Pesaingnya, yang melacak tren yang sama secara manual, merespons enam minggu setelah lonjakan pencarian sudah mencapai puncaknya. Dia menangkap lonjakan permintaan; mereka mengejarnya.
Itulah yang sebenarnya dilakukan akses Google Trends terprogram untuk orang-orang nyata. Logika yang sama berlaku untuk SEO prioritisasi kata kunci, kalender konten editorial, analisis sentimen keuangan, penelitian akademis, dan intelijen kompetitif.
Datanya ada di sana. Pertanyaannya adalah apakah Anda mengaksesnya secara sistematis atau secara kebetulan.
Apakah legal melakukan scraping Google Trends
Jawaban langsung: Scraping Google Trends tidak ilegal menurut hukum Amerika Serikat, Uni Eropa, Inggris Raya, atau sebagian besar yurisdiksi besar lainnya. Ini mungkin bertentangan dengan Ketentuan Layanan Google, yang secara luas melarang akses otomatis, tetapi ini adalah pertimbangan kontraktual, bukan pertimbangan kriminal, dan penegakan terhadap peneliti atau analis individu praktis tidak ada.
Mari kita letakkan ini dalam konteks daripada membiarkannya samar:
Computer Fraud and Abuse Act di AS, Computer Misuse Act di Inggris, dan GDPR di UE semuanya membahas akses sistem yang tidak sah dan perlindungan data pribadi.
Scraping data agregat anonim yang tersedia untuk publik dari Google Trends tidak secara signifikan melibatkan kerangka kerja ini.
Putusan Sirkuit Kesembilan AS tahun 2022 dalam HiQ Labs v. LinkedIn menetapkan bahwa scraping data yang dapat diakses publik, data yang tidak memerlukan login atau autentikasi untuk dilihat, bukanlah pelanggaran CFAA.
Ketentuan Layanan Google adalah pertimbangan terpisah. Itu adalah kontrak antara Anda dan Google, bukan hukum. Melanggarnya dapat mengakibatkan pemblokiran IP atau penghentian layanan, konsekuensi teknis, bukan konsekuensi hukum.
Kerangka kerja pragmatis yang digunakan oleh para profesional:
Batasi permintaan. Jangan mengirim ratusan permintaan per menit. Akses otomatis yang wajar meniru perilaku manusia.
Scrape apa yang Anda butuhkan untuk analisis. Jangan mengarsipkan seluruh dataset tanpa tujuan.
Jangan mendistribusikan ulang data hasil scraping secara komersial. Di sinilah pertanyaan lisensi menjadi nyata.
Gunakan data untuk wawasan. Strategi konten, riset, dan intelijen bisnis adalah tujuan yang dirancang Google Trends untuk memberikan informasi.
Mayoritas besar profesional SEO, jurnalis, peneliti akademis, dan analis data yang melakukan scraping Google Trends melakukannya setiap hari tanpa masalah. Risikonya nyata secara teori, tetapi dapat diabaikan dalam praktik untuk kasus penggunaan yang sah.
Memahami apa itu data Google Trends
Sebelum menulis kode, memahami apa yang Anda tarik itu penting karena data Google Trends memiliki keunikan yang membingungkan pemula dan membuat frustrasi pengguna tingkat menengah.
Google Trends tidak menampilkan volume pencarian absolut:
Ini menampilkan minat relatif, skor dari 0 hingga 100 di mana 100 mewakili puncak minat dalam rentang waktu dan geografi yang Anda pilih.
50 berarti setengah dari puncak.
0 berarti data tidak cukup untuk ditampilkan.
Ini adalah data yang sengaja dinormalisasi.
Google tidak merilis jumlah volume pencarian mentah melalui Trends.
Apa artinya secara praktis:
Jika Anda menarik data untuk "kendaraan listrik" selama 5 tahun, skor minggu puncak adalah 100.
Setiap minggu lainnya, skor relatif terhadap puncak tersebut.
Jika Anda kemudian menarik kueri terpisah untuk "panel surya" selama periode yang sama, puncaknya juga mendapat skor 100, meskipun volume pencarian absolut untuk "panel surya" hanya sepersepuluh dari "kendaraan listrik".
Ini adalah masalah normalisasi. Ini membuat perbandingan lintas kueri dalam satu penarikan data menjadi bermakna, tetapi tidak dapat diandalkan di seluruh penarikan data yang terpisah .
Solusinya: Selalu bandingkan kata kunci dalam panggilan build_payload() pytrends yang sama. Menyertakan kata kunci "jangkar" yang konsisten (yang memiliki volume pencarian stabil dan dipahami dengan baik) di setiap batch memungkinkan Anda menormalisasi data di berbagai penarikan.
Sebagai contoh, menyertakan "cuaca", kata kunci dengan volume pencarian yang konsisten dan dapat diprediksi, sebagai jangkar di setiap batch memungkinkan Anda mengkalibrasi minat relatif secara sebanding di berbagai permintaan terpisah.
Perbandingan metode: Pendekatan scraping mana yang tepat untuk Anda
Sebelum menyelami setiap metode, berikut tabel keputusannya:
Metode | Kesulitan | Keandalan | Kecepatan | Kasus Penggunaan Terbaik | Keterbatasan Utama |
pytrends (pustaka Python) | Pemula | Tinggi | Cepat | Sebagian besar kasus penggunaan standar | Batasan rate pada volume tinggi |
Permintaan HTTP langsung | Menengah | Sedang- Tinggi | Cepat | Parameter kustom, batching | Memerlukan header /manajemen cookie |
Otomasi browser (Playwright) | Lanjutan | Sangat Tinggi | Lambat | Halaman kompleks, hindari CAPTCHA | Intensif sumber daya |
Platform tanpa kode (Apify, dll.) | Pemula | Sedang | Bervariasi | Non-developer, ekspor cepat | Biaya berlangganan berkelanjutan |
Ekspor CSV manual | Tidak ada | Sempurna | Sangat Lambat | Dataset kecil satu kali | Tidak dapat diskalakan |
Mulai dengan pytrends. Beralih ke otomasi browser hanya ketika pytrends secara konsisten gagal untuk kasus penggunaan spesifik Anda.
Metode 1: Pytrends

Jawaban langsung: pytrends adalah pustaka Python tidak resmi yang berkomunikasi dengan APIdata internal Google Trends. Tidak memerlukan kunci API, instalasi dalam hitungan detik, dan menangani tugas ekstraksi data paling umum dengan kode minimal. Ini adalah titik awal yang tepat untuk hampir semua orang.
Apa itu Pytrends
pytrends (awalnya dibuat oleh pengguna GeneralMills, sekarang dikelola oleh komunitas open-source) tersedia di GitHub dan PyPI.
Ini mengabstraksi endpoint Trends internal Google menjadi panggilan fungsi Python yang bersih, menangani cookie autentikasi, pemformatan permintaan, dan parsing respons secara otomatis.
Ini bukan produk resmi Google. Google tidak mendukungnya.
Namun ini bekerja dengan andal untuk sebagian besar kasus penggunaan standar dan telah digunakan secara aktif sejak 2015, dengan pemeliharaan komunitas yang konsisten hingga 2026.
Menginstal pytrends: bash
pip install pytrends
Python 3.7 atau yang lebih baru diperlukan. Itu saja instalasi lengkapnya.
Pengambilan data pertama Anda
Skrip ini mengambil data minat mingguan untuk satu kata kunci selama 12 bulan terakhir:
from pytrends.request import TrendReq
# Initialize — hl sets the language, tz sets the timezone offset
pytrends = TrendReq(hl='en-US', tz=360)
# Build the payload — specify up to 5 keywords here
pytrends.build_payload(
kw_list=['artificial intelligence'],
timeframe='today 12-m',
geo='' # Empty string = worldwide
)
# Pull interest over time
data = pytrends.interest_over_time()
print(data.head(10))Jalankan ini, dan Anda akan menerima pandas DataFrame, sebuah tabel dengan tanggal sebagai indeks baris dan skor minat mingguan (0–100) sebagai nilai. Kolom isPartial menunjukkan minggu yang belum sepenuhnya diindeks; saring untuk analisis yang bersih:
data = data[data['isPartial'] == False]Membandingkan beberapa kata kunci
Salah satu fitur paling kuat dari pytrends adalah perbandingan kata kunci langsung, hingga lima kata kunci secara bersamaan, dinormalisasi ke skala 100 poin yang sama:
from pytrends.request import TrendReq
pytrends = TrendReq(hl='en-US', tz=360)
pytrends.build_payload(
kw_list=['ChatGPT', 'Gemini', 'Claude AI', 'Copilot'],
timeframe='today 12-m',
geo='US'
)
data = pytrends.interest_over_time()
data = data[data['isPartial'] == False]
# Which platform has the highest average interest?
print(data[['ChatGPT', 'Gemini', 'Claude AI', 'Copilot']].mean())Data komparatif ini benar-benar strategis. Jika Anda membuat konten di ruang alat AI, mengetahui platform mana yang minat pencariannya tumbuh versus stagnan memberi tahu Anda ke mana perhatian audiens secara aktif bermigrasi, sebelum pergeseran itu terlihat di sumber data lain mana pun.
Data minat geografis
Di mana di dunia minat terkonsentrasi? Ini menarik data tingkat negara:
pytrends.build_payload(
kw_list=['electric vehicles'],
timeframe='today 12-m'
)
# Country-level interest
by_country = pytrends.interest_by_region(resolution='COUNTRY', inc_low_vol=True)
# Sort by interest descending
print(by_country.sort_values('electric vehicles', ascending=False).head(20))
Untuk resolusi regional dalam satu negara (negara bagian AS, wilayah Inggris), sesuaikan parameter resolution:
by_state = pytrends.interest_by_region(resolution='REGION', geo='US')Ini sangat berharga bagi bisnis yang membuat keputusan ekspansi geografis atau pengiklan yang mengalokasikan anggaran regional.
Kueri terkait yang meningkat: Fitur yang paling kurang dimanfaatkan
Di sinilah Google Trends menjadi alat intelijen konten yang sesungguhnya:
python
pytrends.build_payload(
kw_list=['remote work tools'],
timeframe='today 3-m'
)
related = pytrends.related_queries()
# Rising queries — growing fastest relative to their usual volume
print(related['remote work tools']['rising'])
# Top queries — highest absolute interest
print(related['remote work tools']['top'])Kueri terkait yang meningkat menunjukkan apa yang orang cari bersamaan dengan kata kunci Anda, yang tumbuh paling cepat dalam volume. Untuk pemasar konten, ini adalah intelijen kata kunci early-mover tiga hingga enam minggu. Publikasikan pada kueri terkait yang meningkat sebelum mencapai minat puncak, dan konten Anda diposisikan untuk kurva permintaan daripada mengejarnya.
Pencarian trending waktu nyata
Untuk memantau apa yang sedang trending saat ini:
trending_today = pytrends.trending_searches(pn='united_states')
print(trending_today.head(20))Ini mengembalikan 20 pencarian trending teratas di negara yang ditentukan pada saat permintaan. Berguna untuk pemantauan berita, strategi reaktivitas konten, dan identifikasi tren media sosial.
Metode 2: Permintaan HTTP langsung
Jawaban langsung: Permintaan HTTP langsung memberi Anda kontrol granular atas parameter kueri, header, dan manajemen sesi yang diabstraksi oleh pytrends. Ini sesuai untuk pengguna tingkat lanjut yang memerlukan format timeframe khusus, pemfilteran kategori yang tepat, atau manajemen permintaan batch volume tinggi.
Di balik layar, pytrends membuat permintaan GET ke endpoint Trends internal Google, terutama:
https://trends.google.com/trends/api/widgetdata/multiline
https://trends.google.com/trends/api/explore
Endpoint ini mengembalikan data JSON yang didahului oleh prefiks perlindungan ()]}') yang harus dihapus sebelum parsing.
Mereka juga memerlukan cookie sesi dan header tertentu yang divalidasi oleh server Google.
Berikut adalah pola yang berfungsi menggunakan library requests:
import requests
import json
session = requests.Session()
# First, establish a session by visiting the main Trends page
session.get('https://trends.google.com/')
# The explore endpoint generates widget tokens for data requests
params = {
'hl': 'en-US',
'tz': '-360',
'req': json.dumps({
"comparisonItem": [
{"keyword": "python programming", "geo": "", "time": "today 12-m"}
],
"category": 0,
"property": ""
}),
'token': '',
'user_type': ''
}
response = session.get(
'https://trends.google.com/trends/api/explore',
params=params
)
# Strip the protection prefix before parsing
clean_response = response.text.lstrip(")}']\n")
data = json.loads(clean_response)Ini lebih kompleks daripada PyTrends tetapi memberi Anda kontrol yang tepat atas setiap aspek permintaan. Sebagian besar pengguna tidak memerlukan tingkat kontrol ini, tetapi untuk pipeline produksi dengan persyaratan batching spesifik atau format kerangka waktu non-standar, ini adalah pendekatan yang tepat.
Metode 3: Otomasi browser dengan Playwright
Jawaban langsung: Playwright mengotomatiskan browser asli, membuat perilaku scraping Anda hampir tidak dapat dibedakan dari penjelajahan manusia asli. Ini adalah metode paling kuat untuk menghindari pembatasan rate dan CAPTCHA, tetapi secara signifikan lebih lambat dan lebih intensif sumber daya daripada pendekatan berbasis API.
Kapan menggunakan Playwright daripada pytrends:
pytrends mengembalikan error 429 yang konsisten, bahkan dengan proxy dan penundaan
Anda perlu menangkap elemen halaman visual atau interaktif yang tidak diekspos oleh API
Anda perlu menangani tantangan CAPTCHA (dengan solver pihak ketiga yang sesuai)
Anda melakukan scraping halaman Trends khusus dengan pola navigasi yang kompleks
Pengaturan Playwright yang andal:
from playwright.sync_api import sync_playwright
import time
with sync_playwright() as p:
# Launch browser — headless=False for debugging, True for production
browser = p.chromium.launch(headless=True)
# Create a context with realistic browser settings
context = browser.new_context(
user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
viewport={'width': 1280, 'height': 800}
)
page = context.new_page()
# Navigate to Trends
page.goto('https://trends.google.com/trends/explore?q=python+programming&date=today+12-m&geo=US')
# Wait for the data chart to render
page fully
.wait_for_selector('[class*="widget"]', timeout=10000)
# Add human-like delay
time.sleep(3)
# Extract page content for parsing
content = page.content()
# Alternatively, intercept the API response directly
# This is more reliable than parsing HTML
browser.close()
print("Data extracted successfully")Pendekatan yang lebih canggih mencegat permintaan jaringan yang dibuat Playwright saat memuat halaman, menangkap respons API secara langsung daripada mengurai HTML yang dirender. Ini menggabungkan keunggulan stealth dari otomasi browser dengan format data yang lebih bersih dari respons API. [Baca tentang dokumentasi Playwright Python]
Mengapa pembatasan rate terjadi dan cara menanganinya

Ini adalah bagian yang dihilangkan oleh sebagian besar tutorial, dan inilah mengapa pemula terjebak setelah beberapa permintaan pertama mereka berhasil.
Google Trends memiliki pembatasan rate berbasis IP. Kirim terlalu banyak permintaan dalam kerangka waktu singkat dari satu alamat IP, dan Anda akan mulai menerima error 429 (Terlalu Banyak Permintaan). Pada beberapa konfigurasi, Anda akan menerima tantangan CAPTCHA sebagai gantinya. Keduanya tidak berarti kode Anda rusak; itu berarti Anda telah memicu manajemen lalu lintas otomatis Google.
Solusi 1: Tambahkan penundaan permintaan
Perbaikan paling sederhana. Panggilan time.sleep() di antara permintaan memungkinkan sistem Google untuk mereset penghitung per-IP mereka:
import time
from pytrends.request import TrendReq
pytrends = TrendReq(hl='en-US', tz=360)
keywords = [
'content marketing', 'SEO strategy', 'link building',
'technical SEO', 'keyword research', 'on-page SEO'
]
results = {}
for keyword in keywords:
pytrends.build_payload([keyword], timeframe='today 12-m')
results[keyword] = pytrends.interest_over_time()
print(f"✓ {keyword}")
time.sleep(15) # 15 seconds between requests
print("All keywords retrieved.")Untuk pekerjaan batch dengan hingga 50 kata kunci per sesi, penundaan 10–15 detik biasanya cukup. Untuk batch yang lebih besar, tingkatkan menjadi 30–60 detik dan bagi menjadi beberapa sesi.
Solusi 2: Rotating residential proxies
Untuk otomasi volume tinggi, rotasi IP adalah solusi arsitektur yang tepat. Setiap permintaan dialihkan melalui alamat IP yang berbeda, sehingga tidak ada satu alamat IP yang mengumpulkan cukup permintaan untuk memicu pembatasan rate.
Tidak semua proxy sama untuk kasus penggunaan ini.
Google memelihara daftar ekstensif rentang IP pusat data: AWS, Google Cloud, DigitalOcean, Vultr, dan membatasi rate lalu lintas dari sumber-sumber ini jauh lebih agresif daripada lalu lintas dari alamat residensial.
Menggunakan proxy pusat data untuk scraping Google seringkali tidak memberikan perlindungan yang berarti sama sekali.
Residential proxies mengalihkan lalu lintas melalui alamat IP yang ditetapkan ke pelanggan ISP asli, koneksi internet rumah, dan perangkat seluler.
Bagi sistem Google, lalu lintas ini tidak dapat dibedakan dari pengguna asli.
Menggunakan proxy CyberYozh untuk scraping Google Trends yang stabil
Jawaban langsung: Residential proxies mencegah pembatasan rate Google Trends dengan mendistribusikan permintaan di ribuan alamat IP residensial yang berbeda. CyberYozh menawarkan rotating residential dan mobile proxies dengan kemampuan geo-targeting, yang sangat cocok untuk otomasi Google Trends.
Mengintegrasikan proxy CyberYozh ke dalam alur kerja pytrends:
from pytrends.request import TrendReq
import time
import random
# CyberYozh proxy configuration
proxy_config = {
'https': 'https://USERNAME:PASSWORD@gate.cyberyozh.com:PORT'
}
# Initialize pytrends with proxy support
pytrends = TrendReq(
hl='en-US',
tz=360,
requests_args={
'proxies': proxy_config,
'verify': True
}
)
keywords = ['machine learning', 'deep learning', 'neural networks',
'computer vision', 'natural language processing']
for keyword in keywords:
pytrends.build_payload([keyword], timeframe='today 12-m', geo='US')
data = pytrends.interest_over_time()
print(f"Retrieved: {keyword} — {len(data)} weeks of data")
time.sleep(random.uniform(8, 20)) # Randomize delays to mimic human behaviorrandom .uniform(8, 20) randomisasi penundaan penting; interval yang seragam secara terprediksi (tepat 10 detik setiap kali) dapat diidentifikasi sebagai perilaku otomatis oleh analisis lalu lintas yang canggih.
Penargetan geografis untuk data Trends:
Salah satu penerapan penargetan geo proxy yang sering diabaikan adalah menarik data Trends yang mencerminkan perilaku pencarian lokal yang asli.
Google Trends mengkalibrasi minat relatif berdasarkan geografi permintaan dalam beberapa konfigurasi.
IP residensial AS yang meminta data untuk parameter geo AS menghasilkan hasil yang lebih konsisten dibandingkan IP non-AS.
Penargetan IP tingkat negara CyberYozh mendukung kasus penggunaan ini secara native, berguna untuk agensi yang menjalankan analisis Trends multi-pasar atau peneliti yang membutuhkan data yang representatif secara geografis.
Lihat katalog proxy CyberYozh untuk IP paling terjangkau dan terpercaya secara global.
Untuk scraping berbasis Playwright, konfigurasi proxy sedikit berbeda:
python
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(
headless=True,
proxy={
"server": "https://gate.cyberyozh.com:PORT",
"username": "USERNAME",
"password": "PASSWORD"
}
)
# ... rest of automation codeMasalah normalisasi: Cara membandingkan data di berbagai penarikan

Ini adalah masalah yang paling sering membuat pengguna tingkat menengah tersandung, dan jarang dijelaskan dalam tutorial kompetitor.
Google Trends menormalisasi data dalam setiap kueri.
Titik minat tertinggi dalam rentang waktu yang Anda tentukan selalu 100.
Ini masuk akal untuk memvisualisasikan lintasan kata kunci tunggal.
Ini menciptakan masalah ketika Anda ingin membandingkan dua kata kunci yang ditarik dalam permintaan terpisah.
Skenario: Anda menarik data untuk "kata kunci A" dan mendapatkan puncak 100 di bulan Maret. Kemudian Anda menarik data untuk "kata kunci B" secara terpisah, dan juga mendapatkan puncak 100 di bulan Maret. Apakah itu berarti mereka memiliki volume pencarian yang sama? Hampir pasti tidak. Mereka hanya kebetulan berada di puncak masing-masing.
Teknik normalisasi kata kunci jangkar:
Sertakan kata kunci referensi yang stabil dalam setiap batch, yang memiliki volume pencarian yang dipahami dengan baik dan konsisten. Jangkar yang umum digunakan termasuk "Facebook," "YouTube," atau "weather", kata kunci yang mempertahankan minat pencarian yang relatif stabil dari bulan ke bulan.
from pytrends.request import TrendReq
import pandas as pd
import time
pytrends = TrendReq(hl='en-US', tz=360)
# Batch 1: Compare keyword sets against anchor
batch_1 = ['Facebook', 'content marketing', 'email marketing', 'social media marketing']
batch_2 = ['Facebook', 'SEO', 'PPC advertising', 'influencer marketing']
pytrends.build_payload(batch_1, timeframe='today 12-m', geo='US')
data_1 = pytrends.interest_over_time()[batch_1]
time.sleep(15)
pytrends.build_payload(batch_2, timeframe='today 12-m', geo='US')
data_2 = pytrends.interest_over_time()[batch_2]
# Now normalize both datasets against the anchor (facebook)
# The anchor's values are comparable across batches because they were in both
anchor = 'facebook'
data_1_normalized = data_1.div(data_1[anchor], axis=0)
data_2_normalized = data_2.div(data_2[anchor], axis=0)
# Now you can meaningfully compare any keyword from batch 1 with any from batch 2
print("Normalized comparison:")
print(pd.concat([
data_1_normalized.drop(columns=[anchor]),
data_2_normalized.drop(columns=[anchor])
], axis=1).mean())
Analis data profesional menggunakan teknik ini, dan jarang didokumentasikan dalam tutorial pengantar. Ini membuka kemampuan untuk membandingkan puluhan kata kunci di berbagai permintaan batch dengan hasil yang bermakna dan dapat dibandingkan.
Kasus penggunaan dunia nyata: Apa yang sebenarnya Anda lakukan dengan data ini

Data tanpa aplikasi hanyalah spreadsheet yang menarik. Inilah seperti apa analisis Google Trends yang bermakna dalam praktik:
Optimisasi kalender konten
Tarik kueri terkait yang meningkat setiap minggu untuk kluster topik inti Anda.
Ketika kata kunci terkait melewati 40+ pada skala 0–100 dan terus naik, publikasikan konten yang fokus pada topik tersebut segera.
Targetkan kurva pertumbuhan, bukan puncaknya.
Perencanaan inventaris musiman dan pengeluaran iklan
Lima tahun data minat mingguan mengungkapkan pola musiman dengan keandalan yang luar biasa.
Pengecer yang menjual furnitur luar ruangan dapat melihat dengan tepat kapan minat musim semi mulai meningkat di pasar target mereka, biasanya 4–6 minggu sebelum perilaku pembelian mencapai puncak, dan mengatur waktu kampanye berbayar mereka sesuai dengan itu.
Prioritisasi kata kunci SEO
Sebelum berinvestasi dalam kampanye konten untuk kata kunci target, verifikasi lintasannya.
Kata kunci dengan 30.000 pencarian bulanan dan lintasan Trends yang meningkat adalah investasi yang lebih baik daripada yang memiliki 50.000 pencarian dan lintasan yang menurun.
Anda membeli ke pasar yang berkembang daripada yang menyusut.
Intelijen merek kompetitif
Lacak minat pencarian bermerek kompetitor Anda dari waktu ke waktu.
Pertumbuhan berkelanjutan dalam pencarian bermerek kompetitor merupakan sinyal peringatan dini, lebih informatif daripada metrik yang mereka publikasikan dan tersedia secara real time.
Indikator sentimen finansial
Minat pencarian dalam kategori seperti «refinancing mortgage,» «recession,» «layoffs,» dan «side hustle» berfungsi sebagai indikator utama sentimen konsumen.
Dana lindung nilai besar dan lembaga riset ekonomi menggunakan Google Trends sebagai salah satu input dalam model peramalan ekonomi yang lebih luas.
Riset akademis dan jurnalisme
Mengukur perhatian publik terhadap peristiwa berita, perubahan kebijakan, tokoh publik, dan momen budaya dari waktu ke waktu memberikan bukti pola minat kolektif yang dapat diverifikasi dan dikutip, lebih objektif daripada penilaian editorial.
Mengekspor dan memvisualisasikan data Google Trends
Setelah Anda memiliki data, langkah selanjutnya yang paling umum adalah ekspor dan visualisasi:
from pytrends.request import TrendReq
import matplotlib.pyplot as plt
import pandas as pd
pytrends = TrendReq(hl='en-US', tz=360)
pytrends.build_payload(
['AI tools', 'automation software'],
timeframe='today 5-y',
geo='US'
)
data = pytrends.interest_over_time()
data = data[data['isPartial'] == False]
# Export to CSV for spreadsheet analysis
data.to_csv('google_trends_export.csv')
print("CSV exported successfully.")
# Create a clean visualization
fig, ax = plt.subplots(figsize=(14, 6))
data['AI tools'].plot(ax=ax, label='AI Tools', color='#2563EB', linewidth=2)
data['automation software'].plot(ax=ax, label='Automation Software', color='#7C3AED', linewidth=2)
ax.set_title('Search Interest Comparison: AI Tools vs Automation Software (5 Years, US)',
fontsize=14, fontweight='bold', pad=20)
ax.set_ylabel('Interest Score (0–100)', fontsize=11)
ax.set_xlabel('')
ax.legend(fontsize=11)
ax.grid(True, alpha=0.3)
ax.set_ylim(0, 110)
plt.tight_layout()
plt.savefig('trends_comparison.png', dpi=150, bbox_inches='tight')
plt.show()Untuk tim yang lebih suka spreadsheet daripada Python, ekspor CSV sepenuhnya kompatibel dengan Excel dan Google Sheets. Struktur pandas DataFrame terpetakan dengan rapi ke format tabular, dengan tanggal di kolom A dan nilai minat kata kunci di kolom berikutnya.
Mengatasi kesalahan paling umum dan cara memperbaikinya
Error: 429 Too Many Requests Anda telah melebihi batas kecepatan per-IP Google. Tambahkan atau tingkatkan jeda time.sleep() di antara permintaan (mulai dengan 15–30 detik). Untuk error 429 yang persisten pada tingkat jeda apa pun, implementasikan rotating residential proxies.
Error: ResponseError 500. Biasanya, ini adalah masalah server sementara di sisi Google. Tunggu 5–10 menit dan coba lagi. Kadang-kadang dipicu oleh parameter payload yang salah format, periksa kembali format string timeframe Anda ('today 12-m', 'today 3-m', '2022-01-01 2023-12-31').
DataFrame kosong dikembalikan. Kata kunci Anda memiliki volume pencarian yang tidak mencukupi untuk geografi atau timeframe yang ditentukan. Coba perluas parameter geo yang disetel ke (string kosong untuk seluruh dunia) atau perpanjang timeframe. Beberapa kata kunci long-tail yang sangat spesifik memang tidak memiliki data yang cukup untuk mengembalikan hasil.
Tantangan CAPTCHA dipicu, Google mencurigai akses otomatis. Beralih ke residential proxies, tingkatkan jeda secara substansial, dan kurangi volume permintaan per sesi. Otomasi browser dengan Playwright lebih tahan terhadap pemicu CAPTCHA daripada permintaan API langsung.
Instalasi pytrends gagal. Pastikan Python 3.7+ terinstal: python --version. Coba upgrade pip terlebih dahulu: pip install --upgrade pip, kemudian pip install pytrends.
Hanya data parsial (isPartial = True untuk sebagian besar baris). 2–3 hari terakhir data Trends selalu parsial; Google belum sepenuhnya mengindeksnya. Filter baris-baris ini: data = data[data['isPartial'] == False].
Normalisasi lintas-batch memberikan hasil yang tidak konsisten. Lihat bagian normalisasi kata kunci jangkar di atas. Selalu sertakan kata kunci referensi yang stabil di setiap batch untuk memungkinkan perbandingan lintas-batch yang bermakna. [Baca selengkapnya tentang error 499 dan error 520]
Sumber daya GitHub pilihan
Daripada "cari di GitHub dan Anda akan menemukan sesuatu yang berguna," berikut adalah sumber daya spesifik yang layak ditandai:
repositori resmi pytrends: Referensi utama untuk dokumentasi metode, masalah yang diketahui, dan changelog. Tab Issues berisi solusi untuk sebagian besar error kasus khusus.
Proyek dashboard pencarian trending: beberapa repositori yang dikelola komunitas dibangun di atas pytrends untuk membuat dashboard kata kunci trending real-time. Cari "pytrends dashboard" di GitHub untuk opsi yang paling baru dikelola.
Utilitas normalisasi data Trends: repositori yang secara khusus menangani masalah normalisasi lintas-batch yang dibahas di atas. Cari "Google Trends normalization Python" untuk menemukan opsi dengan bintang terbanyak.
Scraper Google Trends Apify: Untuk non-developer yang membutuhkan data Google Trends tanpa menulis kode, aktor Google Trends yang dikelola Apify menyediakan antarmuka tanpa kode dengan penjadwalan otomatis dan ekspor data. Biaya bervariasi berdasarkan volume penggunaan.
Bangun pipeline sekali, gunakan selamanya
Google Trends adalah salah satu dari sedikit sumber data yang benar-benar gratis, benar-benar powerful yang kebanyakan orang gunakan hanya pada 10% dari potensinya. Investasi satu kali dalam menyiapkan pipeline pytrends, bahkan yang dasar yang berjalan mingguan sesuai jadwal, memberi Anda sistem peringatan dini berkelanjutan untuk topik yang sedang naik, pergeseran minat audiens, dan dinamika kompetitif yang muncul.
Siapkan dasar-dasarnya hari ini. Tambahkan infrastruktur proxy seiring volume Anda bertambah. Dan mulai perlakukan perilaku pencarian publik sebagai aset intelijen strategis yang sebenarnya, bukan sesuatu yang Anda periksa secara manual ketika Anda ingat.
Data diperbarui secara terus-menerus. Apakah Anda memperhatikannya adalah satu-satunya variabel yang dapat Anda kontrol.