שלום Analytics Reporting API v4; Python הפעלה מהירה של אפליקציות מותקנות

קל לארגן דפים בעזרת אוספים אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.

במדריך הזה מפורטים השלבים הנדרשים כדי לגשת ל-Analytics Reporting API v4.

1. הפעלת ה-API

כדי להתחיל להשתמש ב-Analytics Reporting API v4, צריך קודם כל להשתמש בכלי ההגדרה, שכולל הנחיות ליצירת פרויקט ב-Google API Console, להפעלת ה-API וליצירת פרטי כניסה.

הערה: כדי ליצור מזהה לקוח באינטרנט או לקוח אפליקציה מותקן, צריך להגדיר שם מוצר במסך ההסכמה. אם עדיין לא עשיתם זאת, תתבקשו להגדיר את מסך ההסכמה.

יצירת פרטי כניסה

  • פותחים את דף פרטי הכניסה.
  • לוחצים על יצירת פרטי כניסה ובוחרים באפשרות מזהה לקוח OAuth.
  • בשדה סוג אפליקציה, בוחרים באפשרות אחר.
  • נותנים שם למזהה הלקוח התחלה ולוחצים על יצירה.

בדף פרטי הכניסה, לוחצים על מזהה הלקוח החדש שנוצר, לוחצים על הורדת JSON ושומרים אותו כ-client_secrets.json. הוא נדרש בהמשך המדריך.

2. התקנה של ספריית הלקוח

שימוש ב-pip יחד עם venv הוא הדרך המומלצת להתקנת חבילות Python: sudo -s apt-getInstall python3-venv python3 -m venv analytics-quickstart source analytics-quickstart/bin/activate התקנת pip --שדרוג google-api-python-client pi2 התקנה --שדרוג op

3. הגדרת הדוגמה

צריך ליצור קובץ יחיד בשם HelloAnalytics.py, שיכיל את קוד הדוגמה הנתון.

  1. מעתיקים או מורידים את קוד המקור הבא אל HelloAnalytics.py.
  2. מעבירים את client_secrets.json שהורדתם בעבר לאותה ספרייה של הקוד לדוגמה.
  3. החלפת הערך של VIEW_ID. אפשר להשתמש בסייר החשבונות כדי למצוא מזהה תצוגה מפורטת.
"""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. הרצת הדגימה

הרצת הדגימה באמצעות:

python HelloAnalytics.py
  • האפליקציה תטען את דף ההרשאה בדפדפן.
  • אם עוד לא התחברת לחשבון Google שלך, תתבקשו להתחבר. אם אתם מחוברים לכמה חשבונות Google, תתבקשו לבחור חשבון אחד שישמש להרשאה.

בסיום השלבים האלה, הדגימה מפיקה את מספר הביקורים במהלך שבעת הימים האחרונים עבור התצוגה המפורטת הנתונה.

פתרון בעיות

attributeError: 'Module_six_Moves_urllib_parse' לאובייקט אין מאפיין 'urlparse'

השגיאה הזו יכולה להתרחש ב-Mac OSX, שבה התקנת ברירת המחדל של המודול "six" (התלויות בספרייה הזו) נטענת לפני ההתקנה של התמונה הממוזערת. כדי לתקן את הבעיה, יש להוסיף את מיקום ההתקנה של 'תמונה בתוך תמונה' במשתנה סביבת המערכת של PYTHONPATH:

  • קובעים את מיקום ההתקנה של pip' באמצעות הפקודה הבאה:

    תמונה בתוך תמונה בתוך תמונה בתוך תמונה (PIP) | gRe "Location:" | Cut -d " " -f2

  • הוסיפו את השורה הבאה לקובץ ה-~/.bashrc, ולהחליף את &lt;pip_install_path&gt; בערך שנקבע למעלה:

    ייצוא PYTHONPath=$PYTHONPath:<pip_Install_path>

  • יש לטעון מחדש את הקובץ ~/.bashrc בכל חלון מסוף פתוח באמצעות הפקודה הבאה:

    מקור ~/.bashrc