Android 可视化圈选接入
SDK(即应用分析无埋点SDK)简介
百度移动统计无埋点SDK是在现有的手动埋点SDK上的一个功能升级。结合了所有手动埋点的优势,同时避免了手动埋点的繁琐过程。实现了一行代码接入,配合WEB端圈选,完成页面和事件统计功能。
百度移动统计无埋点SDK兼容现有代码埋点SDK,API完全兼容支持。
版本支持
无埋点SDK支持 android 4.0 及之上(api level >= 14)系统版本。在Android 4.0 之下,依然可以使用此SDK,只是无埋点功能无效。
集成使用
注意:如果您使用的是零埋点插件,则无需配置步骤 1,2,3,零埋点插件会自动完成;零埋点插件参考
1、JAR配置
1)Android Studio工程配置
project build.gradle,android studio项目默认已经配置好:
allprojects {
repositories {
jcenter()
}
}
module build.gradle,需要添加如下配置:
dependencies {
compile 'com.baidu.mobstat:mtj-sdk-circle:latest.integration'
}
如果您需要手动下载无埋点JAR,请参考:百度移动统计SDK下载中心
2、配置AndroidManifest.xml
1)添加权限声明
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.GET_TASKS" />
2)添加业务配置
<!-- 您从百度网站获取的APP KEY,根据实际您的APP申请的APP_KEY进行修改 -->
<meta-data
android:name="BaiduMobAd_STAT_ID"
android:value="a9e2ad84a2" />
<!-- 渠道商编号 -->
<meta-data
android:name="BaiduMobAd_CHANNEL"
android:value="Baidu Market" />
<!-- 是否开启错误日志统计,默认为false -->
<meta-data
android:name="BaiduMobAd_EXCEPTION_LOG"
android:value="true" />
<!-- 日志仅在wifi网络下发送,默认为false -->
<meta-data
android:name="BaiduMobAd_ONLY_WIFI"
android:value="false" />
<!-- 是否获取基站位置信息 ,默认为true -->
<meta-data
android:name="BaiduMobAd_CELL_LOCATION"
android:value="true" />
<!-- 是否获取GPS位置信息,默认为true -->
<meta-data
android:name="BaiduMobAd_GPS_LOCATION"
android:value="true" />
<!-- 是否获取WIFI位置信息,默认为true -->
<meta-data
android:name="BaiduMobAd_WIFI_LOCATION"
android:value="true" />
3、Java代码配置-入口代码
开启自动埋点,调用如下代码即可:
Method1:(新增API,推荐使用此调起自动埋点功能)
// 自动埋点,建议在Application中调用。否则可能造成部分页面遗漏,无法完整统计。
StatService.autoTrace(Context context)
Method2:
// 自动埋点,建议在Application中调用。否则可能造成部分页面遗漏,无法完整统计。
// @param autoTrace:如果设置为true,打开自动埋点;反之关闭
// @param autoTrackWebview:
// 如果设置为true,则自动track所有webview,如果有对webview绑定WebChromeClient,
// 为避免影响APP本身回调,请调用trackWebView接口;
// 如果设置为false,则不自动track webview,如需对特定webview进行统计,需要对特定
// webview调用trackWebView()即可。
StatService.autoTrace(Context context, boolean autoTrace, boolean autoTrackWebview)
4、Java代码配置-webview统计对于webview自动埋点统计,还需要调用如下代码:
// 适用于自动埋点版本,用于对webview加载的h5页面进行自动统计;需要在载入页面前调用,
// 建议在webview初始化时刻调用
// chromeClient,如果有设置的WebChromeClient,则需要将对象传入,否则影响本身回调
StatService.trackWebView(Context context, WebView webview, WebChromeClient chromeClient)
5、添加URLScheme和权限添加URLScheme到您项目的manifest文件中,用于通过二维码扫描方式连接圈选时,跳转进入App。
在您AndroidManifest.xml中的LAUNCHER Activity下,添加如下intent-filter。
其中Schemes内容是由“mtj”拼上您的Appkey组成,即mtjxxxxxx,如下所示
<application
android:name="com.baidu.mobstat.demo.MyApplication"
android:allowBackup="false"
android:icon="@drawable/icon"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
<!--省略一些内容-->
<activity
android:name="com.baidu.mobstat.demo.DemoActivity1"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!--按如下格式添加整个intent-filter块,其中data字段只能有一个,其内容是mtj拼接上您的appkey-->
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="mtj13510e274"/>
</intent-filter>
</activity>
</application>
支持的统计行为
1、页面统计
自动埋点按照Activity为粒度进行页面统计,其自动抓取页面名字(不含包名)作为页面的名字。如果需要对Fragment页面进行统计,可以对Fragment页面单独手动埋点。具体可以参考API配置部分。
2、事件统计(仅支持事件次数统计,自动埋点不支持时长统计)
自动埋点需要配合WEB端圈选完成,完成圈选后,可以统计到事件的触发次数,例如:注册按钮
的点击次数。如果未做圈选,则无法统计到相关事件数据。
特殊处理
1、禁止页面自动统计
如需禁用某个Activity被自动统计到,相应XXXActivity implements IIgnoreAutoTrace
即可
2、事件绑定数据
如果您需要对相关事件绑定业务数据,比如:对"注册"按钮绑定相关业务数据,age,city,sex 等
// 设置控件附加属性,用于无埋点对控件添加数据;控件绑定事件附加属性依赖于
// view.setTag(key, value)支持,使用key值:-96000;如果view已经绑定过此key值,则此设置不生效
// map中的事件参数,即key值,需要在WEB端配置事件参数,方能生效
StatService.setAttributes(View view, Map<String, String> attributes)
使用建议
1、如果在页面埋点处调用了手动埋点的API,那么SDK会自动放弃对该页面的自动埋点,采用手动埋点为主
2、如果对统计的数据有较高级的功能需求,或者需要统计更多种类的事件,建议采用手动埋点
3、本SDK同时支持手动和自动埋点,可以根据需求混用
4、手动埋点相关文档请参考本文档 API
,功能使用
等部分