そのまま勢いでv3のOAuthを作りました。 Google AnalyticsはWeb解析ソリューションです。 何も考えずにサイトにJavaSriptコードを埋め込む事でWebの訪問者などを調べる事をできます。 素晴らしいサービスであれこれ機能がありますが、 今回はAPIにJavaでアクセスしてみたいと思いました。 ・gdata-core-1.0.jar ・gdata-analytics-2.1.jar ・google-collections-1.0.jar を読み込みます。 見つけて行く過程で「google-api-service-analytics-v3-1.3.3-beta.jar」を見つけました。 これでアクセスするのが良かったかもなのですが、 ちょっと使い方がわからなかったので後日試します。 サンプルを元におこなってみます。 gdataに関してOAuthやAuthSubなどの認証方式がありますが、ClientLoginで試しました。AnalyticsService service = new AnalyticsService("applicationName"); service.setUserCredentials(username, password);ClientLoginはOAuthなどを触った事がある人ならわかると思いますが あまり好ましいと思える認証方式ではありません。 実際文献にも「てめーで使うようなアプリにしか使うなよ」って書いてあります。 OAuthなどを行いたかったのですが、今回はアクセスしてみる事を目標にしてますので 一旦この方式でアクセスしてみます。 AnalytisServiceからアカウントの情報を取得してきます。URL feedUrl = new URL(""https://www.google.com/analytics/feeds/accounts/default""); AccountFeed service.getFeed(feedUrl, AccountFeed.class); for (AccountEntry entry : accountFeed.getEntries()) { }AccountFeedのgetEntries()によってそのアカウントが所有しているデータを取得する事が可能です。 AccountEntryには「TableId」というものがあって、それによりどのサイトかを識別できるようになってます。 そのテーブルIDを元にDataQueryを作成します。DataQuery query = new DataQuery(new URL(DATA_URL)); query.setIds(tableId); query.setStartDate("2012-01-01"); query.setEndDate("2012-01-31"); query.setDimensions("ga:browser"); query.setMetrics("ga:visits,ga:bounces");setDimensions()は何を取ってくるか? setMetrics()何を取ってくるか?です。 まぁ日付はそのままですね。 この場合、ブラウザについての訪問者を調べています。 このデータクエリに対してquery.setSort("-ga:visits"); query.setFilters("ga:browser!@Explorer"); DataFeed dataFeed = service.getFeed(query, DataFeed.class);というようにソートやフィルタをつけてあります。 この場合訪問者数の降順、「Explorer」とついたブラウザの排他ですね。 ・・・Googleのサンプルに悪意を見た。 これで取得したDataFeedに情報が入ってますのでfor (DataEntry entry : dataFeed.getEntries()) { System.out.println("\tBrowser: " + entry.stringValueOf("ga:browser")); System.out.println("\t\tVisits: " + entry.stringValueOf("ga:visits")); System.out.println("\t\tBounces: " + entry.stringValueOf("ga:bounces")); System.out.println("\t\tBounce rate: " + entry.longValueOf("ga:bounces") / (double) entry.longValueOf("ga:visits")); }みたいな感じで情報にアクセスできます。 まぁサービスに埋め込むにはまだ色々と考えないとなぁと思いました。 ※まぁとにかく認証ですよね。 案外調べていてPHPで文献(ブログ)を出している人が多そうでした。 まぁ現状では埋め込むサイトはPHPの方が多そうですね。 Javaでアクセス解析必要なサービスって少し前なら想像できませんが 今はGoogleAppEngineもあるので、Javaでこういったものが必要なサービスも増えてくると思います。 1.6辺りからGoogleAppEngine対応されているみたいで
2012年2月23日木曜日
GoogleAnalyticsにアクセスしてみる
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