Android アプリで Google Analytics へトラッキングするサンプルクラス

公開日: : 最終更新日:2014/01/26 Android

お客さまからの要望があって対応。特に難しいことはないのだが、せっかくなので Gist にスニペットを登録しておいた。

作成したクラス

Gist に登録済み。

/**
 * Google Analytics へのトラッキングを行うクラス。
 * 
 * @author tomoyamkung
 *
 */
public class GoogleAnalyticsTrack {
    
    private Tracker tracker;
 
    /**
     * コンストラクタ。
     * 
     * @param activity Google Analytics へトラッキングを送信する画面のアクティビティ
     */
    public GoogleAnalyticsTrack(Activity activity) {
        GoogleAnalytics instance = GoogleAnalytics.getInstance(activity);
        tracker = instance.getTracker(getGoogleAnalyticsPropertyID(activity));
    }
    
    /**
     * Google Analytics へのトラッキングに必要な「プロパティID」を取得する。
     * 
     * プロパティID 自体は strings.xml に定義してある。
     * 
     * @param activity Google Analytics へトラッキングを送信する画面のアクティビティ
     * @return プロパティID
     */
    private String getGoogleAnalyticsPropertyID(BaseActivity activity) {
        return activity.getString(R.string.ga_property_id);
    }
    
    /**
     * トラッキング情報を送信する。
     * 
     * @param message 送信メッセージ
     */
    public void send(String message) {
        tracker.sendView(message);
    }
    
    /**
     * イベント情報を送信する。
     * 
     * @param category
     * @param action
     * @param label
     * @param value
     */
    public void sendEvent(String category, String action, String label, long value) {
        tracker.sendEvent(category, action, label, value);
        GAServiceManager.getInstance().dispatch();
    }
 
}

プロパティIDの取得

トラッキングに必要なプロパティIDはソースコードに直接書くのではなく、strings.xml に切り出すようにしてある。キーは ga_property_id としてある。

strings.xml はわざわざサンプルを載せる必要もない程度の内容なので省略。

実装メソッド

送信処理を行うメソッドを2つ実装した。

  • GoogleAnalyticsTrack#send
  • GoogleAnalyticsTrack#sendEvent

GoogleAnalyticsTrack#send は、画面が表示されたタイミング(Acrivity を切り替えたタイミング)でトラッキング情報を送信する用途に使っている。

GoogleAnalyticsTrack#sendEvent は、何かをタップしたり、更新処理を行ったタイミングでトラッキング情報を送信する用途に使っている。

Googleアドセンス用(PC)

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

関連記事

icatch-thread_11187402315_mini

Android アプリ開発で “cannot perform this action inside of onloadfinished” とエラーメッセージが表示された場面の対処法

現在仕事で Android アプリ開発をやっていて、この "cannot perform this

記事を読む

no image

AlertDialog の背景をタップできなくする

AlertDialog はモーダルダイアログではないので背景をタップできてしまう。それだとちょっと不

記事を読む

no image

初めてのアンドロイドアプリ開発振り返り

始めてのアンドロイドアプリ開発が落ち着きをみせてきた。まだ熱が冷めないうちに簡単に振り返っておく。

記事を読む

icatch-timezone

Android アプリでタイムゾーンを Asia/Tokyo で現在時刻を取得する

もしかしたら環境だったり、条件があるのかもしれないけど備忘録としてメモ。 Android アプ

記事を読む

no image

位置情報取得に関する覚え書き、その2

以前、【Androidアプリ開発】位置情報取得に関する覚え書き を書いたが、試行錯誤を続ける中で変更

記事を読む

no image

位置情報取得に関する覚え書き

思うように最新の位置情報を取得できなかったが、試行錯誤した結果「とりあえず大丈夫かな」って段階まで持

記事を読む

icach-smartphone_10858946293_mini

Android アプリで “external/chromium/net/disk_cache/stat_hub.cc:216″ とエラーメッセージが表示された場合の対処法

Android アプリ開発中にとある画面を表示しようとしたら "external/chromium/

記事を読む

icatch-error_9849183645_mini

Android の非同期処理を行う Loader の起動方法

これ、ボクの完全な思い違いだったのですが、非同期処理を行うクラスの呼び出しは Activity か

記事を読む

icatch-finished_6609228299_mini

Android アプリで特定の Activity が呼ばれたらアプリを終了させる方法

とある Activity が呼ばれたらアプリを終了させる方法です。 戻るボタンで戻りすぎることが出

記事を読む

no image

WebView からデフォルトブラウザを開く

WebView に表示されているリンクは WebView ではなくデフォルトブラウザで開きたい、とい

記事を読む

Googleアドセンス用(PC)

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


六 × 5 =

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Googleアドセンス用(PC)

icatch-jersey_multi_pathparams
Jerseyの@PathParamはスラッシュの間に複数指定できる

http://hoge-api/user/{id}.{format}

icatch-vagrant_box_customize
VagrantのBoxファイルをカスタマイズして独自のBoxファイルを作成する

配布されている Vagrant の Box ファイルを使って検証環境を

icatch-2015-006-1
バリデーションチェックにJava8のOptionalを使ってスマートに書く(自分比)

Web アプリのバリデーションチェックにアノテーションを使うことが増え

icatch-2015-005-1
ユニットテストの偏りを防ぐ命名規則の付け方

ユニットテスト名に以下の命名規則を付けるようにして二ヶ月ぐらい経った。

icatch-2015-004-1
Vagrantで起動したCentOS上のOctopressをホストOSから確認する設定

タイトルの通りだが、Vagrant を使って起動した CentOS に

→もっと見る

PAGE TOP ↑