Merhaba Analytics Reporting API v4; web uygulamaları için PHP hızlı başlangıç kılavuzu

Bu eğitimde, Analytics Reporting API v4'e erişmek için gereken adımlar açıklanmaktadır.

1. API'yi etkinleştirme

Analytics Reporting API v4'ü kullanmaya başlamak için önce kurulum aracını kullanmanız gerekir. Bu araç, Google API Konsolu'nda proje oluşturma, API'yi etkinleştirme ve kimlik bilgileri oluşturma konusunda size rehberlik eder.

Not: Web İstemcisi Kimliği veya Yüklü Uygulama İstemcisi oluşturmak için izin ekranında bir ürün adı ayarlamanız gerekir. Henüz yapmadıysanız İzin ekranını yapılandırmanız istenir.

Kimlik bilgileri oluştur

  • Credentials (Kimlik Bilgileri) sayfasını açın.
  • Kimlik bilgisi oluştur'u tıklayın ve OAuth istemci kimliği'ni seçin.
  • Uygulama türü için Web uygulaması'nı seçin.
  • İstemci kimliğini hızlı başlangıç olarak adlandırın ve Oluştur'u tıklayın.
  • Yetkili JavaScript kaynakları'nı boş bırakın. Bu eğitici için gerekli değildir.
  • Yetkili yönlendirme URI'leri değerini http://localhost:8080/oauth2callback.php olarak ayarlayın.
  • Oluştur'u tıklayın.

Kimlik bilgileri sayfasından yeni oluşturulan istemci kimliğini tıklayın ve JSON'yi indir'i tıklayıp client_secrets.json olarak kaydedin. Daha sonra bu eğiticiye ihtiyacınız olacaktır.

2. İstemci kitaplığını yükleme

Karşılaştırma Aracı'nı kullanarak PHP için Google API'leri İstemci Kitaplığı'nı edinebilirsiniz:

composer require google/apiclient:^2.0

3. Örneği ayarlama

İki dosya oluşturmanız gerekir:

  • index.php, kullanıcının ziyaret ettiği ana sayfa olur.
  • oauth2callback.php, OAuth 2.0 yanıtını işleyecek

dizin.php

Bu dosya, Google Analytics API'lerini sorgulamak ve sonuçları görüntülemek için kullanılan ana mantığı içerir.

  • İlk örnek kodu index.php adresine kopyalayın veya indirin.
  • VIEW_ID değerini değiştirin. Görünüm Kimliğini bulmak için Hesap Gezgini'ni kullanabilirsiniz.
<?php

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

session_start();

$client = new Google_Client();
$client->setAuthConfig(__DIR__ . '/client_secrets.json');
$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);


// If the user has already authorized this app then get an access token
// else redirect to ask the user to authorize access to Google Analytics.
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
  // Set the access token on the client.
  $client->setAccessToken($_SESSION['access_token']);

  // Create an authorized analytics service object.
  $analytics = new Google_Service_AnalyticsReporting($client);

  // Call the Analytics Reporting API V4.
  $response = getReport($analytics);

  // Print the response.
  printResults($response);

} else {
  $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php';
  header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}


/**
 * 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");
        }
      }
    }
  }
}


oauth2callback.php

Bu dosya, OAuth 2.0 yanıtını işler. İkinci örnek kodu oauth2callback.php adresine kopyalayın veya indirin.

<?php

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

// Start a session to persist credentials.
session_start();

// Create the client object and set the authorization configuration
// from the client_secrets.json you downloaded from the Developers Console.
$client = new Google_Client();
$client->setAuthConfig(__DIR__ . '/client_secrets.json');
$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php');
$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);

// Handle authorization flow from the server.
if (! isset($_GET['code'])) {
  $auth_url = $client->createAuthUrl();
  header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
} else {
  $client->authenticate($_GET['code']);
  $_SESSION['access_token'] = $client->getAccessToken();
  $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/';
  header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}


4. Örneği çalıştırma

Örneği, PHP'yi sunacak şekilde yapılandırılmış bir web sunucusuyla çalıştırın. PHP 5.4 veya daha yeni bir sürüm kullanıyorsanız aşağıdaki komutu çalıştırarak PHP' tarayıcının yerleşik test web sunucusunu kullanabilirsiniz:

php -S localhost:8080 -t /path/to/sample

Ardından tarayıcınızda http://localhost:8080 adresini ziyaret edin.

Bu adımları tamamladığınızda örnek, söz konusu görünüm için son yedi gündeki oturum sayısını gösterir.