戯言

つらつらと気づいたことを書いていきます。人狼とか。

GoogleAnalyticsのリアルタイムAPI Java版の使い方 step3


前回の続きです。前回記事はこちら

5.コーディング


ここから、ようやくコーディングの話題となります。準備が長かったですね。。。

コーディングですが、あくまで私がこうやったらできたというだけで、他にもいろいろな書き方があると思うので、あくまで参考程度にしてください。

まずは、一気にコードを。
※エラー処理、例外処理などは省略
JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
HttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();

Credential credential = new GoogleCredential.Builder().setTransport(HTTP_TRANSPORT)
			.setJsonFactory(JSON_FACTORY)
			.setServiceAccountId("**************@developer.gserviceaccount.com")
			.setServiceAccountScopes(Collections.singleton(AnalyticsScopes.ANALYTICS_READONLY))
			.setServiceAccountPrivateKeyFromP12File("************.p12")
			.build();

Analytics analytics = new Analytics.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential)
  			.setApplicationName(APPLICATION_NAME)
  			.build();

String profileId = "99999999";
String dimensions = "ga:pageTitle,ga:pagePath";
String sort = "ga:pageTitle";

RealtimeData realtimeData = analytics.data().realtime()
			.get("ga:" + profileId, "ga:activeVisitors")
			.setDimensions(dimensions)
			.setSort(sort)
			.execute();

まずは、Credentialオブジェクトを作成します(1-9行目)。認証用のオブジェクトであり、作成には、step2 4.コーディング時に必要な情報の①秘密鍵ファイルと、②Service accountのIDが必要になります。上記コード例のように、setterを次々に指定して、オブジェクトを作成してください。

次に、Analyticsオブジェクトを作成します(11-13行目)。先のCredentialオブジェクトと、アプリケーション名を指定します。アプリケーション名は何でもいいようです。他サイトのコード例では"MyCompany-ProductName/1.0"の形式を目にしましたが、このアプリケーション名がどこで利用されているのかは調べていません。

そして、Analyticsオブジェクトを使用して、リアルタイムデータを取得します(15-24行目)。ここでは、取得する対象のAnalyticsのビューIDを指定し、取得する情報、どう細分化するか、ソート順、件数などを指定します。コード例のように、setterで各種情報を指定した後に、executeして、取得できます。

AnalyticsのビューIDは、step2 4.コーディング時に必要な情報の③です。
dimensions、sortは、なんとなくわかると思います。このrealtimeDataオブジェクトに、各種リアルタイムのアクセス情報が入っていますので、getterを利用して必要な情報を取り出して下さい。

ベータ版利用の認証が済んでいない場合は、ここでエラーオブジェクトを返してきます。RealTime以外のAnalytics情報は取得できるが、リアルタイム情報だけ取得できないという場合は、ベータ版の利用が認証されていない状態なので、認証が完了するのを待つしかありません。

では、ステキなリアルタイムAnalyticsライフを。




関連記事

管理者にだけ表示を許可する