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.

Sonraki Yazı

Python İle Temel Veri İşlemleri
· python

Önceki Yazı

Python String Metotları
· python
AA

İç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ı konrol etmiştim. Bu yazı bağlamında, bir sonraki aşamaya geçelip 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 Search Console

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

Google Search Console sorgular ve sorgu-sayfa ilişkilerini anlayamabilmemiz 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.