最初只有WEB版才有,可以分析你的流量、人口分布、瀏覽器來源等等之類的資訊!
但現在已有了Android & iOS等其他版本,
可以利用這套API去分析使用者在你app上的使用情況.
(例如:在這個Activiy待了多久,或者做了怎樣的行為,點了哪些button等等之類的,甚至可以有exception report)
這篇主要會說明在Android上面如何使用!
在這篇會先講解簡單的EasyTrakcer的部分!
EasyTrakcer顧名思義就是很簡單的意思!
有好有壞!好的是你可以快速implement,
壞的是彈性較小!
创建一个Google用户 方便用Google Analytics
要使用Google Analytics 必须在申请一个ga_trackingId 然后在android project中配置 申请ga_trackingId的地址要通过Google 所以必须要翻墙的,
https://www.google.com/analytics/web/
1.进入网址首页后 可以看到下图的 点击new account
2.点击后 出现下图 要选择跟踪哪个项目 android一般选择应用程式 并起一个名称
3完成后 会得到一个ga_trackingId 如:UA-59731422-1 记住这个id 在android 配置用得到。 由于这张图片显示不了 这里用图片的链接来代替 http://4.bp.blogspot.com/-lEh6Ua6CVAI/UJxds0IAtZI/AAAAAAAAEfo/MJQjdZKRnek/s640/2.png
完成上述的申請以後!
(1) 接著要先去下載Google Analytics SDK (Here)
(2) 解壓縮出來
(3) 開一個Android Project
(4) 把lib include至Android Project中
在Project中點選右鍵選擇properties
接著會見到下圖,點選下圖中右方的紅色框框Java Build Path
然後點選下圖中上方的紅色框框Libraries
再點選下圖中有方紅色框框的Add External JARS...
然後找到你剛剛下載的lib,把它加進來就好!
4 配置好后 在android中配置信息
在AndroidManifest.xml 写两个权限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
再在values下建立一个xml 如analytics.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- 发布时注意修改debug信息 -->
<!-- 所有的配置信息,在APP中都可以动态指定,根据实际情况来混合处理 -->
<!-- 忽略破折号错误提示问题 -->
<resources xmlns:tools="https://schemas.android.com/tools" tools:ignore="TypographyDashes">
<!-- Replace placeholder ID with your tracking ID -->
<string name="ga_trackingId">UA-59731422-1</string>
<!-- 不设置时默认获取当前包信息 -->
<string name="ga_appVersion">1.0.1</string>
<bool name="ga_debug">true</bool>
<!-- 以秒为单位的调度期 -->
<!-- 任何点击或事件都是储存在本地队列,然后发送到GA;使用定期调度(periodic dispatch)&手动调度(manual dispatch)可以减少因网络不畅引起的发送GA不成功,也可以减少对设备电池寿命的影响 -->
<integer name="ga_dispatchPeriod">20</integer>
<!-- 采样率:假如APP用户很多,每天的会话很大的话,可以设置采样率,避免正确的报告被中断,50%即每两次会话仅记录一次 -->
<string name="ga_sampleFrequency">100.0</string>
<!-- Enable automatic all activity tracking -->
<bool name="ga_autoActivityTracking">true</bool>
<!-- 通过移除IP地址的最后一个字节来匿名发送信息,但是会降低分析报告的准确度 -->
<bool name="ga_anonymizeIp">false</bool>
<!-- Enable automatic exception tracking,所以的意外追踪都是自动的,在GA里面反映为致命错误 -->
<bool name="ga_reportUncaughtExceptions">true</bool>
<!-- 在Activity被跟踪期间一直保持打开、且在处于非活动状态超过 30 秒后关闭的会话,负值可以禁止回话管理 -->
<integer name="ga_sessionTimeout">20</integer>
<!-- The screen names that will appear in your reporting -->
<string name="com.example.ga.MainActivity">首页</string>
</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!
</pre></p><p><span style="color: rgb(51, 51, 51); font-family: Verdana, Arial, sans-serif; line-height: 16.8999996185303px;"><span style="font-size:18px;"> 在一个Activity中 写入你想得到的信息报告:</span></span></p><p><span style="color: rgb(51, 51, 51); font-family: Verdana, Arial, sans-serif; line-height: 16.8999996185303px;"><span style="font-size:18px;"> </span></span><pre name="code" class="java">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的後台就會看到上面送出的那些資訊!
如下圖!
rackException有兩張圖,因為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>
想了解更多 请https://developers.google.com/analytics/devguides/collection/android/v4/