GA APIでページビューやセッションだけでなく、rt:activeUsersでリアルタイムユーザを取得できる。
require_once '../google-api-php-client/src/Google/autoload.php'; $service_account_email = '*.iam.gserviceaccount.com'; $key = file_get_contents('*.p12'); $profile = '*'; $client = new Google_Client(); $analytics = new Google_Service_Analytics($client); $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); } $optParams = array( 'dimensions' => 'rt:medium'); try { $results = $analytics->data_realtime->get( 'ga:' . $profile, 'rt:activeUsers', $optParams); } catch (apiServiceException $e) { $error = $e->getMessage(); } print("<pre>"); // print_r($results["totalsForAllResults"]["rt:activeUsers"]); print_r($results); print("</pre>");
$array[“totalsForAllResults”][“rt:activeUsers”] でアクティブユーザすうを取れるが、配列で何が取れるか確認した方が良い。
GAの場合、analytics.jsでajaxで処理しているので、ELBのアクセスログから例えば過去5分間のアクセス数を数えてログインユーザとして表示するってよりは、GA APIの方が現実的か。
ちなみに、rtって、リツイートの略かと思ったけど、real timeの略っぽいね。なんじゃそりゃw