Hello Analytics API: Web uygulamaları için PHP hızlı başlangıç kılavuzu

Bu eğitimde, bir Google Analytics hesabına erişmek, Analytics API'lerini sorgulamak, API yanıtlarını işlemek ve sonuçların çıktısını almak için gereken adımlar açıklanmaktadır. Bu eğiticide Core Reporting API v3.0, Management API v3.0 ve OAuth2.0 kullanılmıştır.

1. Adım: Analytics API'yi etkinleştirin

Google Analytics API'yi 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.

İstemci kimliği oluşturun

Kimlik bilgileri sayfasından:

  1. Kimlik Bilgileri Oluştur'u tıklayın ve OAuth istemci kimliği'ni seçin.
  2. UYGULAMA TÜRÜ için Web uygulaması'nı seçin.
  3. Kimlik bilgisine ad verin.
  4. Bu eğitim için gerekli olmadığından AUTHORIZED JAVASCRIPT ORIGINS alanını boş bırakın.
  5. YETKİLİ YÖNLENDİRME URI'LERİ'ni http://localhost:8080/oauth2callback.php olarak ayarlayın
  6. Oluştur'u tıklayın.

Oluşturduğunuz kimlik bilgisini seçin ve JSON'ı indir'i tıklayın. İndirilen dosyayı client_secrets.json olarak kaydedin. Eğitimde daha sonra bu dosyaya ihtiyacınız olacaktır.

2. Adım: Google İstemci Kitaplığı'nı yükleyin

PHP için Google API'leri İstemci Kitaplığı'nı sürümü indirerek veya Composer'ı kullanarak edinebilirsiniz:

composer require google/apiclient:^2.0

3. adım: Örneği oluşturun

İki dosya oluşturmanız gerekir:

  1. index.php, kullanıcı tarafından ziyaret edilen ana sayfa olacaktır.
  2. oauth2callback.php, OAuth 2.0 yanıtını işler.

index.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 cihazına 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_secretes.json you downloaded from the developer console.
$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_Analytics($client);

  // Get the first view (profile) id for the authorized user.
  $profile = getFirstProfileId($analytics);

  // Get the results from the Core Reporting API and print the results.
  $results = getResults($analytics, $profile);
  printResults($results);
} else {
  $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php';
  header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}


function getFirstProfileId($analytics) {
  // Get the user's first view (profile) ID.

  // Get the list of accounts for the authorized user.
  $accounts = $analytics->management_accounts->listManagementAccounts();

  if (count($accounts->getItems()) > 0) {
    $items = $accounts->getItems();
    $firstAccountId = $items[0]->getId();

    // Get the list of properties for the authorized user.
    $properties = $analytics->management_webproperties
        ->listManagementWebproperties($firstAccountId);

    if (count($properties->getItems()) > 0) {
      $items = $properties->getItems();
      $firstPropertyId = $items[0]->getId();

      // Get the list of views (profiles) for the authorized user.
      $profiles = $analytics->management_profiles
          ->listManagementProfiles($firstAccountId, $firstPropertyId);

      if (count($profiles->getItems()) > 0) {
        $items = $profiles->getItems();

        // Return the first view (profile) ID.
        return $items[0]->getId();

      } else {
        throw new Exception('No views (profiles) found for this user.');
      }
    } else {
      throw new Exception('No properties found for this user.');
    }
  } else {
    throw new Exception('No accounts found for this user.');
  }
}

function getResults($analytics, $profileId) {
  // Calls the Core Reporting API and queries for the number of sessions
  // for the last seven days.
  return $analytics->data_ga->get(
      'ga:' . $profileId,
      '7daysAgo',
      'today',
      'ga:sessions');
}

function printResults($results) {
  // Parses the response from the Core Reporting API and prints
  // the profile name and total sessions.
  if (count($results->getRows()) > 0) {

    // Get the profile name.
    $profileName = $results->getProfileInfo()->getProfileName();

    // Get the entry for the first entry in the first row.
    $rows = $results->getRows();
    $sessions = $rows[0][0];

    // Print the results.
    print "<p>First view (profile) found: $profileName</p>";
    print "<p>Total sessions: $sessions</p>";
  } else {
    print "<p>No results found.</p>";
  }
}

?>

oauth2callback.php

Bu dosya, OAuth 2.0 yanıtını işler. İkinci örnek kodu oauth2callback.php cihazına 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. Adım: Örneği çalıştırın

Analytics API'yi etkinleştirdikten sonra, PHP için Google API'leri istemci kitaplığını yükleyin ve örneğin çalıştırılmaya hazır olduğu örnek kaynak kodunu ayarlayın.

Örneği, PHP sunmak üzere 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'nin yerleşik test web sunucusunu kullanabilirsiniz:

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

Daha sonra tarayıcınızda http://localhost:8080 adresini ziyaret edin.

Bu adımları tamamladığınızda örnek, yetkili kullanıcının ilk Google Analytics görünümünün (profili) adını ve son yedi gündeki oturum sayısını verir.

Yetkili Analytics hizmet nesnesiyle artık Management API referans belgelerinde bulunan kod örneklerinden herhangi birini çalıştırabilirsiniz. Örneğin, kodu accountSummaries.list yöntemini kullanacak şekilde değiştirmeyi deneyebilirsiniz.