Hello Analytics API: Panduan memulai PHP untuk aplikasi web

Tutorial ini membahas langkah-langkah yang diperlukan untuk mengakses akun Google Analytics, mengkueri API Analytics, menangani respons API, dan menampilkan hasilnya. Core Reporting API v3.0, Management API v3.0, dan OAuth2.0 digunakan dalam tutorial ini.

Langkah 1: Aktifkan Analytics API

Untuk mulai menggunakan Google Analytics API, Anda harus terlebih dahulu menggunakan alat penyiapan, yang memandu Anda menyelesaikan pembuatan project di Konsol API Google, mengaktifkan API, dan membuat kredensial.

Membuat client ID

Dari halaman Credentials:

  1. Klik Create Credentials, lalu pilih OAuth client ID.
  2. Pilih Web application untuk APPLICATION TYPE.
  3. Beri nama kredensial tersebut.
  4. Kosongkan ASAL JAVASCRIPT RESMI karena tidak diperlukan untuk tutorial ini.
  5. Tetapkan URI REDIRECT RESMI ke http://localhost:8080/oauth2callback.php
  6. Klik Create.

Pilih kredensial yang baru saja dibuat, lalu klik Download JSON. Simpan file yang didownload sebagai client_secrets.json; Anda akan memerlukannya nanti dalam tutorial.

Langkah 2: Instal Library Klien Google

Anda dapat memperoleh Library Klien Google API untuk PHP mendownload rilis atau menggunakan Composer:

composer require google/apiclient:^2.0

Langkah 3: Siapkan contoh

Anda harus membuat dua file:

  1. index.php akan menjadi halaman utama yang dikunjungi oleh pengguna.
  2. oauth2callback.php akan menangani respons OAuth 2.0.

index.php

File ini berisi logika utama untuk membuat kueri Google Analytics API dan menampilkan hasilnya. Salin atau download kode contoh pertama ke index.php.

<?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

File ini menangani respons OAuth 2.0. Salin atau download kode contoh kedua ke oauth2callback.php.

<?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));
}


Langkah 4: Jalankan contoh

Setelah mengaktifkan Analytics API, instal library klien Google API untuk PHP, dan siapkan kode sumber contoh, contoh siap dijalankan.

Jalankan contoh dengan server web yang dikonfigurasi untuk menyalurkan PHP. Jika menggunakan PHP 5.4 atau yang lebih baru, Anda dapat menggunakan server web pengujian bawaan PHP dengan menjalankan perintah berikut:

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

Lalu buka http://localhost:8080 di browser Anda.

Setelah menyelesaikan langkah-langkah ini, contoh akan menghasilkan nama tampilan (profil) Google Analytics pertama dari pengguna yang diotorisasi dan jumlah sesi selama tujuh hari terakhir.

Dengan objek layanan Analytics resmi, Anda kini dapat menjalankan contoh kode apa pun yang ada di dokumen referensi Management API. Misalnya, Anda dapat mengubah kode untuk menggunakan metode accountSummaries.list.