Android/analytics組み込み
提供: 初心者エンジニアの簡易メモ
目次
analyticsのプロパティを作成
- https://www.google.com/analytics/web/
- アナリティクス設定
- プロパティをクリック/新しいプロパティを作成を選択
- トラッキングの対象をアプリに(ウェブサイトは選んでは駄目)
analyticsのSDKダウンロード
- https://developers.google.com/analytics/devguides/collection/android/resources?hl=ja&csw=1
- GoogleAnalyticsServicesAndroid_3.0.zip をダウンロード
プロジェクトにanalytiscのjarを設定
- libGoogleAnalyticsServices.jarをlibsの下にコピー
- プロジェクトプロパティ/javaビルドパス/jar追加/libGoogleAnalyticsServices.jar選択
権限設定
- AndroidManifest.xml
<!-- net許可 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- net接続状態取得 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
簡単追跡
- src/HogeActivity.java
@Override public void onStart() { super.onStart(); EasyTracker.getInstance(this).activityStart(this); // Add this method. } @Override public void onStop() { super.onStop(); EasyTracker.getInstance(this).activityStop(this); // Add this method. }
- res/values/analytics.xml
<?xml version="1.0" encoding="utf-8" ?> <resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="TypographyDashes"> <!--Replace placeholder ID with your tracking ID--> <string name="ga_trackingId">UA-xxxx-yy</string> <!--Enable automatic activity tracking--> <bool name="ga_autoActivityTracking">true</bool> <!--Enable automatic exception tracking--> <bool name="ga_reportUncaughtExceptions">true</bool> </resources>
高度
Tracker tracker = GoogleAnalytics.getInstance(this).getTracker("UA-xxxx-yy"); HashMap<String, String> hitParameters = new HashMap<String, String>(); hitParameters.put(Fields.HIT_TYPE, "appview"); hitParameters.put(Fields.SCREEN_NAME, "HomeActivity"); // hitParameters.put(Fields.SCREEN_NAME, getPackageName + "/HomeActivity"); // EasyTracer互換のアクティブスクリーン名 // hitParameters.put(Fields.SCREEN_NAME, getClass().toString()); tracker.send(hitParameters);
ネット不通エラー
W/GAV3(5764): Thread[GAThread,5,main]: Exception sending hit: UnknownHostException W/GAV3(5764): Thread[GAThread,5,main]: ssl.google-analytics.com W/GAV3(5764): Thread[GAThread,5,main]: Empty/Null collection passed to deleteHits.
キャンペーンデータなしと出るが動作に問題なし
I/GAV3(31049): Thread[GAThread,5,main]: No campaign data found.
サンプルクラス
- HogeAnalytics.java
/** * HogeAnalyticsクラス * @ex * *ApplicationのonCreateで * HogeAnalytics analytics = HogeAnalytics.getInstance(); * analytics.setUseFlag(true); // analytics使用時(任意 * analytics.setUa("UA-xxxx-yy"); * analytics.setContext(getApplicationContext()); // 必須 * analytics.setPrefix(getPackageName().substring(getPackageName().lastIndexOf(".") + 1)); // prefixをつけたい場 >合(任意) * *それぞれのページで * HogeAnalytics.getInstance().trackActivity("test");// スクリーン(getClass().getName()とかでclass名を入れてもいい * HogeAnalytics.getInstance().trackEvent("test");// イベント */ public class HogeAnalytics { private String mUa = ""; private Tracker mTracker; private Boolean mUseFlag = false; //使用フラグ private Context mContext; private String mPrefix = ""; private static HogeAnalytics instance = new HogeAnalytics(); private HogeAnalytics() { } public static HogeAnalytics getInstance() { return instance; } public void setContext(Context context) { mContext = context; initTracerInstance(); } public void initTracerInstance() { mTracker = GoogleAnalytics.getInstance(mContext).getTracker(mUa); } public void setUseFlag(Boolean flag) { mUseFlag = flag; } public void setPrefix(String prefix) { mPrefix = prefix; } public void setUa(String ua) { mUa = ua; } public void trackActivity(String viewname) { if (!mUseFlag) return; if (mPrefix != "") { viewname = mPrefix + "." + viewname; } mTracker.set(Fields.SCREEN_NAME, viewname); mTracker.send(MapBuilder .createAppView() .build() ); } public void trackEvent(String eventname) { if (!mUseFlag) return; if (mPrefix != "") { eventname = mPrefix + "." + eventname; } mTracker.send(MapBuilder .createEvent(eventname, // Event category (required) eventname, // Event action (required) null, // Event label null) // Event value .build() ); mTracker.set(Fields.SCREEN_NAME, null); } }
公式解説ページ
https://developers.google.com/analytics/devguides/collection/android/v3/?hl=ja#manifest