ラベル Google Analytics の投稿を表示しています。 すべての投稿を表示
ラベル Google Analytics の投稿を表示しています。 すべての投稿を表示
2013/06/18

[Android]Google Analytics for Androidの送信タイミングを制御する

Google Analytics へのデータ送信をフォアグラウンド実行中に制限したかったので
設定を変更してみた。

まず、データ送信は以下の2つのタイプがある。
Periodic dispatch: プログラムか analytics.xml で設定した間隔で送信するタイプ
Manual dispatch: 任意のタイミングで送信するタイプ

Periodic Dispatch

<integer name="ga_dispatchPeriod">60</integer>
GAServiceManager.getInstance().setDispatchPeriod(60);
デフォルトは30分で、負の値で送信を無効化、0でトラッキングイベント発生時に送信するように設定できる。
僕はフォアグラウンド実行中に制限するために 0 を指定した。

Manual Dispatch

GAServiceManager.getInstance().dispatch();
これを呼び出すだけでいいらしい。
バックグラウンドに移る際に実行しておけば送信漏れが無さそうで良いかもしれない。

送信失敗してもローカルに保存されて次回送信されるけど
午前4時を過ぎるとデータが無効化されるのでできるだけ漏れがないように実装したいところ。
2013/06/17

[Android]Google Analytics for Android でオプトアウトを実装する

[Android]Google Analytics for Android SDKを使う | DevAchieveで書いたように
Google Analytics を実装する場合はユーザーに通知して同意を得るか
オプトアウトできるようにする必要がある。
Advanced Configuration - Android SDK - Google Analytics — Google Developers
You can enable an app-level opt out flag that will disable Google Analytics across the entire app. Once set, the flag will persist for the life of the app or until it is reset.
the life of the app ってライフサイクルの終わりまででいいんだろうか?
アンインストールするまで?

// Google Analytics Opt-Out
if(PreferenceUtil.getBoolean(this, getString(R.string.isOptOutRequested), false)){
    boolean isOptOut = PreferenceUtil.getBoolean(this, getString(R.string.isOptOut), false);
    GoogleAnalytics.getInstance(this).setAppOptOut(isOptOut);
}else{
    PreferenceUtil.putBoolean(this, getString(R.string.isOptOutRequested), true);
    showOptOutDialog();
}
上記で初回に Google Analytics を使用するが問題ないか尋ねてその結果をセットする。
GoogleAnalytics.getInstance(this).setAppOptOut(true);
PreferenceUtil.putBoolean(this, getString(R.string.isOptOut), true);
一回セットすればアプリ全体で機能が有効/無効切り替えることができる。

requestAppOptOut でオプトアウト状況を取得することができるけど
普通に SharedPreferences に持っていた方が良いような気がする。
2013/06/04

[Android]Google Analytics for Android SDKを使う

Android Native Application Tracking Overview - Google Analytics

Android でも Google Analytics を使えばアプリの使用状況を知ることができるので
アプリの改善につながると思い、開発中のアプリに組み込むことにした。

Downloads - Android SDK - Google Analytics

まずはダウンロードだけど、ダウンロードと同時に
GOOGLE ANALYTICS TERMS OF SERVICE(※日本語版:Google アナリティクス サービス利用規約)と
Measurement Protocol / SDK Policyに同意したことになるので読んでおいたほうがいい。
特に SDK Policy は大事で、
どのようなデータを収集するか、開発者が持つユーザーの他のデータと紐付けることができるかどうかなどの
Google Analytics の実装と機能についてユーザーに適切な通知をすること、
ユーザーからの同意を得るか、実装と機能をオプトアウトする機会を提供する必要が有ること、
個人やデバイスを一意に識別できるいかなるデータをハッシュ化しようともアップロードしてはならないこと
などが書かれている。
ダウンロードしたら /libs フォルダに入れて Build Path の設定をする。

Set up new properties for Mobile App Analytics

ヘルプの手順で Google Analytics のアプリ用のプロパティを設定する。
トラッキング ID が大事。

Google Analytics SDK for Android v2 (Beta) - Overview

AndroidManifest.xml に以下のパーミッションを追加する
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
EasyTracker メソッドを追加する
public class TrackedActivity extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
  }

  @Override
  public void onStart() {
    super.onStart();
    EasyTracker.getInstance().activityStart(this); // Add this method.
  }

  @Override
  public void onStop() {
    super.onStop();
    EasyTracker.getInstance().activityStop(this); // Add this method.
  }
}
analytics.xml ファイルを作成する
<?xml version="1.0" encoding="utf-8" ?>
<resources>
    <!-- your tracking ID-->
    <string name="ga_trackingId">UA-XXXX-Y</string>

    <!--Enable automatic activity tracking-->
    <bool name="ga_autoActivityTracking">true</bool>

    <!--Enable automatic exception tracking-->
    <bool name="ga_reportUncaughtExceptions">true</bool>
</resources>
Lint 先生が怒るので以下のように記述する。ハイフンをエンコードしてはいけない。
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="TypographyDashes">
その他の設定値は Google Analytics SDK for Android v2 - EasyTracker Parameters を参照のこと。

Congratulations! Your app is now setup to send data to Google Analytics.

これで設定は完了しました!おめでとう!
さらなる情報は Advanced Configuration - Android SDK や Dev Guide を読もう!

タグ(RSS)