`
coolerbaosi
  • 浏览: 727096 次
文章分类
社区版块
存档分类
最新评论

google analyctis for android 使用

 
阅读更多

1.说明
之前写过一篇关于1.x与2.x版本之前的差异对比,如果之前没有用过1.x版本可跳过。链接:Google Analytics SDK forAndroid v2使用介绍1
在使用之前需要一个ID,用来接受你的应用数据。地址:https://www.google.com/analytics/web/

2.使用方法

2.1 首先需要如下权限,用来上传数据:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

2.2 在Activity的onstart和onStop中分别添加如下代码:

@Override
public void onStart(){
super.onStart();
... // The rest of your onStart() code.
EasyTracker.getInstance().activityStart(this);// Add this method.
}

@Override
public void onStop() {
super.onStop();
… // The rest of your onStop() code.
EasyTracker.getInstance().activityStop(this); // Add this method.
}

2.3 在res/values目录下创建analytics.xml文件并加入类似下面的代码,EasyTracker提供了多个配置参数,可以按自己的需求来添加,所有参数地址为:analytics.xml parameters reference

<?xmlversion="1.0"encoding="utf-8"?>

<resourcesxmlns:tools="https://schemas.android.com/tools"
tools:ignore="TypographyDashes">
<!--Replace placeholder ID with your tracking ID-->
<stringname="ga_trackingId">UA-XXXX-Y</string>

<!--Enable Activity tracking-->
<boolname="ga_autoActivityTracking">true</bool>

<!--Enable automatic exception tracking-->
<boolname="ga_reportUncaughtExceptions">true</bool>
</resources>

3 追踪方法详解

3.1Dispatching 统计数据的发送

//1.隔一段时间自动发送
//1.1EasyTracker 添加<bool name="ga_autoActivityTracking">true</bool> 不设置默认为30
//1.2代码中设置 GAServiceManager.getInstance().setDispatchPeriod(60);
//2.手动发送: GAServiceManager.getInstance().dispatch();

3.2 获取Tracker实例

3.2.1.使用GoogleAnalytics获得Tracker的实例

GoogleAnalytics myInstance= GoogleAnalytics.getInstance(context);
//下面方法有两种情况
//1。如果实例中没有传入TrakerId的Tracker,下面方法会创建一个
//2。如果已经有对应TrakerId的Tracker,下面会取出改实例
Tracker tracker =
myInstance.getTracker("UA-36603750-2");//参数为申请到的TrakerId

3.2.2.使用EasyTracker获得Tracker的实例

EasyTracker.getInstance().setContext(context);// 在使用EasyTracker时候要小心,如果之前没有设置context下面代码会出异常
EasyTracker.getTracker();// 确保analytics已经设置了ID

3.2.3.获取Default Tracker

GoogleAnalytics myInstance= GoogleAnalytics.getInstance(context);
Tracker tracker = myInstance.getDefaultTracker();
//设置Default Tracker
Tracker newDefaultTracker = myInstance.getTracker("trackingId");
myInstance.setDefaultTracker(newDefaultTracker);
End Default

3.2.4.说明:如果非EasyTracker实例,不使用EasyTracker时

//1.如果要设置debug模式
myInstance.setDebug(true);
//2.如果想在程序里面某一段时间内停用或开启所有的事件最终可以使用下面代码来设置
myInstance.setAppOptOut(true);//or false
//下面代码是来处理,设置之后的回调
myInstance.requestAppOptOut(new AppOptOutCallback(){
@Override
public void reportAppOptOut(boolean optOut){
if(optOut){

}
}
});
//3.如果要设置AppVersion,设置其他的属性,类似下面
tracker.setAppVersion("your app version string");
//End 说明
}

3.3 事件追踪

//category 事件类别, action 时间动作, label 事件标签, value 事件价值
mTracker.trackEvent(category, action, label, value);// 通过任意的tracker来追踪

3.4 界面追踪

/**
* Screen 1.使用EasyTracker 1.1可以再analytics.xml设置<bool name="ga_autoActivityTracking">true</bool>来自动追踪
* 1.2或者使用EasyTracker.getInstance().activityStart/activityStop来追踪。
* 保证数据的完整性使用1.2更好 2.手动追踪 在onStart中使用如下方法,一般用来追踪Fragment与其他非Activity界面
*/

mTracker..trackView(screenName);

3.5 社交

/**
* 追踪程序中社交相关操作
* @param network
* 社交网络的名称例如Google+
* @param action
* 操作,例如分享,转发
* @param target
* 可选参数,目标网址
*/

mTracker.trackSocial(network, action, target);

3.6 耗时追踪

/**
* 最终耗时,比如加载图片等资源耗时
*
* @param category
* 事件的类别
* @param name
* 事件的名称,可选参数
* @param label
* 事件的标签,可选参数
* @param time
* 事件耗时
*/

mTracker..trackTiming(category, time, name, label);

3.7 来源追踪

// Campain Tracking
1.Google Play Campain : set receiver in mainfest 用来追踪程序从Google Play安装的信息

<receiver
android:name="com.google.analytics.tracking.android.AnalyticsReceiver"
android:exported="true">
<intent-filter>
<actionandroid:name="com.android.vending.INSTALL_REFERRER"/>
</intent-filter>
</receiver>

2.Genaral Campaing Tracking 追踪其他应用或链接打开应用的数据,来源必须把campaign数据放在intent里面

/**
*
* @param context
* @param campaign
字符串类似utm_campaign=general_campaign_test&utm_source=general_campaign_intsig&utm_medium=cpc&utm_term=general_campaign_intent_test&utm_content=ad_variation1
*/

mTracker..setCampaign(campaign);

<strong>3</strong>Referrer Tracking 追踪其他应用或链接打开应用的数据,来源必须把campaign数据放在intent里面
/**
*
* @param context
* @param referrer
* 功能和上面类似,不过参数没有上面严格,任意字符串都可以,不过最好指定,或者只用上面,不然可能会拿到很多无用的数据
*/

mTracker.setReferrer(referrer);

3.8�0�2Crashes and Exceptions 用来追踪程序的异常和崩溃数据,ga2.x增加功能

//1.追踪已经捕获的异常,在catch的里面用myTracker.trackException(e.getMessage, false); 第一个参数是需要提交的异常信息,第二个参数是否是致命错误
//2.追踪程序中未捕获的异常:
// 2.1 如果使用的是EastTracker可以在analytics.xml加上<bool name="ga_reportUncaughtExceptions">true</bool>;该值不设置默认为false
// 2.2 使用ExceptionReporter,使用方法如下:
UncaughtExceptionHandler myHandler = new ExceptionReporter(tracker, //Tracker的实例
GoogleAnalytics.getInstance(context),//GoogleAnalytics实例
Thread.getDefaultUncaughtExceptionHandler());//uncaught exception handler
Thread.setDefaultUncaughtExceptionHandler(myHandler);
// 结合2.2中如果要获得更多有用的异常等信息,可以通过自定义一个解析类继承ExcaptionParser,并把其实例设置到当前使用的Tracker中去如下:
ExceptionParser parser = new myParser(context);
myTracker.setExceptionParser(parser);

3.9 Ecommerce Track 用来追踪程序里面的交易数据

// 步骤:
// 1.构建交易事务对象
// 2.构建交易条目对象,并添加到交易事务对象中
// 3.调用trackTransaction来提交追踪数据
/**
* 确保在交易完成时候提交这样的数据,不然会造成统计数据不准确,比如有一些未完成的订单混在已支付的订单中
*/

public void onPurchaseCompleted(){
//1 创建交易事务
Transaction myTrans = new Transaction.Builder("0_123456",// (String)
// 交易事务ID,唯一
(long)(2.16* 1000000))// (long) 订单总额
.setAffiliation("In-App Store")// (String) 订单来源
.setTotalTaxInMicros((long)(0.17* 1000000))// (long) 订单税率
.setShippingCostInMicros(0)// (long) 发运货用去金额
.build();

//2 添加交易条目
myTrans.addItem(new Item.Builder("L_789",// (String) 商品的 SKU
"Level Pack: Space", // (String) 商品名称
(long)(1.99* 1000000),// (long) 商品价格
(long)1)// (long)商品数量
.setProductCategory("Game expansions")// (String)商品类别
.build());

//3 提交数据
Tracker myTracker = getTracker();// 获取tracker引用.
myTracker.trackTransaction(myTrans);// 提交交易数据
}
// end Ecommerce Track

3.10 Session用户会话追踪,比如用户切换界面,登入登出等

//1使用EasyTracker自动会话追踪:<integer name="ga_sessionTimeout">30</integer>
//2大多数的时候需要手动追踪,比如用户等登入
myTracker.setStartSession(true);
myTracker.trackEcent("app_flow","sign_in","", null);

3.11 另外还有
//Custom Dimensions & Metrics 为下一个事件自定义参数,比如点击事件,screen事件等,自定义参数

////////////////////////////////////////////////////////////////////////////////////////
因为工作需要程序需要加入googleanalytics 。用于记录分析我们想要跟踪的事件。
https://developers.google.com/analytics/devguides/collection/android/?hl=zh-CN是谷歌官网给出的
googleanalytics的解释。其中也包含俩个例子。
现在我讲下
googleanalytics 是如何使用的。
1、首先一定要是下载
googleanalytics 的sdk 包。

https://developers.google.com/analytics/devguides/collection/android/resources?hl=zh-CN
2、接下来将下载的包导入到工程中,在manifest中加入权限。
<receiver
android:name="com.google.android.apps.analytics.AnalyticsReceiver"
android:exported="true" >
<intent-filter>
<action
android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
3、在
googleanalytics 官网上注册用户,中文网址是

https://accounts.google.com/ServiceLogin?service=analytics&continue=https://www.google.com/analytics/web/?hl%3Dzh-CN%26pli%3D1%23report%2Fvisitors-overview%2Fa34574560w62155135p63695684%2F&followup=https://www.google.com/analytics/web/?hl%3Dzh-CN%26pli%3D1%23report%2Fvisitors-overview%2Fa34574560w62155135p63695684%2F
4、在注册完成后googleanalytics 会自动生成一个UAcode 给你,

Uacord

Uacord
不要拿我的UACode做实验,因为你不会看到实验的结果的,不要懒自己去注册个。
5、开始在项目中增加google analytics,首先要在Activity oncreate的时候开始跟踪
tracker = GoogleAnalyticsTracker.getInstance();
tracker.startNewSession(UACODE, context);//UACODE就是上面注册时提供的
谷歌官网给我们提供四种跟踪事件的方式。


Pageview TrackingA pageview is a standard means to measure traffic volume to a traditional website. Because mobile apps don't contain HTML pages, you must decide when (and how often) to trigger a pageview request. Also, since pageview requests are designed to report on directory structures, you should provide descriptive names for the requests to take advantage of page path naming in the Content reports inAnalytics. The names you choose will be populated in yourAnalytics reports as page paths even though they are not actually HTML pages, but you can use this to your advantage by structuring paths to provide additional groupings for your calls.Event TrackingIn Analytics, events are designed to track user interaction to web page elements distinctly from pageview requests. You can use the Event Tracking feature ofGoogle Analytics to make additional calls that will be reported in the Event Tracking section of theAnalytics report interface. Events are grouped using categories and may also use per-event labels, which provides flexibility in reporting. For example, a multimedia app could could haveplay/stop/pause actions for its video category and assign a label for each video name. TheGoogle Analytics reports would then aggregate events for all events tagged with thevideo category. For more information on Event Tracking, see the Event Tracking GuideEcommerce TrackingUse the Ecommerce tracking feature to track shopping cart transactions and in-app purchases. To track a transaction, use the Transaction class to represent the overall purchase information as well as the Item class to represent each product in the shopping basket. Once collected, the data can then be viewed in the Ecommerce reporting section of theGoogle Analytics interface. For more information on Ecommerce Tracking, see theEcommerce Tracking Guide.Custom VariablesCustom variables are name-value pair tags that you can insert in your tracking code in order to refineGoogle Analytics tracking. For more information on how you can use custom variables, read theCustom Variable Guide.

以上是谷歌给我们四种跟踪方式的解释。下面是我运用时理解的意思
Pageview 页面跟踪
你可以跟踪你程序总共被打开的次数,或者哪个页面打开的次数,
例如tracker.trackPageView("/Start");在程序的入口添加记录总共程序被所有人打开过多少次。
Event 事件跟踪
一般用于像某个按钮的点击事件的跟踪,或者程序出错地方的跟踪。
例如 tracker.trackEvent(“Button_click”, // Category
"activity_new_btn", // Action
"", // Label
-1); // Value
其实这4个参数就是层级关系,如果想分的很细致的话就都填上你想要的参数,如果只是简单记录的话,用俩个层级就可以了。后俩位默认参数。
下面俩种跟踪在我这次项目中没有应用,一个是媒体跟踪,另外一个是自定义跟踪模式。这个就是根据项目需要吧,如果有会的希望能下回帖中补充下。
需要注意的是
tracker.startNewSession(UACODE, context);// 有俩种方式一种像这样的
tracker.startNewSession(UACODE,20,gaContext);//这是另外一种 中间的20代表20秒后上传此次事件。
但是谷歌建议使用第一种,因为要是第二种的话浪费资源需要时时监控。
但要是用第一的方式需要手动发送事件tracker.dispatch();
千万要在每次发出跟踪时加入tracker.dispatch();否则的话不会被上传到网上数据库中。
6、在google analytics 网站上查看自己的跟踪结果如下图

结果

结果
以上就是我这几天对谷歌分析的理解,头一次写技术贴,写的不好,有不对的地方请赐教。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
众所周知,Google提供了免费的网站分析工具Google Analytics,采用标签式GATC跟踪,同时也提供了移动应用程序跟踪分析服务,采用的是SDK方式,这里主要是描述第2版(beta)的Android SDK安装使用和高级配置方法,建议有需要的开发者可以使用Google的这个功能,和技术人员一起部署。PS:由于本人非技术人员,且是根据Google的英文使用文档进行使用配置,因此有任何错漏地方欢迎各位指出,非常感谢!
根据Google的说明:这个SDK可以方便安卓开发人员跟踪搜集他们的应用程序的用户使用数据。
经过我的一段时间使用和技术同事的反馈:可以很方便地搜集到用户的地理位置信息、操作系统版本、硬件信息(手机品牌/手机型号)、运营商信息、程序崩溃和异常情况信息、Google Play来源渠道信息等具体客观数据。但是使用说明里面提及到的用户使用信息(新用户/活跃用户/参与流/页面浏览)则需要深入定制,根据每个APP的activity和fragment的不同情况添加google的EasyTracker才能跟踪到真实有效信息,这点比较纠结,因为我不是技术人员,看得我头大啊~~。
下面分三部分:准备、安装和高级实施
Part1:入门准备
1.1 <wbr>GA App帐户和配置文件,可用Gmail帐户或Google帐户登录https://www.google.com/analytics/web</wbr>
[转载]Google <wbr>Analytics <wbr>移动应用跟踪 <wbr>Android <wbr>SDK <wbr>V2
Step1:如上图,在帐户列表找那个添加新媒体资源

[转载]Google <wbr>Analytics <wbr>移动应用跟踪 <wbr>Android <wbr>SDK <wbr>V2
Step2:如上图,选择应用,填写应用名称,选择行业和所在时区,点确定进入最后一步

[转载]Google <wbr>Analytics <wbr>移动应用跟踪 <wbr>Android <wbr>SDK <wbr>V2
Step3:如上图,GA自动生成跟踪ID,其格式是:UA-*******-*,这个ID非常重要,是唯一代表你的应用程序并像Google发送跟踪数据。点击下载SDK压缩包,假如有AdMob功能则选择“随AdMob功能一起下载”(话说我也不知道这是啥),最后用到的是压缩包里面的libGoogleAnalyticsV2.jar(javadocs.zip好像是第一版用到的,因为根据使用文档这个文件在v2beta里面无用武之地?),如下图所示:
[转载]Google <wbr>Analytics <wbr>移动应用跟踪 <wbr>Android <wbr>SDK <wbr>V2

1.2 <wbr>需要有Android developer SDK</wbr>
1.3 <wbr>下载GA SDK for Android v2(将libGoogleAnalyticsV2.jar放在项目的/libs目录和构建路径下)</wbr>
1.4 <wbr>需要有Android应用程序</wbr>

Part2:安装
2.1 <wbr>在AndroidManifest.xml添加以下权限:</wbr>

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

2.2 <wbr>添加跟踪方法:这里主要是介绍在各页面调用Activity或Fragment的时候在onStart和onStop处添加跟踪方法,添加越完整得出的数据越有效。PS:这部分还是不是那么了解,希望有兴趣的朋友一起讨论。</wbr>


@Override
public void onStart() {
<wbr><span style="color:#0088">super</span><span style="color:#66660">.</span>onStart<span style="color:#66660">();</span><br><wbr><span style="color:#66660">...</span> <span style="color:#8800">// Your other onStart() code.</span><br><wbr>myTracker<span style="color:#66660">.</span>trackView<span style="color:#66660">(</span><span style="color:#0880">"</span><span style="color:#0880">页面名称</span><span style="color:#0880">"</span><span style="color:#66660">);</span> <wbr><span style="color:#8800">//可用参数传递页面名称,建议用英文,避免GA处理错误.</span><br><span style="color:#66660">}</span></wbr></wbr></wbr></wbr>

2.3 <wbr>创建analytics.xml(放在res/values目录下,并添加跟踪ID,即在Part1的1.1申请到的跟踪ID)</wbr>

<?xml version="1.0" encoding="utf-8" ?>

<resources>
<wbr><span style="color:#8800">&lt;!--添加GA跟踪ID--&gt;</span><br><wbr><span style="color:#0088">&lt;string</span> <span style="color:#66066">name</span><span style="color:#66660">=</span><span style="color:#0880">"ga_trackingId"</span><span style="color:#0088">&gt;</span> UA-********-* <wbr><span style="color:#0088">&lt;/string&gt;</span><br><br><wbr><span style="color:#8800">&lt;!--自动跟踪Activity--&gt;</span><br><wbr><span style="color:#0088">&lt;bool</span> <span style="color:#66066">name</span><span style="color:#66660">=</span><span style="color:#0880">"ga_autoActivityTracking"</span><span style="color:#0088">&gt;</span>true<span style="color:#0088">&lt;/bool&gt;</span><br><br><wbr><span style="color:#8800">&lt;!--自动跟踪报告未捕获的异常情况--&gt;</span><br><wbr><span style="color:#0088">&lt;bool</span> <span style="color:#66066">name</span><span style="color:#66660">=</span><span style="color:#0880">"ga_reportUncaughtExceptions<wbr>"</wbr></span><span style="color:#0088">&gt;</span>true<span style="color:#0088">&lt;/bool&gt;</span><br><span style="color:#0088">&lt;/resources&gt;</span></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

PS:lint checker可能会提示破折号“-”错误,这个可以通过在<resources>标签添加附加属性解决:

<resources xmlns:tools="https://schemas.android.com/tools"
tools:ignore="TypographyDashes">


重要:不要编译ga_trackingID字符串里面的破折号“-”,否则GA将无法接收到数据
以上来自https://developers.google.com/analytics/devguides/collection/android/v2/,若有不明请和我联系,一起探讨解决,谢谢!

完成后可跟踪的数据:用户获取与用户度量/指标(新用户数、活跃用户数,不同APP版本使用情况,设备与操作系统信息),参与度(应用程序使用频率、参与流、崩溃与异常情况报告),结果(转化率,应用内支付,社交元素)

Part3:高级实施:跟踪广告来源,营销活动,应用内支付,用户交互事件

3.1 <wbr></wbr>高级配置(Advanced Configuration):

1、 <wbr>设置多个跟踪I<span style="font-family:宋体">D,因为我暂时没用到,所以没有深入了解,仅提供下面链接供诸君查看</span></wbr>

https://developers.google.com/analytics/devguides/collection/android/v2/advanced

2、 <wbr>设置采样率:假如你的应用程序用户很多,每天的会话超过5万(这是web站的访问指标,应用程序不知道多少)的话,可以设置采样率,50%即每两次会话仅记录一次</wbr>

a、 <wbr>放在analytics.xml</wbr>

<string name="ga_sampleFrequency">50.0</string>

b、 <wbr>客户端采样:</wbr>

Tracker tracker = EasyTracker.getTracker();
tracker.setSampleRate(50.0d);

PS:每个应用程序的版本采样率需一致,否则需用过滤器进行版本区分。

3.2 <wbr><wbr><strong>广告追踪(Campaigns Tracking)</strong>:了解APP用户从哪里来,从哪里启动,了解并提高市场营销渠道价值</wbr></wbr>

1、 <wbr><strong>Google市场下载安装跟踪</strong>:可跟踪从何处(广告、网站、应用程序)进入Google市场下载安装,需采用Google市场内容页下载链接,并添加google参数,具体可用以下页面生成相应链接(这个网址竟然要翻*墙*,悲催啊)</wbr>

https://google-developers.appspot.com/analytics/devguides/collection/android/v2/campaigns_f2daf95a5dad4d0901cd9abe<wbr>8f05fdf5.frame</wbr>

2、 <wbr>一般广告跟踪:查看哪些广告或流量来源启动您的应用程序</wbr>

3、 <wbr>Referer跟踪:启动您的程序的网站或应用程序</wbr>

3.3 <wbr></wbr>崩溃和异常(Crashes & Exceptions):

<wbr><wbr><wbr></wbr></wbr></wbr>1、 <wbr> 捕获(崩溃和异常)事件</wbr>

<wbr><wbr><wbr></wbr></wbr></wbr>字段:String(可选):描述(100字以内),可以为null,主要是描述异常情况;

<wbr><wbr><wbr><wbr><wbr>Boolean(true or false):标示异常情况是否致命的,true表示致命;</wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr></wbr></wbr></wbr>异常情况:可预见的错误bug,偶尔的网络连接超时;

<wbr><wbr><wbr></wbr></wbr></wbr>例子:用户请求list of high scores 超时,可能是网络连接慢引起的,在反馈给用户前追踪这个异常情况;

<wbr><wbr><wbr>try</wbr></wbr></wbr> {
<wbr><span style="color:#66066">ArrayList</span> highScores <span style="color:#66660"> =</span> getHighScores<span style="color:#66660">();</span> <span style="color:#8800"> // Get scores from the cloud</span><br><span style="color:#66660">}</span> <span style="color:#0088">catch</span> <span style="color:#66660"> (</span><span style="color:#66066">IOException</span> e<span style="color:#66660">)</span> <span style="color:#66660">{</span><br><wbr><span style="color:#66066"><strong style="color:black">Tracker</strong></span> myTracker <span style="color:#66660">=</span> <span style="color:#66066">EasyTracker</span><span style="color:#66660">.</span>getTracker<span style="color:#66660">();</span> <span style="color:#8800">// Get a reference to <strong style="color:black">tracker</strong>.</span><br><wbr>myTracker<span style="color:#66660">.</span>trackException<span style="color:#66660">(</span>e<span style="color:#66660">.</span>getMessage<span style="color:#66660">(),</span> <span style="color:#0088">false</span><span style="color:#66660">);</span> <span style="color:#8800"> // false indicates non-fatal exception.</span><br><br><wbr><span style="color:#66660">...</span> <span style="color:#8800">// Display alert to user that high scores are currently unavailable.</span><br><span style="color:#66660">}</span> <wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>2、 <wbr>未捕获的异常情况跟踪(Uncaught Exception Tracking)</wbr>

<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>应用程序在运行过程中偶发的意外异常情况,通常是致命的,并且导致应用程序崩溃。

<wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>有两种方法:EasyTracker or the ExceptionReporter,都可以自动记录这些异常。 <wbr></wbr>

1 <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

2 <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

3 <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr>2.1 <wbr><wbr>EasyTracker:将下面的代码加到analytics.xml</wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr>&lt;bool</wbr></wbr></wbr> name="ga_reportUncaughtExceptions<wbr>"</wbr>>true</bool>

<wbr><wbr><wbr></wbr></wbr></wbr>注意事项:所以的意外追踪都是自动的,在GA里面反映为致命错误

<wbr><wbr><wbr><wbr><wbr>例外追踪的描述是系统默认生成的。PS:可以用ExceptionParser来获取未捕获异常的相关描述。 <wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><strong><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></strong>ExceptionReporter:可以反馈默认的异常情况</wbr>

<wbr><wbr><wbr>UncaughtExceptionHandler<wbr></wbr></wbr></wbr></wbr> myHandler = new ExceptionReporter(
<wbr><wbr>myTracker<span style="color:#66660">,</span> <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span style="color:#8800">// Currently used <strong style="color:black"> Tracker</strong>.</span><br><wbr><wbr><span style="color:#66066">GoogleAnalytics</span><span style="color:#66660">.</span>getInstance<span style="color:#66660">(),</span> <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span style="color:#8800">// GoogleAnalytics singleton.</span><br><wbr><wbr><span style="color:#66066">Thread</span><span style="color:#66660">.</span>getDefaultUncaughtExcept<wbr>ionHandler<span style="color:#66660">());</span> <wbr><wbr><span style="color:#8800">// Current default uncaught exception handler.</span><br><br><span style="color:#66066">Thread</span><span style="color:#66660">.</span>setDefaultUncaughtExcept<wbr>ionHandler<span style="color:#66660">(</span>myHandler<span style="color:#66660">);</span> <span style="color:#8800">// Make myHandler the new default uncaught exception handler.</span> <wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr></wbr></wbr></wbr>3、ExceptionParser:获取未捕获异常的相关描述,只需用到一个方法:getDescription(String threadName,Throwable t)

<wbr><wbr><wbr>// Where myParser represents your implementation of ExceptionParser.</wbr></wbr></wbr>
ExceptionParser parser = new myParser(context);

// Where myTracker is an instance ofTracker.
myTracker.setExceptionParser(parser);

1.4 <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>自定义维度和指标(Dimensions&amp; Metrics)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

1、 <wbr>自定义维度值:所有GA点击都可以设置维度值</wbr>

Tracker tracker = EasyTracker.getTracker(); <wbr><span style="color:#8800">// Get the <strong style="color:black">tracker</strong> object.</span><br><strong style="color:black">tracker</strong><span style="color:#66660">.</span>setCustomDimension<span style="color:#66660">(</span><span style="color:#06666">1</span><span style="color:#66660">,</span> <span style="color:#0880">"myValue"</span><span style="color:#66660">);</span> <wbr><wbr><span style="color:#8800">// Set the dimension value for index 1.</span><br><strong style="color:black">tracker</strong><span style="color:#66660">.</span>trackView<span style="color:#66660">();</span> <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span style="color:#8800">// Dimension value is associated and sent with this hit.</span></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

2、 <wbr>自定义指标值:</wbr>

Tracker tracker = EasyTracker.getTracker(); <wbr><span style="color:#8800">// Get the <strong style="color:black">tracker</strong> object.</span><br><strong style="color:black">tracker</strong><span style="color:#66660">.</span>setCustomMetric<span style="color:#66660">(</span><span style="color:#06666">1</span><span style="color:#66660">,</span> <span style="color:#06666">1</span><span style="color:#66660">);</span> <wbr><wbr><wbr><wbr><wbr><wbr><wbr><span style="color:#8800">// Increment the metric at index 1.</span><br><strong style="color:black">tracker</strong><span style="color:#66660">.</span>trackView<span style="color:#66660">();</span> <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><span style="color:#8800">// Metric value sent with this hit.</span></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

1.5 <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><strong>调度(Dispatch)</strong>:任何点击或事件都是储存在本地队列,然后发送到GA;使用定期调度(periodic dispatch)&amp;手动调度(manual dispatch)可以减少因网络不畅引起的发送GA不成功,也可以减少对设备电池寿命的影响。</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

1.6 <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>事件(Events):跟踪用户组件交互,例如按钮点击,微博分享等社交按钮</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

例子:按钮点击跟踪,添加到OnClickListener’s onClick 方法里面

@Override
public void onClick(View v) {
<wbr><span style="color:#8800">// Where myTracker is an instance of<strong style="color:black">Tracker</strong>.</span><br><wbr>myTracker<span style="color:#66660">.</span>trackEvent<span style="color:#66660">(</span><span style="color:#0880">"ui_action"</span><span style="color:#66660">,</span> <span style="color:#0880">"button_press"</span><span style="color:#66660">,</span> <span style="color:#0880">"play_button"</span><span style="color:#66660">,</span> opt_value<span style="color:#66660">);</span><br><wbr><span style="color:#66660">...</span> <span style="color:#8800">// Your other click handling code.</span></wbr></wbr></wbr>

1.7 <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>屏幕(Screens):类似于网站的Pageview,主要用于屏幕报告,参与流,目标流</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

1、 <wbr>自动屏幕跟踪EasyTracker,可在analytics.xml设置ga_autoActivityTracking为true并且为所有Activity添加名称</wbr>

<-- Enable automatic Activity tracking -->
<bool name="ga_autoActivityTracking">true</bool>

<-- The screen names that will appear in your reporting -->
<string name="com.example.app.BaseActivity">Home</string>
<string name="com.example.app.PrefsActivity">Preferences</string>

2、 <wbr>手动屏幕跟踪Manual Screen Tracking:在使用EasyTracker的同时也可以用这个trackView()对一些活动屏幕或其他屏幕进行跟踪命名。PS:跟技术人员沟通,这个用在多个页面共用一个Activity的情况中。</wbr>


@Override
public void onStart() {
<wbr><span style="color:#0088">super</span><span style="color:#66660">.</span>onStart<span style="color:#66660">();</span><br><wbr><span style="color:#66660">...</span> <span style="color:#8800">// Your other onStart() code.</span><br><wbr>myTracker<span style="color:#66660">.</span>trackView<span style="color:#66660">(</span><span style="color:#0880">"Home Screen"</span><span style="color:#66660">);</span> <span style="color:#8800">// Where myTracker is an instance of<strong style="color:black">Tracker</strong>.</span><br><span style="color:#66660">}</span></wbr></wbr></wbr>

1.8 <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>会话(Sessions):等同于网站的访问visit,30分钟内的所有点击</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

在Activity被跟踪期间一直保持打开、且在处于非活动状态超过 30 秒后关闭的会话。开发人员也可以人工定制此限制条件。

1 <wbr></wbr>

1、 <wbr>自动会话管理:默认是30秒.可以在analytics.xml修改:</wbr>

<-- Set session time out to 60 seconds -- >
<wbr><span style="color:#0088">&lt;integer</span> <span style="color:#66066">name</span><span style="color:#66660">=</span><span style="color:#0880">"ga_sessionTimeout"</span><span style="color:#0088">&gt;</span>60<span style="color:#0088">&lt;/integer&gt;</span></wbr>

1 <wbr><wbr></wbr></wbr>

2 <wbr><wbr></wbr></wbr>

3 <wbr><wbr></wbr></wbr>

4 <wbr><wbr></wbr></wbr>

5 <wbr><wbr></wbr></wbr>

5.1 <wbr><wbr></wbr></wbr>

2、 <wbr>手动会话管理:可与自动会话管理同时使用,通常是在用户登录成功后开始新用户,因为这时用户的状态变化或换了一个用户,这样做可以使报告更容易阅读:</wbr>

// Called after a user successfully signs in to your app.在登录成功的代码后面加上
private void onSignIn() {
<wbr><span style="color:#66660">...</span> <span style="color:#8800">// The rest of your onSignIn() code.</span><br><wbr>myTracker<span style="color:#66660">.</span>setStartSession<span style="color:#66660">(</span><span style="color:#0088">true</span><span style="color:#66660">);</span> <span style="color:#8800">// Where myTracker is an instance of<strong style="color:black">Tracker</strong>.</span><br><wbr>myTracker<span style="color:#66660">.</span>trackEvent<span style="color:#66660">(</span><span style="color:#0880">"app_flow"</span><span style="color:#66660">,</span> <span style="color:#0880">"sign_in"</span><span style="color:#66660">,</span> <span style="color:#0880"> ""</span><span style="color:#66660">,</span> <span style="color:#0088">null</span><span style="color:#66660">);</span> <span style="color:#8800">// First activity of new session.</span><br><span style="color:#66660">}</span></wbr></wbr></wbr>

1.9 <wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>社交(Social Interactions):社交网络分享和推荐插件</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

trackSocial三个字段:

网络(String)——用户用的社交网络(e.g. Sina Weibo, Renren,Facebook,Twitter,Google+ etc.

操作(String)——用社交按钮进行的操作(e.g. 喜欢,分享,赞,+1 etc.)

目标(可选String)——操作的内容(e.g. 一篇文章,一段视频 etc)

以下例子是跟踪在Twitter上面Tweet开发者分析主页的代码片段:

Tracker tracker = EasyTracker.getTracker(); <wbr><span style="color:#8800">// Get <strong style="color:black">tracker</strong> object.</span><br><strong style="color:black">tracker</strong><span style="color:#66660">.</span>trackSocial<span style="color:#66660">(</span><span style="color:#0880">"Twitter"</span><span style="color:#66660">,</span> <span style="color:#0880">"Tweet"</span><span style="color:#66660">,</span> <span style="color:#0880"> "<a href="https://developers.google.com/analytics">https://developers.google.com/analytics</a>"</span><span style="color:#66660">);</span> <wbr><span style="color:#8800">// Track social interaction.</span></wbr></wbr>

tracker.trackSocial("Sina Weibo", "分享", "+文章/视频/直播/+URL+Title");

tracker.trackSocial("RenRen", "分享", "+文章/视频/直播/+URL+Title");

<wbr></wbr>

1.10 <wbr><wbr><wbr><wbr><wbr><wbr>用户时间:下面主要是举例使用事件跟踪加载时间</wbr></wbr></wbr></wbr></wbr></wbr>

A timing in Google Analytics consists of the following fields:

String <wbr></wbr>类别 时间事件的类别

long <wbr></wbr>时间间隔 单位是毫秒

String <wbr>(</wbr>可选)名称 时间事件的名称

String <wbr>(</wbr>可选) 标签 时间事件的标签

public void onLoad(long loadTime) {
<wbr><span style="color:#8800">// Where myTracker is an instance of<strong style="color:black">Tracker</strong>.</span><br><wbr>myTracker<span style="color:#66660">.</span>trackTiming<span style="color:#66660">(</span>loadTime<span style="color:#66660">,</span> <span style="color:#0880">"resources"</span><span style="color:#66660">,</span> <span style="color:#0880"> "high_scores"</span><span style="color:#66660">,</span> <span style="color:#0088"> null</span><span style="color:#66660">);</span><br><wbr><span style="color:#66660">...</span> <span style="color:#8800">// The rest of your onLoad code.</span><br><span style="color:#66660">}</span></wbr></wbr></wbr>


以上Part1和Part2是必须做的,Part3则根据应用程序和运营人员的要求添加。
本人了解有限,此文较为浅陋,欢迎指导。

PS:附上在analytics.xml自定义配置EasyTracker的各项参数。下表是在V2或以上版本可以用到的EasyTracker参数。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics