สวัสดี Analytics Reporting API v4; การเริ่มต้นใช้งาน Python อย่างรวดเร็วสำหรับบัญชีบริการ

บทแนะนำนี้จะแนะนำขั้นตอนที่จำเป็นในการเข้าถึง Analytics Reporting API เวอร์ชัน 4

1. เปิดใช้ API

หากต้องการเริ่มต้นใช้งาน Analytics Reporting API v4 ก่อนอื่นคุณต้องใช้เครื่องมือการตั้งค่า ซึ่งจะแนะนำขั้นตอนการสร้างโปรเจ็กต์ในคอนโซล Google API เปิดใช้ API และสร้างข้อมูลเข้าสู่ระบบ

สร้างข้อมูลเข้าสู่ระบบ

  1. เปิดหน้าบัญชีบริการ เมื่อได้รับข้อความเตือน ให้เลือกโปรเจ็กต์
  2. คลิกสร้างบัญชีบริการ จากนั้นป้อนชื่อและคำอธิบายของบัญชีบริการ คุณจะใช้รหัสเริ่มต้นของบัญชีบริการ หรือเลือกรหัสอื่นที่ไม่ซ้ำกันก็ได้ เมื่อเสร็จแล้วให้คลิกสร้าง
  3. คุณข้ามส่วนสิทธิ์ของบัญชีบริการ (ไม่บังคับ) ที่ตามมาได้ คลิกต่อไป
  4. ในหน้าจอให้สิทธิ์ผู้ใช้เข้าถึงบัญชีบริการนี้ ให้เลื่อนลงไปที่ส่วนสร้างคีย์ คลิก สร้างคีย์
  5. เลือกรูปแบบของคีย์ในแผงด้านข้างที่ปรากฏขึ้น ขอแนะนำให้เลือก JSON
  6. คลิกสร้าง ระบบจะสร้างคู่คีย์สาธารณะ/ส่วนตัวใหม่และดาวน์โหลดลงในเครื่องของคุณ ซึ่งจะเป็นสำเนาเพียงรายการเดียวของคีย์นี้ ดูข้อมูลเกี่ยวกับวิธีจัดเก็บคีย์อย่างปลอดภัยที่การจัดการคีย์ของบัญชีบริการ
  7. คลิกปิดในกล่องโต้ตอบคีย์ส่วนตัวที่บันทึกไว้ในคอมพิวเตอร์ จากนั้นคลิกเสร็จเพื่อกลับไปที่ตารางของบัญชีบริการ

เพิ่มบัญชีบริการลงในบัญชี Google Analytics

บัญชีบริการที่สร้างใหม่จะมีอีเมลที่มีลักษณะคล้ายกับด้านล่างนี้

quickstart@PROJECT-ID.iam.gserviceaccount.com

ใช้อีเมลนี้เพื่อเพิ่มผู้ใช้ไปยังข้อมูลพร็อพเพอร์ตี้ Google Analytics ที่คุณต้องการเข้าถึงผ่าน API สำหรับบทแนะนำนี้ ต้องใช้เฉพาะสิทธิ์อ่านและวิเคราะห์เท่านั้น

2. ติดตั้งไลบรารีของไคลเอ็นต์

การใช้ pip ร่วมกับ venv เป็นวิธีที่แนะนำสำหรับการติดตั้งแพ็กเกจ Python: sudo -s apt-get install python3-venv python3 -m venv analytics-quickstart source analytics-quickstart/bin/activate pip install --upgrade google-api-python-upgrade

3. ตั้งค่าตัวอย่าง

คุณจะต้องสร้างไฟล์เดียวที่ชื่อ HelloAnalytics.py ซึ่งจะมีโค้ดตัวอย่างที่ระบุ

  1. คัดลอกหรือดาวน์โหลดซอร์สโค้ดต่อไปนี้ลงใน HelloAnalytics.py
  2. ย้าย client_secrets.json ที่ดาวน์โหลดก่อนหน้านี้ไปยังไดเรกทอรีเดียวกันกับโค้ดตัวอย่าง
  3. แทนที่ค่าของ KEY_FILE_LOCATION ด้วยเส้นทางที่เหมาะสมไปยัง client_secrets.json ที่ดาวน์โหลดไว้
  4. แทนที่ค่าของ VIEW_ID คุณใช้โปรแกรมสำรวจบัญชีเพื่อค้นหารหัสข้อมูลพร็อพเพอร์ตี้ได้
"""Hello Analytics Reporting API V4."""

from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials


SCOPES = ['https://www.googleapis.com/auth/analytics.readonly']
KEY_FILE_LOCATION = '<REPLACE_WITH_JSON_FILE>'
VIEW_ID = '<REPLACE_WITH_VIEW_ID>'


def initialize_analyticsreporting():
  """Initializes an Analytics Reporting API V4 service object.

  Returns:
    An authorized Analytics Reporting API V4 service object.
  """
  credentials = ServiceAccountCredentials.from_json_keyfile_name(
      KEY_FILE_LOCATION, SCOPES)

  # Build the service object.
  analytics = build('analyticsreporting', 'v4', credentials=credentials)

  return analytics


def get_report(analytics):
  """Queries the Analytics Reporting API V4.

  Args:
    analytics: An authorized Analytics Reporting API V4 service object.
  Returns:
    The Analytics Reporting API V4 response.
  """
  return analytics.reports().batchGet(
      body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
          'metrics': [{'expression': 'ga:sessions'}],
          'dimensions': [{'name': 'ga:country'}]
        }]
      }
  ).execute()


def print_response(response):
  """Parses and prints the Analytics Reporting API V4 response.

  Args:
    response: An 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', [])

    for row in report.get('data', {}).get('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. เรียกใช้ตัวอย่าง

เรียกใช้ตัวอย่างโดยใช้:

python HelloAnalytics.py

เมื่อทําตามขั้นตอนเหล่านี้เสร็จแล้ว ตัวอย่างจะแสดงจํานวนเซสชันในช่วง 7 วันที่ผ่านมาสำหรับข้อมูลพร็อพเพอร์ตี้ที่ระบุ

การแก้ปัญหา

AttributeError: ออบเจ็กต์ "Module_six_moves_urllib_parse" ไม่มีแอตทริบิวต์ "urlparse"

ข้อผิดพลาดนี้อาจเกิดขึ้นใน Mac OSX ที่มีการโหลดการติดตั้งเริ่มต้นของโมดูล "6" (ทรัพยากร Dependency ของไลบรารีนี้) โหลดก่อนที่ PIP ดังกล่าวจะติดตั้ง หากต้องการแก้ไขปัญหานี้ ให้เพิ่มตำแหน่งการติดตั้งของ PIP ลงในตัวแปรสภาพแวดล้อมของระบบ PYTHONPATH ดังนี้

  • ระบุตำแหน่งการติดตั้งของ PIP ด้วยคำสั่งต่อไปนี้

    pip แสดงหก | grep "สถานที่ตั้ง:" | ตัด -d " " -f2

  • เพิ่มบรรทัดต่อไปนี้ลงในไฟล์ ~/.bashrc โดยแทนที่ &lt;pip_install_path&gt; ด้วยค่าที่กำหนดข้างต้น

    ส่งออก PYTHONPATH=$PYTHONPATH:<pip_install_path>

  • โหลดไฟล์ ~/.bashrc ซ้ำในหน้าต่างเทอร์มินัลที่เปิดอยู่โดยใช้คำสั่งต่อไปนี้

    แหล่งที่มา ~/.bashrc