Python İle Google Analytics ve Search Console API İşlemleri
Daha önce R programlama dilini kullanarak gerçekleştirdiğim Google Analyics ve Google Search Console API kullanım örneğini bu kez Python İle SiteMap Kontrolü başlıklı yazının da devamı olarak Python ile yeniden ele alacağım.
İçerik analizi sürecinde, ilk olarak Python İle SiteMap Kontrolü ile site haritası içerisinde yer alan bağlantılara ulaşmış ve bu bağlantıların durum kodlarını kontrol etmiştim. Bu yazı bağlamında, bir sonraki aşamaya geçip Google Analytics ve Google Search Console ile analiz gerçekleştirmek istediğimiz zaman dilimi doğrultusunda sayfalar ve dolayısıyla içeriklerimiz ile ilgili temel bazı bilgileri toplayalım.
Bu süreci daha önce R dili ile de ele almıştık. Detaylar için R İle Google Analytics Reporting API Erişimi, Google Analytics ve Google Search Console Sayfa Verileri ve R İle Sayfa Verilerinin Derlenmesi başlıklı yazılarıma göz atabilirsiniz.
Öncelikli, ilgili paketlerin yüklenmesi ile başlayabiliriz.
pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib oauth2client
Eğer Colab ya da Jupyter Notebook kullanacaksanız yukarıdaki komutun başına ünlem (!
) koyarak notebook içerisinden de paketlerin yüklenmesini sağlayabilirsiniz. Unutmadan ekleyeyim, !
ile birlikte pek çok komutu kullanabilmektesiniz. Örneğin; !ls -li
.
Artık ilgili paketleri çağırabiliriz.
from googleapiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
Google Analytics
Google Analytics verilerine güncel sayfa durumları hakkında fikir edinebilmek amacıyla başvuracağız. Bu bilgiler arasında diğer tablolarla (sitemap, vb.) ortaklık sağlayacak olan sayfa yolu (page path) ve sayfa başlığı (page title) boyutları, hemen çıkma oranı (bounce rate), sayfada geçirilen ortalama süre (average time on page), oralama oturum süresi (average session duration) ve ortalama sayfa yüklenme süresi (average page load time) gibi metrikler yer almakta1. İhtiyaçlar doğrultusunda yeni metrik ve boyutlar dahil edilebilir, filtre ve segment seçenekleri ile edinilecek veri ile ilgili ön işlemler gerçekleştirilebilir. Tarih aralığı olarak 1 yıllık bir dönem makul görünüyor.
Bu verileri isteyeceğimiz kapsamımız; https://www.googleapis.com/auth/analytics.readonly
.
build('analyticsreporting', 'v4', credentials=ServiceAccountCredentials.from_json_keyfile_name(getKeyFile, 'https://www.googleapis.com/auth/analytics.readonly')).reports().batchGet(body={
'reportRequests': [{
'viewId': '123456789',
'dateRanges': {
'startDate': '2020-05-30',
'endDate': '2021-05-30'
},
'metrics': [{
'expression': 'ga:bounceRate',
'alias': 'bounceRate'
}, {
'expression': 'ga:pageviews',
'alias': 'pageviews'
}, {
'expression': 'ga:avgTimeOnPage',
'alias': 'avgTimeOnPage'
}, {
'expression': 'ga:avgSessionDuration',
'alias': 'avgSessionDuration'
}, {
'expression': 'ga:avgPageLoadTime',
'alias': 'avgPageLoadTime'
}],
'dimensions': [{
'name': 'ga:pagePath'
}, {
'name': 'ga:pageTitle'
}],
'orderBys': [{
'fieldName': 'ga:pageviews',
'orderType': 'VALUE',
'sortOrder': 'DESCENDING'
}],
'samplingLevel': 'LARGE',
'pageSize': 10000
}]
}).execute()
Google Search Console
Google Search Console sorgular ve sorgu-sayfa ilişkilerini anlayabilmemiz için ekstra bir önem taşıyor. İlerleyen aşamalarda az önce Google Analyics başlığı altında belittiğimiz sayfa başlığı ile GSC sorguları ve ilgili kelimelerin sayfa içi kullanım yoğunluklarına da bakacağız2. Bunun yanı sıra, hangi sorgularda ne yoğunlukta listelendiğimiz ve buna bağlı olarak da tıklama oranı gibi önemli bilgileri de yine GSC sayesinde edinebilmekteyiz3.
İlgili veriler için istek kapsamımız; https://www.googleapis.com/auth/webmasters.readonly
build('webmasters', 'v3', credentials=ServiceAccountCredentials.from_json_keyfile_name(getKeyFile, 'https://www.googleapis.com/auth/webmasters.readonly').searchanalytics().query(siteUrl='https://google.com', body={
'startDate': '2020-05-30',
'endDate': '2021-05-30',
'dimensions': ['query', 'page'],
'rowLimit': 10000
}).execute()
Her iki kod parçacığında da geçen getKeyFile
dosyasını Google Cloud Platform üzerinde oluşturduğunuz projeye ait Settings > IAM & Admin > Service Accounts > Keys > Add Key > JSON > Create[/bid] adımlarını izleyerek oluşturabilirsiniz4. Email alanında yazan e-posta adresini (bkz. identity@project-name.iam.gserviceaccount.com
) hem Google Analytics hem de Google Search Console hesabına kullanıcı olarak tanımlamalısınız5.
Kod üzerinde sıklıkla çalıştığım için güncel işlevlerde farklılık olmaması adına yazı içerisine eklemedim. İlgili kod ile ilgili işlemler yapmak için colab çalışma dosyasından faydalabilirsiniz. Ayrıca, PageContentAnalysis reposu üzerinden de diğer dosyalara erişebilirsiniz.
- Google Analytics Reporting API v4. Google Developers ↩
- Search Console API (Search Analytics, Sitemaps, Sites). Search Console API ↩
- Quickstart: Run a Search Console App in Python. Search Console API ↩
- Google Cloud Platform ↩
- Analytics Google API Error 403: “User does not have any Google Analytics Account”. stackoverflow ↩