Hello Analytics API: Hizmet hesapları 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

  1. Hizmet hesapları sayfasını açın. İstenirse bir proje seçin.
  2. Hizmet Hesabı Oluştur'u tıklayın, hizmet hesabı için bir ad ve açıklama girin. Varsayılan hizmet hesabı kimliğini kullanabilir veya farklı, benzersiz bir tane seçebilirsiniz. Tamamladıktan sonra Oluştur'u tıklayın.
  3. Sonraki Hizmet hesabı izinleri (isteğe bağlı) bölümü gerekli değildir. Devam'ı tıklayın.
  4. Kullanıcıların bu hizmet hesabına erişmelerine izin ver ekranında, Anahtar oluştur bölümüne gidin. Anahtar oluştur'u tıklayın.
  5. Görüntülenen yan panelde anahtar biçimini seçin: JSON önerilir.
  6. Oluştur'u tıklayın. Herkese açık/özel yeni anahtar çiftiniz oluşturulur ve makinenize indirilir; bu anahtarın tek kopyası olarak işlev görür. Güvenli şekilde nasıl depolanacağını öğrenmek için Hizmet hesabı anahtarlarını yönetme konusuna bakın.
  7. Özel anahtar bilgisayarınıza kaydedildi iletişiminde Kapat'ı tıklayın. Ardından hizmet hesapları tablosuna dönmek için Tamam'ı tıklayın.

Google Analytics hesabına hizmet hesabı ekleyin

Yeni oluşturulan hizmet hesabının bir e-posta adresi (<projectId>-<uniqueId>@developer.gserviceaccount.com) olur. API üzerinden erişmek istediğiniz Google Analytics hesabına kullanıcı eklemek için bu e-posta adresini kullanın. Yalnızca bu eğitim için Okuma ve Analiz izinleri gereklidir.

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

Aşağıdaki örnek kodu içeren HelloAnalytics.php adında tek bir dosya oluşturmanız gerekiyor.

  1. Aşağıdaki kaynak kodu HelloAnalytics.php hizmetine kopyalayın veya indirin.
  2. Daha önce indirilen service-account-credentials.json dosyasını örnek kodla aynı dizine taşıyın.

HelloAnalytics.php

<?php

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

$analytics = initializeAnalytics();
$profile = getFirstProfileId($analytics);
$results = getResults($analytics, $profile);
printResults($results);

function initializeAnalytics()
{
  // Creates and returns the Analytics Reporting service object.

  // 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_Analytics($client);

  return $analytics;
}

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 "First view (profile) found: $profileName\n";
    print "Total sessions: $sessions\n";
  } else {
    print "No results found.\n";
  }
}


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.

Şu komutu kullanarak örneği çalıştırın:

php HelloAnalytics.php

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.