OPEN SOURCE LABORATORY

投稿日:2010年12月24日 -投稿者 S.M.

[android] アプリにGoogleAnalyticsを埋め込むには

今回はandroidアプリにGoogleAnalyticsを仕込む方法を紹介します。
GoogleAnalyticsといえば「Webサイトのアクセス解析でしょ」と思われがちですが、
スマートフォンアプリ(iphone,android)でも利用が可能です。
① Google Analytics SDK for Androidの用意
以下のページからSDKをダウンロードします。
http://code.google.com/intl/ja/mobile/analytics/download.html
# 2010/12/07時点での最新版は0.8
ダウンロードしたら、ファイルを展開してプロジェクトに組み込みます。
eclipseを開いて、プロジェクトを右クリック→「ビルド・パス」→「ビルド・パスの構成」を選択し、
ライブラリタブを選択。「外部 Jar 追加」を選択し、「libGoogleAnalytics.jar」を選択します。
次にAndroidManifest.xmlに以下のパーミッションを追加します。
  <uses-permission android:name=”android.permission.INTERNET” />
  <uses-permission android:name=”android.permission.ACCESS_NETWORK_STATE” />
② Analyticsアカウントの用意
次は、Analyticsのアカウントを用意し、プロファイルを作成します。
# 既にプロファイルを用意している場合は③に進んでください。
まず、↓のページにアクセスし、Analyticsの登録を行います。
http://www.google.com/intl/ja/analytics/
アカウントができたら、次はプロファイルを作成します。
「プロファイルを追加」リンクをクリックして、プロファイルの新規作成画面を表示します。
「トラッキングするサイトのURL」に適当なURLを入力し、完了ボタンをクリックします。
すると、サマリーページに先ほど登録したプロファイルが追加されるので、
追加されたプロファイルの「UA-xxxxxxx-x」をメモしておきます。
analytics_main.png
③ アプリに組み込む
ここからは実際にアプリに組み込んでいきます。
組み込みを行うにあたって、以下の4つを記述します。
①GoogleAnalyticsTrackerのインスタンスの作成
②トラッキングの開始
③トラッキング(ページ or イベント)
④トラッキングの停止
———————————————————————-
import jp.pinetail.android.sample.analytics.R.id;
import com.google.android.apps.analytics.GoogleAnalyticsTracker;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class MainActivity extends Activity {
    
    GoogleAnalyticsTracker tracker;
    
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        // ① インスタンスの作成
        tracker = GoogleAnalyticsTracker.getInstance();
        // ② トラッキングの開始
        // 20秒間隔でトラッキングデータを送信する
        tracker.start(“UA-xxxxxxx-x”, 20, this);
        // ③ トラッキング(ページビュー)
        tracker.trackPageView(“/MainActivity”);
                
        Button btn = (Button) findViewById(R.id.Button01);
        btn.setOnClickListener(new OnClickListener() {
            public void onClick(View arg0) {
                // ③ トラッキング(イベント)
                tracker.trackEvent(“Category”, // Category
                        ”Action”,              // Action
                        ”Label”,               // Label
                        0);                    // Value
            }
        });
    }
    @Override  
    protected void onDestroy() {
        super.onDestroy();
        // ④ トラッキングの停止
        tracker.stop();
    }
}
———————————————————————-
トラッキングを埋め込んだら、アプリを操作してAnalyticsに反映されるまでひたすら待ちます。
反映されるまで最大24時間かかるらしいので、気長に待ちます。
で、後日反映された結果を眺めてみました。
・コンテンツ サマリー
analytics_content.png
trackPageViewで設定した内容が反映されてます。
・イベント トラッキングの概要
analytics_event.png
trackEventで設定した内容が反映されてます。
この他にもOSのバージョン、画面の解像度も調べることができます。
# 「ユーザー」 → 「PC環境」 → 「オペレーティング システム」
analytics_os.png
海外だと2.2がメインという記事がちらほら書かれてますが、
日本だとやっぱり2.1が多いですね。
あと、残念ながらtrackPageViewでは機種名(xperia、IS03等)は取得できないようです。
機種名を別途とりたい場合はsetCustomVarメソッドを使えばいいようです。
※ setCustomVarは任意のデータを取得できますが、
   個人情報を取得するのはやめましょう!
wrote by S.M.

