Halo Analytics Reporting API v4; panduan memulai Python untuk aplikasi terinstal

Tutorial ini akan memandu langkah-langkah yang diperlukan untuk mengakses Analytics Reporting API v4.

1. Mengaktifkan API

Untuk mulai menggunakan Analytics Reporting API v4, Anda harus menggunakan alat penyiapan terlebih dahulu, yang memandu Anda membuat project di Konsol API Google, mengaktifkan API, dan membuat kredensial.

Catatan: Untuk membuat Client ID Web atau Klien Aplikasi Terinstal, Anda harus menetapkan nama produk di layar izin. Jika belum melakukannya, Anda akan diminta untuk Mengonfigurasi layar izin.

Buat kredensial

  • Buka halaman Credentials.
  • Klik Buat kredensial dan pilih Client ID OAuth
  • Untuk Application type, pilih Other.
  • Beri nama client ID quickstart, lalu klik quickstart.

Dari halaman Credentials, klik client ID yang baru dibuat, lalu klik Download JSON dan simpan sebagai client_secrets.json; Anda akan membutuhkannya nanti dalam tutorial.

2. Menginstal library klien

Menggunakan pip beserta venv adalah cara yang direkomendasikan untuk menginstal paket Python: sudo -s apt-get install python3-venv python3 -m venv analytics-quickstart source analytics-quickstart/bin/activate pip install --upgrade google-api-python-client pip install --upgrade oauth2client

3. Menyiapkan contoh

Anda harus membuat satu file bernama HelloAnalytics.py, yang akan berisi kode contoh yang diberikan.

  1. Salin atau download kode sumber berikut ke HelloAnalytics.py.
  2. Pindahkan client_secrets.json yang telah didownload sebelumnya ke direktori yang sama dengan kode contoh.
  3. Ganti nilai VIEW_ID. Anda dapat menggunakan Penjelajah Akun untuk menemukan ID Tampilan.
"""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. Menjalankan contoh

Jalankan contoh menggunakan:

python HelloAnalytics.py
  • Aplikasi ini akan memuat halaman otorisasi di browser.
  • Jika belum login ke Akun Google, Anda akan diminta untuk login. Jika login ke beberapa Akun Google, Anda akan diminta untuk memilih satu akun yang akan digunakan untuk otorisasi.

Setelah Anda menyelesaikan langkah-langkah ini, contoh akan menghasilkan jumlah sesi selama tujuh hari terakhir untuk tampilan tertentu.

Pemecahan masalah

AttributeError: Objek 'Module_six_moves_urllib_parse' tidak memiliki atribut 'urlparse'

Kesalahan ini dapat terjadi di Mac OSX di mana penginstalan default modul "enam" (dependensi pustaka ini) dimuat sebelum yang terinstal pip. Untuk memperbaiki masalah ini, tambahkan lokasi penginstalan pip ke variabel lingkungan sistem PYTHONPATH:

  • Tentukan lokasi penginstalan pip dengan perintah berikut:

    pip tampilkan enam | grep "Location:" | cut -d " " -f2

  • Tambahkan baris berikut ke file ~/.bashrc Anda, dengan mengganti &lt;pip_install_path&gt; dengan nilai yang ditentukan di atas:

    Export PYTHONPATH=$PYTHONPATH:<pip_install_path>

  • Muat ulang file ~/.bashrc Anda di jendela terminal yang terbuka menggunakan perintah berikut:

    sumber ~/.bashrc