可视化圈选配置

优质
小牛编辑
184浏览
2023-12-01

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 {
        mavenCentral()
        jcenter()
    }
}

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

dependencies {
    implementation '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代码配置-入口代码

开启自动埋点,调用如下代码即可:

// 通过该接口可以控制敏感数据采集,true表示可以采集,false表示不可以采集,
// 该方法一定要最优先调用,请在StatService.autoTrace(Context context)
// 之前调用,采集这些数据可以帮助App运营人员更好的监控App的使用情况,
// 建议有用户隐私策略弹窗的App,用户未同意前设置false,同意之后设置true
StatService.setAuthorizedState(Context context,boolean false)

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功能使用 等部分