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项目默认已经配置好:

  1. allprojects {
  2. repositories {
  3. jcenter()
  4. }
  5. }

module build.gradle,需要添加如下配置:

  1. dependencies {
  2. compile 'com.baidu.mobstat:mtj-sdk-circle:latest.integration'
  3. }

如果您需要手动下载无埋点JAR,请参考:百度移动统计SDK下载中心

2、配置AndroidManifest.xml

1)添加权限声明

  1. <uses-permission android:name="android.permission.INTERNET" />
  2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  3. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  4. <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  5. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  6. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  7. <uses-permission android:name="android.permission.BLUETOOTH" />
  8. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  9. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  10. <uses-permission android:name="android.permission.WRITE_SETTINGS" />
  11. <uses-permission android:name="android.permission.GET_TASKS" />

2)添加业务配置

  1. <!-- 您从百度网站获取的APP KEY,根据实际您的APP申请的APP_KEY进行修改 -->
  2. <meta-data
  3. android:name="BaiduMobAd_STAT_ID"
  4. android:value="a9e2ad84a2" />
  5. <!-- 渠道商编号 -->
  6. <meta-data
  7. android:name="BaiduMobAd_CHANNEL"
  8. android:value="Baidu Market" />
  9. <!-- 是否开启错误日志统计,默认为false -->
  10. <meta-data
  11. android:name="BaiduMobAd_EXCEPTION_LOG"
  12. android:value="true" />
  13. <!-- 日志仅在wifi网络下发送,默认为false -->
  14. <meta-data
  15. android:name="BaiduMobAd_ONLY_WIFI"
  16. android:value="false" />
  17. <!-- 是否获取基站位置信息 ,默认为true -->
  18. <meta-data
  19. android:name="BaiduMobAd_CELL_LOCATION"
  20. android:value="true" />
  21. <!-- 是否获取GPS位置信息,默认为true -->
  22. <meta-data
  23. android:name="BaiduMobAd_GPS_LOCATION"
  24. android:value="true" />
  25. <!-- 是否获取WIFI位置信息,默认为true -->
  26. <meta-data
  27. android:name="BaiduMobAd_WIFI_LOCATION"
  28. 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功能使用 等部分