最初只有WEB版才有,可以分析你的流量、人口分布、瀏覽器來源等等之類的資訊!
但現在已有了Android & iOS等其他版本,
可以利用這套API去分析使用者在你app上的使用情況.
(例如:在這個Activiy待了多久,或者做了怎樣的行為,點了哪些button等等之類的,甚至可以有exception report)
這篇主要會說明在Android上面如何使用!
在這篇會先講解簡單的EasyTrakcer的部分!
EasyTrakcer顧名思義就是很簡單的意思!
有好有壞!好的是你可以快速implement,
壞的是彈性較小!
在開始實作之前,你得先去Google Analytics上開一個project for android,
目的是為了申請一個ID !
網址:https://www.google.com/analytics/web/
進來此網站之後,會見到下圖,
(1) 請點選下圖中的New Account
圖一 |
(2) 接著會看到下圖,請點選“應用程式”(預設是網站)
這ID要記起來!因為待會再Android
圖三 |
完成上述的申請以後!
(1) 接著要先去下載Google Analytics SDK (Here)
(2) 解壓縮出來
(3) 開一個Android Project
(4) 把lib include至Android Project中
在Project中點選右鍵選擇properties
接著會見到下圖,點選下圖中右方的紅色框框Java Build Path
然後點選下圖中上方的紅色框框Libraries
再點選下圖中有方紅色框框的Add External JARS...
然後找到你剛剛下載的lib,把它加進來就好!
圖四 |
(5) 把剛剛include進來的jar export出來!(如下圖)
(7) 加入下列兩項permission
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
(8) 接著在project中/res/value底下建立一個analytics.xml
內容如下:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<!--Replace ID with your tracking ID-->
<string name="ga_trackingId">UA-XXXX-Y</string>
<!-- use for debug -->
<bool name="ga_debug">true</bool>
<!--Enable Activity tracking-->
<bool name="ga_autoActivityTracking">false</bool>
</resources>
註:
ga_trackingId記得填寫自己剛剛申請的那個id
ga_debug的意思是使用debug模式,可以讓你在local端看到一些track的資訊!
如果你沒有設置這個attributes,你可能要等很久很久,你的Google Analytics後台管理頁面才會更新資訊.....
所以還是設定一下吧!
ga_autoActivityTracking這個property也很重要,如果設為true的話,在initial tracker時,tracker會自動發出一個request,這個requset就包含了device name, screen resolution, os等等之類的資訊!在這我們先設為false,一切以手動的方式進行track!
(9) 開始寫code,
private Tracker tracker = null; // use for track event, exception..etc.
private Context cxt = null;
private int iDispatchTime = 3; // determine how long send the information to Google
private double dSampleRate = 100; // determine how much information to be send
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
cxt = this;
EasyTracker.getInstance().setContext(cxt); // initial
// start a Tracker, you must to do this thing otherwise you can't send any tracker to Google.
EasyTracker.getInstance().activityStart((Activity)cxt); // Add this method.
// 取得一個tracker
tracker = EasyTracker.getTracker();
// 設定Sample Rate, sample rate用意在於如果你的app很多人使用,
// 那麼你可以自己設定有百分之幾的device資訊會被送出Google
// 這裡設定100%,也就是說所有device都會送出資訊
tracker.setSampleRate(dSampleRate);
// 設定dispatch time
// 這裡預設為3秒,也就是說每次trackEvent, trackException一次
// 都會在3秒以後送出(當然你可以手動進行dipatch)
GAServiceManager.getInstance().setDispatchPeriod(iDispatchTime);
// track event
tracker.trackEvent("UI_ACTION", "buttonClick", "labelCreatedByKen", 0l);
// track view, 追蹤這個activity使用者停留了多久之類的
tracker.trackView("trackViewHomePage");
// track exception, 這裡是手動的track exception
// 你可以把trackException放在try{}cathc(){};之中
tracker.trackException("ExceptionCreatedByKen", false);
}
完成以後你可以利用DDMS進行debug,
你可以用來看這些track(trackEvent, trackView,trackExeption)送出了那些資訊
大概會看到下面那張圖!
而在Google Analytics的後台就會看到上面送出的那些資訊!
如下圖!
trackEvent |
trackView |
trackExcpetion-1 |
trackException-2 |
trackException有兩張圖,因為trackException會記錄著是那個version的app發生exception的!
所以如果你有很多個version,你會在第一張圖看到很多個version,
因為這個是test app,所以目前只有一個1.0,點進去以後就會看到詳細的exception資訊了!(如第二張圖)
上面code之中有講到trackException,大家可能會有點confused,
因為如果你在開發app時,error handling做不好的時候,可能會導致app crash!
那麼屬於這邊的exception 該怎麼抓到呢?
恩!在Google Analytics也有提供這樣的功能!
只要在上面的xml檔當中加入下面的element即可!
<!--Enable automatic exception tracking-->
<bool name="ga_reportUncaughtExceptions">true</bool>
上面就是一些稍微進階的Google Analytic的使用方式!