投稿日:2010年12月21日 -投稿者 senryaku

ブログリニューアルのお知らせ

いつも「オープンソース研究室」をご愛読いただき、ありがとうございます!

かねてよりご好評をいただいております、
「オープンソース研究室」ブログ事務局からのお知らせです。

KDLの精鋭が最先端のオープンソースに関する情報をお届けする
当ブログですが、12月22日付でリニューアルいたしました!

リニューアルにあたり、執筆メンバーも心機一転。
KDLの若きエース達がそれぞれの得意分野を生かし、
皆様へオープンソースに関することや、SEの心情なども織り交ぜた
さまざまな最新情報をお届けします。

では、以下にメンバーを紹介します!

■■■■■ 大柳晋也 ■■■■■

今まで書いたのを自己紹介代わりとします。
17 本書いてますねー。
これからも幅広くネタを収集していきたいです。
Cubby を触ってみるための前準備をする(1) (/open/2009/12/30/cubby_1/
PHP カンファレンスに行ってきた (/open/2009/09/06/php/
JavaScript で TDD (/open/2009/08/09/javascript_tdd/
Lime で TDD (/open/2009/07/13/lime_tdd/
PHP で TDD その3 (/open/2009/05/31/php_tdd_3/
PHP で TDD その2 (/open/2009/04/18/php_tdd_2/
PHP で TDD (/open/2009/04/05/php_tdd/
PHP で TDD その3SubSonic を使ってみた (/open/2008/11/04/subsonic/
SmartSVN を試してみる (/open/2008/09/12/smartsvn/
Putty でアンチエイリアスなフォント (/open/2008/08/29/putty/
Subversion クライアント QSvn (/open/2008/08/08/subversion_qsvn/
俺の Eclipse (/open/2008/07/29/_eclipse/
php_ctemplate を使ってみる (/open/2008/07/16/php_ctemplate/
Google ctemplate を使ってみる (/open/2008/07/09/google_ctemplate/
MySQL のフロントエンド その2 (/open/2008/06/28/mysql_2/
MySQL のフロントエンド (/open/2008/06/15/mysql/
Mac 用 Subversion クライアント Versions.app (/open/2008/06/08/mac_subversion_versionsapp/
■■■■■
■■■■■ S.M. ■■■■■
ずっと前から記事を書いてますが、リニューアルということで改めて自己紹介です。
入社以来「PHP一筋」と言っていいほど仕事ではPHPばかり触ってますが、プライベートではRailsやJavaをちょこちょこいじってます。
最近はandroidにどっぷりハマっててアプリを公開したりしてます。
■■■■■

■■■■■ 山本大作 ■■■■■

「運用・保守」業務が多く、サーバ管理がメインのインフラ系エンジニアです。
「Windows系サーバ保守」からインフラ系への道に突入しましたが、入社1年目に経験した「Linuxサーバ構築・運用」でLinuxの魅力にどっぷりはまりました。
「効率化」「自動化」というキーワードに興味があります。
日々の業務で習得したノウハウや、「効率化・自動化」の切り口で行ってきたことなどをメインで投稿していきたいと思います。よろしくお願いします!
■■■■■
■■■■■ T.H. ■■■■■
仕事はwebシステムの構築や保守をやっています。
プライベートでWordPressをいじったりしています。最近、WordPressに問い合わせフォームが設置できるプラグインを公開しました。
プラグイン公式サイト→http://horike.lolipop.jp/iqfm/
また、HTML5関連の技術にも興味を持っています。特にスマートフォン+HTML5の技術でなにかできないかなーと妄想したりしています。
今後ともよろしくお願いします!
■■■■■

■■■■■ 山本浩生 ■■■■■

ブログには以下のようなことを書こうと考えています。
・遭遇したトラブルの解決法
・最新の話題・ニュース
例えば、PCをサーバーや開発環境として使っていて遭遇する問題とその解決方法や、スマートフォンやIT絡みの(個人的に)旬な話題、プログラミング言語Scalaについてなど、テーマは絞らず幅広く(雑多に)取り上げていこうと考えていますのでよろしくお願いします。
■■■■■
今後益々活発になっていくであろうオープンソース界。
さまざまな視点から最新情報をお届けしてまいりますので、
今後とも「オープンソース研究室ブログ」をよろしくお願いいたします!