Bu eğitimde, Analytics Reporting API v4'e erişmek için gereken adımlar açıklanmaktadır.
1. API'yi etkinleştirme
Analytics Reporting API v4'ü kullanmaya başlamak için önce Google API Konsolu'nda proje oluşturma, API'yi etkinleştirme ve kimlik bilgileri oluşturma konusunda size yol gösterecek olan kurulum aracını kullanmanız gerekir.
Not: Web İstemci Kimliği veya Yüklü Uygulama İstemcisi oluşturmak için izin ekranında bir ürün adı belirlemeniz gerekir. Henüz yapmadıysanız İzin ekranını yapılandırma yapmanız istenir.Kimlik bilgileri oluştur
- Credentials (Kimlik Bilgileri) sayfasını açın.
- Kimlik bilgileri oluştur'u tıklayın ve OAuth istemci kimliği'ni seçin.
- Uygulama türü için Diğer'i seçin.
- İstemci kimliğini quickstart olarak adlandırın ve quickstart'u tıklayın.
Kimlik bilgileri sayfasında yeni oluşturulan istemci kimliğini tıklayın ve JSON'yi indir'i tıklayıp client_secrets.json
olarak kaydedin. Eğitimin ilerleyen bölümlerinde bu bilgiye ihtiyacınız olacaktır.
2. İstemci kitaplığını yükleme
Python paketlerini yüklemek için pip ile venv birlikte kullanılması önerilir: sudo -s apt-get install python3-venv python3 -m venv analytics-quickstart source analytics-quickstart/bin/activate pip install --upgrade client-api-python-client pip install --upgrade oauth
3. Örneği oluşturun
Belirtilen örnek kodu içeren HelloAnalytics.py
adında tek bir dosya oluşturmanız gerekir.
- Aşağıdaki kaynak kodunu
HelloAnalytics.py
hizmetine kopyalayın veya indirin. - Daha önce indirilen
client_secrets.json
öğesini örnek kodla aynı dizine taşıyın. VIEW_ID
değerini değiştirin. Bir Görünüm Kimliği'ni bulmak için Hesap Gezgini'ni kullanabilirsiniz.
"""Hello Analytics Reporting API V4.""" import argparse from apiclient.discovery import build import httplib2 from oauth2client import client from oauth2client import file from oauth2client import tools SCOPES = ['https://www.googleapis.com/auth/analytics.readonly'] CLIENT_SECRETS_PATH = 'client_secrets.json' # Path to client_secrets.json file. VIEW_ID = '<REPLACE_WITH_VIEW_ID>' def initialize_analyticsreporting(): """Initializes the analyticsreporting service object. Returns: analytics an authorized analyticsreporting service object. """ # Parse command-line arguments. parser = argparse.ArgumentParser( formatter_class=argparse.RawDescriptionHelpFormatter, parents=[tools.argparser]) flags = parser.parse_args([]) # Set up a Flow object to be used if we need to authenticate. flow = client.flow_from_clientsecrets( CLIENT_SECRETS_PATH, scope=SCOPES, message=tools.message_if_missing(CLIENT_SECRETS_PATH)) # Prepare credentials, and authorize HTTP object with them. # If the credentials don't exist or are invalid run through the native client # flow. The Storage object will ensure that if successful the good # credentials will get written back to a file. storage = file.Storage('analyticsreporting.dat') credentials = storage.get() if credentials is None or credentials.invalid: credentials = tools.run_flow(flow, storage, flags) http = credentials.authorize(http=httplib2.Http()) # Build the service object. analytics = build('analyticsreporting', 'v4', http=http) return analytics def get_report(analytics): # Use the Analytics Service Object to query the Analytics Reporting API V4. return analytics.reports().batchGet( body={ 'reportRequests': [ { 'viewId': VIEW_ID, 'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}], 'metrics': [{'expression': 'ga:sessions'}] }] } ).execute() def print_response(response): """Parses and prints the Analytics Reporting API V4 response""" for report in response.get('reports', []): columnHeader = report.get('columnHeader', {}) dimensionHeaders = columnHeader.get('dimensions', []) metricHeaders = columnHeader.get('metricHeader', {}).get('metricHeaderEntries', []) rows = report.get('data', {}).get('rows', []) for row in rows: dimensions = row.get('dimensions', []) dateRangeValues = row.get('metrics', []) for header, dimension in zip(dimensionHeaders, dimensions): print header + ': ' + dimension for i, values in enumerate(dateRangeValues): print 'Date range (' + str(i) + ')' for metricHeader, value in zip(metricHeaders, values.get('values')): print metricHeader.get('name') + ': ' + value def main(): analytics = initialize_analyticsreporting() response = get_report(analytics) print_response(response) if __name__ == '__main__': main()
4. Örneği çalıştır
Şunu kullanarak örneği çalıştırın:
python HelloAnalytics.py
- Uygulama, yetkilendirme sayfasını bir tarayıcıda yükler.
- Google hesabınıza giriş yapmadıysanız giriş yapmanız istenir. Birden çok Google hesabına giriş yaptıysanız yetkilendirme için kullanılacak bir hesap seçmeniz istenir.
Bu adımları tamamladığınızda, örnek, belirtilen görünüm için son yedi gündeki oturum sayısını verir.
Sorun giderme
AttributeError: "Module_six_moves_urllib_parse" nesnesi "urlparse" özelliğine sahip değil
Bu hata, "altı" modülünün (bu kitaplığın bağımlılığı) varsayılan yüklemesinin, pip'in yüklediği modülden önce yüklendiği Mac OSX'te ortaya çıkabilir. Sorunu düzeltmek için pip'in yükleme konumunu PYTHONPATH
sistem ortamı değişkenine ekleyin:
Aşağıdaki komutla pip'in yükleme konumunu belirleyin:
pip altı göster | grep "Location:" | kes -d " " -f2
<pip_install_path>
kısmını yukarıda belirtilen değerle değiştirerek aşağıdaki satırı~/.bashrc
dosyanıza ekleyin:dışa aktar PYTHONPATH=$PYTHONPATH:<pip_install_path>
Aşağıdaki komutu kullanarak açık terminal pencerelerinde
~/.bashrc
dosyanızı yeniden yükleyin:kaynak ~/.bashrc