Search Console API, web site performansını detaylı analiz etmek ve belirli dönemlerdeki ani değişiklikleri tespit etmek için güçlü bir araçtır. Impression spike (görüntüleme artışı) gibi ani ve beklenmedik değişiklikleri otomatik olarak tespit etmek, SEO ve içerik stratejilerinde hızlı aksiyon almayı sağlar. Bu noktada, API kullanımıyla beraber Python tabanlı bir script örneği üzerinden, nasıl otomatik impression spike tespiti yapabileceğinizi anlatacağım.
İlk olarak, API erişimi için Google Cloud Console üzerinde proje oluşturup, OAuth2 kimlik doğrulaması yapmanız gerekiyor. Ardından, Search Console API'yi aktif edip, uygun yetkilere sahip bir erişim anahtarı (API key veya OAuth token) almanız gerekir.
Script temel olarak şu adımları içerir:
- Belirli bir tarih aralığını belirleyin.
- Günlük veya haftalık impression verilerini çekin.
- Veri seti üzerinde ortalama ve standart sapma hesaplayın.
- Günlük verilerden herhangi biri, ortalamanın birkaç standart sapma üzerinde ise spike olarak işaretleyin.
Kullanılan ana fonksiyonlar ve mantık şu şekildedir:
- Veri Çekimi: API üzerinden
searchanalytics.query metoduyla sorgu yaparak, belirli anahtar kelimeler ve sayfalar için impression verilerini alın. - İstatistiksel Analiz: Günlük impression verilerini toplayıp, ortalama ve standart sapma hesaplayın.
- Spike Tespiti: Günlük verilerin herhangi biri, ortalamadan büyükçe ve belirli bir eşik değere (örneğin 2 veya 3 standart sapma) yakınsa, spike olarak kabul edin.
Örnek kod parçacığı şu şekildedir:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556import requests
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
# Google API erişim bilgileriniz
API_ENDPOINT = 'https://searchconsole.googleapis.com/v1/sites/YOUR_SITE_URL/searchAnalytics/query'
ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN'
headers = {
'Authorization': f'Bearer {ACCESS_TOKEN}',
'Content-Type': 'application/json'
}
# Veri çekme fonksiyonu
def fetch_impressions(start_date, end_date):
body = {
"startDate": start_date,
"endDate": end_date,
"dimensions": ["date"],
"rowLimit": 1000
}
response = requests.post(API_ENDPOINT, headers=headers, json=body)
data = response.json()
# Veriyi pandas DataFrame'e dönüştür
df = pd.DataFrame(data.get('rows', []))
if not df.empty:
df['date'] = pd.to_datetime(df['keys'].apply(lambda x: x[0]))
df['impressions'] = df['impressions'].astype(int)
return df[['date', 'impressions']]
return pd.DataFrame()
# Spike tespiti fonksiyonu
def detect_spikes(df):
mean = df['impressions'].mean()
std = df['impressions'].std()
threshold = mean + 2 * std # 2 standart sapma eşiği
spikes = df[df['impressions'] > threshold]
return spikes
# Günlük veri çekimi ve analiz
end_date = datetime.now()
start_date = end_date - timedelta(days=30)
df = fetch_impressions(start_date.strftime('%Y-%m-%d'), end_date.strftime('%Y-%m-%d'))
if not df.empty:
spikes = detect_spikes(df)
if not spikes.empty:
print("Impression spike tespit edildi:")
print(spikes)
else:
print("Spikes bulunamadı.")
else:
print("Veri alınamadı.")
Bu temel yapı, günlük impression verilerinde ani artışları tespit edebilir. Elbette, spike tespiti için eşik değeri ve analiz yöntemi, sitenin trafik yapısına göre uyarlanmalı. Ayrıca, API erişimi ve yetkilendirme detaylarını doğru yapılandırmanız önemli.
Bu script ile düzenli otomatik raporlama ve uyarı sistemi kurmak mümkün. Sizce, gerçek zamanlı veya günlük bazlı otomatik spike tespiti, SEO çalışmalarında ne kadar faydalı olur? Yorumlarınızı ve deneyimlerinizi paylaşabilirsiniz.