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
