「その他サービス/GoogleAnalytics/php」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→リアルタイム数を取得) |
(→analyticsAPIを有効に) |
||
| 行14: | 行14: | ||
==analyticsAPIを有効に== | ==analyticsAPIを有効に== | ||
| − | # | + | #左メニューの"API"リンクを選択 |
| − | # | + | #"Analytics API"を選択 |
#有効にするボタンを押す | #有効にするボタンを押す | ||
2015年7月20日 (月) 09:26時点における版
analyticsをphpで操作
プロジェクト作成
- https://console.developers.google.com/project
- "sample-analytics"などと入れる
認証作成
- 作成したプロジェクトを選択
- 認証情報リンクを選択
- 新しいクライアントIDを作成ボタンを押す
- サービスアカウントを選択
- 秘密鍵のjsonファイルを保存
- p12ファイルも保存
analyticsAPIを有効に
- 左メニューの"API"リンクを選択
- "Analytics API"を選択
- 有効にするボタンを押す
analyticsサイト側設定
- アナリティクス設定リンクを押す
- プロパティのユーザ管理を押す
- メールアドレス欄にjsonファイル内のclient_email文字列を追加
- ビュー設定のビューIDをメモしておく
phpライブラリDL
git clone https://github.com/google/google-api-php-client.git
Top10表示
<?php
class AnalyticsApiModel
{
private $_client;
private $_client_id = 'xxxxxxx-xxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com';
private $_service_account_name = 'xxxxxxxxx-xxxxxxxxxxxxxxxxxxxxx@developer.gserviceaccount.com';
private $_key_file = __DIR__ . '/sample-analytics-xxxxxxxxxxx.p12';
private $_view_id = 'ga:xxxxxxxxxx';
public function __construct()
{
require_once __DIR__ . "/google-api-php-client/src/Google/autoload.php";
$client = new Google_Client();
$client->setApplicationName("Google Analytics PHP Starter Application");
$client->setClientId($this->_client_id);
$client->setAssertionCredentials(new Google_Auth_AssertionCredentials(
$this->_service_account_name,
array('https://www.googleapis.com/auth/analytics'),
@file_get_contents($this->_key_file)
));
$this->_client = $client;
}
public function findAllTop10($time)
{
$analytics = new Google_Service_Analytics($this->_client);
$end_date = date("Y-m-d", $time);
$start_date = date("Y-m-d", $time - 86400);
$result = $analytics->data_ga->get(
$this->_view_id,
$start_date,
$end_date,
'ga:pageviews',
array(
'dimensions' => 'ga:pageTitle,ga:pagePath',
'sort'>- => '-ga:pageviews',
// 'filters' => 'ga:pagePath=~/tag/',
'max-results' => '10' //件数
)
);
return $result['rows'];
}
}
$api = new AnalyticsApiModel();
$all = $api->findAllTop10(time());
print nl2br(print_r($all,1));
//Array
//(
// [0] => Array
// (
// [0] => テストページ1
// [1] => /test1
// [2] => 1772
// )
// [1] => Array
// (
// [0] => テストページ2
// [1] => /test2
// [2] => 925
// )
リアルタイム数を取得
リアルタイムなコンテンツURLを取得することはできないみたい(2015/6時点)
try {
$optParams = array(
'dimensions' => 'rt:medium');
$results = $analytics->data_realtime->get(
$this->_view_id,
'rt:activeUsers',
$optParams
);
$totals = $results->getTotalsForAllResults();
print nl2br(print_r($totals,1)); // 下記*1に示す
if (count($results->getRows()) > 0) {
foreach ($results->getRows() as $row) {
print nl2br(print_r($row,1)); // 下記*2に示す
}
}
} catch (apiServiceException $e) {
echo $e->getMessage();
}
*1
Array
(
[rt:activeUsers] => 721
)
*2
Array
(
[0] => DIRECT
[1] => 383
)
Array
(
[0] => ORGANIC
[1] => 327
)
Array
(
[0] => REFERRAL
[1] => 1
)
Array
(
[0] => SOCIAL
[1] => 10
)
参考
http://www.karakaram.com/google-analytics-api-batch
http://syncer.jp/google-analytics-api-tutorial
公式リアルタイムページ https://developers.google.com/analytics/devguides/reporting/realtime/v3/reference/data/realtime/get?hl=ja
