metaタグとpermissionを追加します。
<application android:name=".AnalyticsApplication" ...> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <activity ...> </application> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
public class AnalyticsApplication extends Application { private static final String PROPERTY_ID = "your property id"; Tracker mTracker; public AnalyticsApplication() { super(); } synchronized Tracker getTracker() { if (mTracker == null) { GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); mTracker = analytics.newTracker(PROPERTY_ID); } return mTracker; } }
基本的にはonStart()に仕込むのが常套手段っぽいですが、
別の画面から戻ってきた時にも送るかどうかの注意が必要。
@param screenName スクリーン名
// Get tracker. Tracker t = ((AnalyticsApplication) getApplication()).getTracker(); // Set screen name. // Where path is a String representing the screen name. t.setScreenName(screenName); // Send a screen view. t.send(new HitBuilders.AppViewBuilder().build());
@param categoryId カテゴリ
@param actionId アクション
@param labelId ラベル
// Get tracker. Tracker t = ((AnalyticsApplication) getApplication()).getTracker(); // Build and send an Event. t.send(new HitBuilders.EventBuilder() .setCategory(categoryId) .setAction(actionId) .setLabel(labelId) .build());
ここまでが必要最低限の設定です。
レポートタブのアプリサマリーの項目ににデータが追加されていきますが、
反映されるには24~48時間前後かかるようです。
リアルタイム項目のイベントやスクリーンにはすぐに反映されます。
あまり使わないと思いますが、一応メモ。
Trackerを使い分ける際は以下のようにして管理するようです。
APP_TRACKER アプリ個別の設定
GLOBAL_TRACKER 会社用など共通の設定を使用する場合
ECOMMERCE_TRACKER eコマース用?
public class AnalyticsApplication extends Application { private static final String PROPERTY_ID= "your property id"; public enum TrackerName { APP_TRACKER, // Tracker used only in this app. GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking. ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company. } HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>(); public AnalyticsApplication() { super(); } synchronized Tracker getTracker(TrackerName trackerId) { if (!mTrackers.containsKey(trackerId)) { GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID) : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker) : analytics.newTracker(R.xml.ecommerce_tracker); mTrackers.put(trackerId, t); } return mTrackers.get(trackerId); } }