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

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

1. מפעילים את ה-API

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

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

  1. פותחים את הדף Service accounts. אם מתבקשים, בוחרים פרויקט.
  2. לוחצים על Create Service Account (יצירת חשבון שירות), מזינים את השם והתיאור של חשבון השירות. אפשר להשתמש במספר של חשבון השירות שמוגדר כברירת מחדל, או לבחור מספר אחר וייחודי. כשמסיימים, לוחצים על יצירה.
  3. הקטע הרשאות חשבון שירות (אופציונלי) שמופיע כאן אינו הכרחי. לוחצים על Continue.
  4. במסך Grant users access to this service account גוללים למטה לקטע Create key. לוחצים על Create key.
  5. בחלונית הצדדית שמופיעה, בוחרים את פורמט המפתח: מומלץ להשתמש ב-JSON.
  6. לוחצים על יצירה. זוג המפתחות הציבורי/פרטי החדש שלך נוצר והורד למחשב שלך. הוא משמש כעותק היחיד של המפתח הזה. למידע נוסף על אחסון מאובטח, כדאי לקרוא את המאמר ניהול מפתחות של חשבונות שירות.
  7. לוחצים על Close בתיבת הדו-שיח Private key saved to your במחשב, ולאחר מכן לוחצים על Done כדי לחזור לטבלה של חשבונות השירות.

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

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

quickstart@PROJECT-ID.iam.gserviceaccount.com

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

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

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

composer require google/apiclient:^2.0

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

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

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

HelloAnalytics.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

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