ajike switch

5Stepでわかる!Google Analytics APIのデータ取得方法

◆手順

1.Google アカウントにてログイン

2. プロジェクトの作成

3.利用するAPIの選択

4.認証キーなどの取得と設定

5.ソースの記述

1.Google アカウントにてログイン

まずはじめに「Google code」にアクセスして、お持ちのGoogle アカウントを利用してログインして下さい。既にログイン済みの方は次のステップに進んで下さい。

Screen Shot 2013-06-27 at 23.02.55

2. プロジェクトの作成

次に、Google アカウントにログインしている状態で「Google code」にアクセスすると、以下のような画面が表示されるかと思われます。そのままCreate projectしちゃって下さい。

Screen Shot 2013-06-27 at 23.00.30

Projectを作成することで、Googleの各種サービスにアクセスするためのAPIを利用できるようになります。

3.利用するAPIの選択

Screen Shot 2013-06-27 at 23.07.36

All servicesとあり、その下にずらっと英語が並んでますね。

はい、まだあきらめないで下さい(笑)

よくよく見てみると「Analytics API」があります。

その他にも「Drive API」や「Google+ API」,「Google+ Hangouts API」

など使ったことがあるサービスの名前がありますよね。

この画面で、今回作成したプロジェクにて利用するAPIのON と OFF を行なっております。

従って、「Analytics API」のよこのスイッチをクリック!

Screen Shot 2013-06-27 at 23.16.52

因にスイッチ左側の数字は、一日にAPIを叩けるリクエスト回数になります。

利用規約に同意するとGoogle analytics APIがONになっているのが確認できます。

Screen Shot 2013-06-27 at 23.19.21

ダッシュボードを確認するとServiceの欄に「Google Analytics API」がしっかり追加されていますね。

Screen Shot 2013-07-08 at 16.35.13

4.認証キーなどの取得と設定

次は、APIの認証キーを取得します。サイドバーの「API Access」をクリック。

Screen Shot 2013-06-27 at 23.21.05

「Create an OAuth 2.0 client ID…」から新たにIDの発行を行ないます。

Screen Shot 2013-06-27 at 23.29.30

Screen Shot 2013-06-27 at 23.33.59

各画面にて必要な情報を入力し「Create client ID 」を押して下さい。

IDの作成が完了すると、「API Access」のページに以下の情報が表示されます。

・Client ID

・Client secret

・Redirect URLs

API利用時に上記の情報が必要になります。

5.ソースの記述

google Analiticsデータの取得には「Core Reporting API Client Libraries」を利用します。

PHPにて実装するので、テーブル下部に表示されている「google-api-php-client」からライブラリーをダウンロードして下さい。

Screen Shot 2013-07-08 at 17.21.45

Google Analyticsから取得したデータに基づいて

記事をランキング形式で表示するプログラムになります。

<?php
// ライブラリ読み込み
require('../ranking/google-api-php-client/src/Google_Client.php');
// Analytics なのでこれを
require('../ranking/google-api-php-client/src/contrib/Google_AnalyticsService.php');
// セッションスタート
//session_start();

$client = new Google_Client();

// クライアントID
$client->setClientId('Client IDを入力');
// クライアントSecret
$client->setClientSecret('Client secretを入力');
// リダイレクトURL
$client->setRedirectUri('Redirect URIsを入力');

//googleのアクセストークンを保存しておくテキストファイルを設置します。
$token_path = '../ranking/gapi_token.txt';

$service = new Google_AnalyticsService($client);

if( isset( $_GET[ 'code' ] ) ) {
$client->authenticate();
$_SESSION[ 'token' ] = $client->getAccessToken();
}
if( isset( $_SESSION[ 'token' ] ) ) {
$string = $_SESSION[ 'token' ];
$fp = fopen( $token_path, "w" );
@fwrite( $fp, $string, strlen( $string ) );
fclose( $fp );
unset( $string );
$client->setAccessToken( $_SESSION[ 'token' ] );
} elseif( file_exists( $token_path ) ) {
$token = @file( $token_path );
$client->setAccessToken( $token[0] );
}

// トークンがセットされていたら
if ($client->getAccessToken()) {

// ~all で全てのプロファイルを取得します
$profiles = $service->management_profiles->listManagementProfiles("~all", "~all");

// トークンがセットされてなかったら
} else {

// 認証用URL取得
$auth_url = $client->createAuthUrl();
echo '<a href="'.$auth_url.'">ランキングを取得する</a>';
echo "トークンを更新して下さい";
}

if ($client->getAccessToken()) {

try {
// プロファイルID
$ids = 'ga:********';
// 期間(スタート)
$start_date = '2013-03-05';
// 期間(エンド)
$end_date = '2013-04-10';
// メトリクス,複数の場合は , で区切る
$metrics = 'ga:pageviews';
// ディメンション,複数の場合は , で区切る
$dimensions = 'ga:pageTitle,ga:pagePath';
// ソートする項目, - をつけると降順になります
$sort = '-ga:pageviews';
// 最大取得数
$max_results = 100;
// ディメンションやソートなどの必須でないものは、オプションとして一つの配列としてまとめます
$optParams = array('dimensions' => $dimensions, 'sort' => $sort, 'max-results' => $max_results);
$data = $service->data_ga->get($ids, $start_date, $end_date, $metrics, $optParams);

// 返ってきたデータは表示する時ちょっと分かりづらいので、ちょっと形を整えます
$results = array();
foreach ($data['rows'] as $row => $value) {
foreach ($data['columnHeaders'] as $key => $header) {
$results[$row][$header['name']] = $value[$key];
}
}

$site_url = 'http://ajike.co.jp';
echo '';
$num =1;

foreach ($results as $result) {
echo "";
$num++;
}
echo '".$num."位  {$result['ga:pageTitle']} {$result['ga:pageviews']}アクセス';
// エラーの時は例外を投げます
} catch (apiServiceException $e) {
echo $e->getMessage();
}

}
?>

上記の記述でGoogle analyticsのアクセスランキングが取得できます。
今回は、word pressのアクセス数を取得だったので少し手こずりました。。
[参考]


Google Analytics API v3.0 を使って解析データを取得する

servi

ajike switchの更新をメールでお伝えします!

8年以上ajikeが蓄積したデザイン思考とUXデザインの知見を発信し続けるブログ<ajike switch>の更新情報を無料でメールにてお知らせ致します。

×