数据统计分析之TalkingData Analytics介绍

TalkingData Analytics为移动应用提供数据统计分析服务,能够帮助移动应用开发者收集、处理、分析一方数据,可视化运营指标,监测用户行为,帮助产品设计。适用范围TalkingData App Analytics Android SDK适用于 Android 2.3.3(API Level 10)及以上的设备。集成准备-创建应用并获取App IDApp ID是TalkingData分析平台标识一款独立应用/游戏的唯一标识,集成SDK前需要在TalkingData报表中创建应用/游戏并获取相应的App ID。

步骤:

1)注册并登录https://www.talkingdata.com/ ,选择App Analytics产品线

2)创建应用并获取App ID
3)如果已创建的应用,请从“应用管理->基本信息”中查看App ID。快速集成-导入SDK请根据所用IDE

选择导入方式:

1)Eclipse ADT 将 SDK 中的 jar 文件拷贝到工程的libs文件夹中。

2)Android Studio 2.1)在 Android Studio 项目的 app 文件夹中,新建 libs 文件夹。 2.2)将 SDK jar 文件拷贝到新建的 libs 文件夹中。 2.3)修改 app 文件夹中的 build.gradle 文件,添加 dependencies 依赖项​

dependencies { … compile files('libs/TalkingdataAnalytics.jar') … }快速集成-代码混淆如果开发者的应用添加了混淆,需要在配置文件中添加一下规则:

<code>-dontwarn com.tendcloud.tenddata.**-keep class com.tendcloud.** {*;}-keep public class com.tendcloud.tenddata.** { public protected *;}-keepclassmembers class com.tendcloud.tenddata.**{public void *(***);}-keep class com.talkingdata.sdk.TalkingDataSDK {public *;}-keep class com.apptalkingdata.** {*;}-keep class dice.** {*; }-dontwarn dice.**/<code>

快速集成-配置权限

权限

用途

INTERNET

允许程序联网和发送统计数据的权限。

ACCESS_NETWORK_STATE

允许应用检测网络连接状态,在网络异常状态下避免数据发送,节省流量和电量。

READ_PHONE_STATE

允许应用以只读的方式访问手机设备的信息,通过获取的信息来唯一标识用户。

ACCESS_WIFI_STATE

获取设备的MAC地址,同样用来标识唯一用户。

WRITE_EXTERNAL_STORAGE

用于保存设备信息,以及记录日志。

GET_TASKS (建议)

获取当前应用是否在显示应用,可以更精准的统计用户活跃

ACCESS_FINE_LOCATION(可选)

可通过GPS获取设备的位置信息,用来修正用户的地域分布数据,使报表数据更准确。

ACCESS_COARSE_LOCATION(可选)

用来获取该应用被使用的粗略位置信息。

快速集成-SDK初始化在应用程序的Application类的onCreate方法中初始化:

