Google Analytics APIを使ってみる

developers.google.com

https://developers.google.com/analytics/devguides/reporting/core/v3/quickstart/service-java?hl=ja

www.karakaram.com

Google Analytics APIを有効にする

アプリケーションの登録

サービスアカウントを作成

サービスアカウントのメールアドレスでGoogle Analyticsアカウントを追加する

Google Analytics APIからデータを取得してみる

  • APIクライアントのクローン
$ cd ~/project/api/google/analytics/php
$ git clone https://github.com/google/google-api-php-client.git
$ cd google-api-php-client
$ composer install
※composerはインストール済みであることが前提です
  • GoogleAnalytics.phpの作成
$ cd ~/project/api/google/analytics/php
$ touch GoogleAnalytics.php

ソース

  • composer対応
require_once 'google-api-php-client/src/Google/autoload.php';
↓
require_once 'google-api-php-client/vendor/autoload.php';
  • 認証関連
$ cp {{サービスアカウントのjson}} ~/project/api/google/analytics/php/service-account.json
$ cd ~/project/api/google/analytics/php
$ vi .gitignore※service-account.jsonを追加
  // Use the developers console and replace the values with your
  // service account email, and relative location of your key file.
  $service_account_email = '<Replace with your service account email address.>';
  $key_file_location = '<Replace with /path/to/generated/client_secrets.p12>';

  // Create and configure a new client object.
  $client = new Google_Client();
  $client->setApplicationName("GoogleAnalytics");
  $analytics = new Google_Service_Analytics($client);

  // Read the generated client_secrets.p12 key.
  $key = file_get_contents($key_file_location);
  $cred = new Google_Auth_AssertionCredentials(
      $service_account_email,
      array(Google_Service_Analytics::ANALYTICS_READONLY),
      $key
  );
  $client->setAssertionCredentials($cred);
  if($client->getAuth()->isAccessTokenExpired()) {
    $client->getAuth()->refreshTokenWithAssertion($cred);
  }
  ↓
  // Create and configure a new client object.
  $client = new Google_Client();
  $client->setApplicationName("GoogleAnalytics");
  $client->setAuthConfig('./service-account.json');
  $client->setScopes(array(Google_Service_Analytics::ANALYTICS_READONLY));
  // https://github.com/google/google-api-php-client/issues/717
  // if($client->isAccessTokenExpired()) {
  //   $client->refreshTokenWithAssertion();
  // }

  return new Google_Service_Analytics($client);

実行してみる

$ php GoogleAnalytics.php
First view (profile) found: すべてのウェブサイトのデータ
Total sessions: XXXXXX