שלום Analytics Reporting API v4; מדריך למתחילים בנושא PHP לחשבונות שירות

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

1. הפעלת ה-API

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

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

  1. פותחים את דף חשבונות השירות. אם תתבקשו, עליכם לבחור פרויקט.
  2. לוחצים על יצירת חשבון שירות, מזינים שם ותיאור לחשבון השירות. אפשר להשתמש במספר ברירת המחדל של חשבון השירות, או לבחור מספר ייחודי וייחודי. כשמסיימים, לוחצים על יצירה.
  3. הקטע הרשאות חשבון שירות (אופציונלי) שבהמשך לא נדרש. לוחצים על המשך.
  4. במסך הענקת גישה למשתמשים בחשבון השירות הזה, גוללים למטה לקטע יצירת מפתח. לוחצים על יצירת מפתח.
  5. בחלונית הצדדית שמופיעה, בוחרים את הפורמט של המפתח: מומלץ להשתמש בקובץ JSON.
  6. לוחצים על Create. זוג המפתחות הציבורי/הפרטי החדש נוצר ומוריד למחשב שלך. הוא משמש כעותק היחיד של המפתח הזה. מידע נוסף על אחסון מאובטח לניהול מפתחות בחשבון שירות.
  7. לוחצים על סגירה בתיבת הדו-שיח מפתח פרטי שנשמר במחשב, ואז לוחצים על סיום כדי לחזור לטבלה של חשבונות השירות.

מוסיפים חשבון שירות לחשבון Google Analytics

לחשבון השירות החדש תהיה כתובת אימייל שדומה ל:

quickstart@PROJECT-ID.iam.gserviceaccount.com

אפשר להשתמש בכתובת האימייל הזו כדי להוסיף משתמש לתצוגה המפורטת של Google Analytics שאליה רוצים לגשת באמצעות ה-API. למדריך הזה נדרשות רק הרשאות קריאה וניתוח.

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

אפשר לקבל את ספריית הלקוחות של Google APIs ל-PHP באמצעות מלחין:

composer require google/apiclient:^2.0

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

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

  • מעתיקים או מורידים את קוד המקור הבא אל HelloAnalytics.php.
  • מעבירים את service-account-credentials.json שהורדתם בעבר לאותה ספרייה של הקוד לדוגמה.
  • החלפת הערך של VIEW_ID. אפשר להשתמש בסייר החשבונות כדי למצוא מזהה תצוגה מפורטת.

שלוםAnalytics.php

<?php

// Load the Google API PHP Client Library.
require_once __DIR__ . '/vendor/autoload.php';

$analytics = initializeAnalytics();
$response = getReport($analytics);
printResults($response);


/**
 * Initializes an Analytics Reporting API V4 service object.
 *
 * @return An authorized Analytics Reporting API V4 service object.
 */
function initializeAnalytics()
{

  // Use the developers console and download your service account
  // credentials in JSON format. Place them in this directory or
  // change the key file location if necessary.
  $KEY_FILE_LOCATION = __DIR__ . '/service-account-credentials.json';

  // Create and configure a new client object.
  $client = new Google_Client();
  $client->setApplicationName("Hello Analytics Reporting");
  $client->setAuthConfig($KEY_FILE_LOCATION);
  $client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);
  $analytics = new Google_Service_AnalyticsReporting($client);

  return $analytics;
}


/**
 * Queries the Analytics Reporting API V4.
 *
 * @param service An authorized Analytics Reporting API V4 service object.
 * @return The Analytics Reporting API V4 response.
 */
function getReport($analytics) {

  // Replace with your view ID, for example XXXX.
  $VIEW_ID = "<REPLACE_WITH_VIEW_ID>";

  // Create the DateRange object.
  $dateRange = new Google_Service_AnalyticsReporting_DateRange();
  $dateRange->setStartDate("7daysAgo");
  $dateRange->setEndDate("today");

  // Create the Metrics object.
  $sessions = new Google_Service_AnalyticsReporting_Metric();
  $sessions->setExpression("ga:sessions");
  $sessions->setAlias("sessions");

  // Create the ReportRequest object.
  $request = new Google_Service_AnalyticsReporting_ReportRequest();
  $request->setViewId($VIEW_ID);
  $request->setDateRanges($dateRange);
  $request->setMetrics(array($sessions));

  $body = new Google_Service_AnalyticsReporting_GetReportsRequest();
  $body->setReportRequests( array( $request) );
  return $analytics->reports->batchGet( $body );
}


/**
 * Parses and prints the Analytics Reporting API V4 response.
 *
 * @param An Analytics Reporting API V4 response.
 */
function printResults($reports) {
  for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) {
    $report = $reports[ $reportIndex ];
    $header = $report->getColumnHeader();
    $dimensionHeaders = $header->getDimensions();
    $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries();
    $rows = $report->getData()->getRows();

    for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) {
      $row = $rows[ $rowIndex ];
      $dimensions = $row->getDimensions();
      $metrics = $row->getMetrics();
      for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) {
        print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "\n");
      }

      for ($j = 0; $j < count($metrics); $j++) {
        $values = $metrics[$j]->getValues();
        for ($k = 0; $k < count($values); $k++) {
          $entry = $metricHeaders[$k];
          print($entry->getName() . ": " . $values[$k] . "\n");
        }
      }
    }
  }
}

4. הרצת הדגימה

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

php HelloAnalytics.php

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