<code>public class MainApplication extends Application{    @Override     public void onCreate() {       super.onCreate();        JLibrary.InitEntry(this); //移动安全联盟统一SDK初始化       TCAgent.LOG_ON=true;        // App ID: 在TalkingData创建应用后,进入数据报表页中,在“系统设置”-“编辑应用”页面里查看App ID。          // 渠道 ID: 是渠道标识符,可通过不同渠道单独追踪数据。        TCAgent.init(this, "您的 App ID", "渠道 ID");        // 如果已经在AndroidManifest.xml配置了App ID和渠道ID,调用TCAgent.init(this)即可;或与AndroidManifest.xml中的对应参数保持一致。        TCAgent.setReportUncaughtExceptions(true);        }}/<code>


基础-注册和登录注册接口用于记录用户在使用应用过程中的注册行为,接口如下:

<code>public static final void onRegister(String accountID,TDAccount.AccountType type, String name )/<code>


登录接口用于记录用户在使用应用过程中的登录行为,接口如下:

<code>public static final void onLogin(String accountID,TDAccount.AccountType type, String name )/<code>


基础-错误报告1.用途收集应用的错误日志可帮助您来修正Bug、改善产品。报表中,除了提供错误次数的数据外,还提供错误的详细信息:错误发生时间,堆栈调用情况,并会针对错误进行合理分类。2.接口和参数


自动获取异常信息,调用以下方法(自动捕获默认为关闭状态,请根据需要设置):

<code>// true: 开启自动捕获// false: 关闭自动捕获TCAgent.setReportUncaughtExceptions(Boolean enabled)/<code>


主动传送异常信息,调用以下方法(自动获取关闭状态下,此方法依然有效):

高级-页面访问1、用途和用法

此功能用于帮助开发者统计应用中各个页面的访问次数和停留时长,并可以追踪用户从某个页面离开后所访问的其他页面,为产品优化提供依据。

2、接口及参数

接口: step1:进入页面时调用:

<code>TCAgent.onPageStart(Context ctx, String pageName);/<code>

Step2:离开页面时调用:


<code>TCAgent.onPageEnd(Context ctx, String pageName);/<code>


注意事项:

1)onPageStart 和 onPageEnd 必须成对调用;

适用范围高级-自定义事件1、用途和用法

自定义事件用于追踪任何需要了解的用户行为,如:用户点击某功能按钮、填写某个输入框、触发了某个广告等。

2、灵动事件介绍

灵动事件是一种无需预先埋点,随时可以按需配置即可实现的自定义事件追踪方式。在正确集成App Analytics SDK后,任何时候通过报表页面设置,就可以轻松实现自定义事件追踪。

3、代码事件接口及参数

接口: 1)仅统计自定义事件,无需设置Label及参数时,调用以下方法:

<code>TCAgent.onEvent(Context ctx, String EVENT_ID);/<code>


2)使用相同EventID,对类似场景的事件进行统计,并通过Label区分具体场景时,调用以下方法:

<code>TCAgent.onEvent(Context ctx, String EVENT_ID, String EVENT_LABEL);/<code>

3)增加Label、事件参数,对事件做更为详细的追踪时,调用以下方法:

<code>TCAgent.onEvent(Context ctx, String EVENT_ID, String EVENT_LABEL, Map kv);/<code>

4)如果所有事件都需要传输相同的参数,可以设置全局的Key-Value,这些Key-Value会自动添加到所有自定义事件。调用以下方法:

<code>TCAgent.setGlobalKV(String key, Object value);/<code>

5)如果要移除全局Key-Value,调用以下方法:

<code>TCAgent.removeGlobalKV(String key);/<code>


说明:如果onEvent里传入的Key-Value里的key和全局Key-Value里的key冲突,以onEvent里传入的为准。

参数:

参数

类型

描述

EVENT_ID

String

自定义事件名称。

最多包含64个字符,支持中文、英文、数字、下划线,但不能包含空格或其他的转义字符


EVENT_LABEL

String

自定义事件Label。


最多包含64个字符,支持中文、英文、数字、下划线,但不能包含空格或其他的转义字符。

Map

Map

自定义事件的参数及参数取值。


其中的Key为String,Value仅支持字符串(String)和数字(Number)类型,其他类型会自动调用toString()方法转换为String进行处理。报表中将给出事件发生时每种value出现的频次。


在value取值较离散情况下(如示例中收集的促销价格信息),不要直接填充具体数值,而应划分区间后传入(如9.9元,可定义5~10元的价格区间,传入5~10元),否则value不同取值很可能超过平台最大数目限制,离散数据也对分析人员阅览数据造成影响。

5、代码事件示例

示例: 追踪某省长者活体检测的通过率情况,并收集检测失败的原因、比对的阈值等信息。调用如下:

<code>@Overridepublic void onClick(View v) {Map map= new HashMap();map.put("比对阈值","xxxx" );map.put("失败详情", "xxxx");TCAgent.onEvent(DemoActivity.this, "活体检测", "失败", map);}/<code>


分享到:


相關文章: