MZAnalytics_Android_SDK部署指南

1、适用范围

MZAnalytics_Android_SDK适用于Android 2.3.3(API Level 10)及以上的设备。

2、集成准备

为应用申请App ID

在 https://tongji.cn.miaozhen.com 网站中创建一款应用,
在秒针分析系统中创建一款应用,您将获得一串随机的“dc-”开头的站点id,用于唯一标识您的这款应用。

AppID说明

appId为应用追踪的唯一标识,在站点信息内获取。

在AndroidManifest.xml 中添加如下配置

<meta-data android:name="com.miaozhen.mzsdk.appKey" android:value="xxxx" /> 
//使用分配的appkey(只填写数据,不携带dc-)

<meta-data android:name="com.miaozhen.mzsdk.channelId" android:value="channel名称" />  
//使用时将channel名称替换为实际的渠道名称

3、需在Android 平台上获取OAID时的配置

说明: 仅支持MSA SDK 1.0.25版本(2020年12月4日发布)的OAID获取。
可依据业务需求决定是否配置。若配置,秒针分析SDK可采集OAID;若不配置,则无法获取OAID。请依据移动安全联盟官网推荐的MSA SDK集成方式引入。
移动安全联盟官网链接:www.msa-alliance.cn

将assets目录文件导入目标项目的assets。其中supplierconfig.json文件需修改里边对应内容,特别是需要设置 appid 的部分。需要设置 appid 的部分需要去对应厂商的应 用商店里注册自己的app。

4、配置权限

权限 权限描述 是否可选 不授权的影响
INTERNET 允许程序联网 必选项 SDK无法发送数据
READ_EXTERNAL_STORAGE 允许读取SD卡上存储的数据 必选项 影响SDK读取标识唯一用户的CID和发送失败的历史数据
WRITE_EXTERNAL_STORAGE 允许写入信息到SD卡 必选项 影响SDK存储标识唯一用户的CID和发送失败的数据写入
ACCESS_NETWORK_STATE 允许检测网络连接状态 可选项 SDK不检测网络状态,直接发送数据
ACCESS_WIFI_STATE 允许读取WiFi状态变化 可选项 影响数据SDK数据发送频率
READ_PHONE_STATE 允许访问手机设备的唯一标识信息 可选项 SDK无法获取设备ID
示例代码:

<!-- 网络权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- SD卡读写权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 网络状态相关权限 -->
<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" />

5、 引入类

在您需要使用 MZAnalytics SDKSDK 监测功能的类中,import 相关类:

import com.miaozhen.sitesdk.api.MzSiteSDK;
import com.miaozhen.sitesdk.conf.MzConfig;

6、SDK初始化

接口定义:

public static MzSiteSDK getInstance(Context context, MzConfig config,Intent intent)

参数说明:

参数 类型 说明
context Context APP or Activity 上下文
config MzConfig SDK配置相关的类
intent Intent deeplink唤起页面传入getIntent(),其他情况传null即可

代码示例:在您的工程中的 Application 或者 Activity 中的 onCreate 中添加如下代码:

//SDK 配置相关
MzConfig config = new MzConfig();
//调试时设置log开关
config.setDebugMode(true);
//SDK初始化
MzSiteSDK mzSiteSDK = MzSiteSDK.getInstance(getApplicationContext(),config,null);

7、页面监测

接口定义:

public synchronized void trackPageView( JSONObject properties)

参数说明:

参数 类型 说明
properties JSONObject 页面监测的相关属性集合

参数详细说明:

参数 类型 说明 是否必填
dt String 页面名称 必填

示例代码:

   //页面监测
try {
    JSONObject pageObject = new JSONObject();
    pageObject.put("dt","底部导航栏");
    mzSiteSDK.trackPageView(pageObject);

}catch (Exception e){

}

8、基础事件监测

接口定义:

public synchronized void trackBaseEvent( JSONObject properties)

参数说明:

参数 类型 说明
properties JSONObject 基础事件监测的相关属性集合

参数详细说明:

参数 类型 说明 是否必填
dt String 页面名称 必填
ec String 事件分类 必填
ea String 事件动作 必填
el String 事件标签 非必填
ev String 事件价值 非必填

示例代码:

//基础事件
try {
    JSONObject baseObject = new JSONObject();
    baseObject.put("dt","首页页面");
    baseObject.put("ec","点击热门banner");
    baseObject.put("ea","Click");
    baseObject.put("el","点击");
    baseObject.put("ev","10");
    mzSiteSDK.trackBaseEvent(baseObject);

}catch (Exception e){

}

9、自定义事件监测

接口定义:

public synchronized void trackSeniorEvent( JSONObject properties)

参数说明:

参数 类型 说明
properties JSONObject 自定义事件监测的相关属性集合

参数详细说明:

参数 类型 说明 是否必填
caid int 自定义事件id 必填
cal[1~20] String 自定义事件维度 必填
cav[1~20] int 自定义事件指标 必填

示例代码:

//自定义事件监测
try {
    JSONObject baseObject = new JSONObject();
    baseObject.put("cal1","提交订单");
    baseObject.put("cal2","支付订单");
    baseObject.put("cav1","提交订单数");
    baseObject.put("cav2","支付订单数");
    baseObject.put("caid",1);    //自定义事件id
    mzSiteSDK.trackSeniorEvent(baseObject);

}catch (Exception e){

}

10、页面隐藏或关闭监测

接口定义:

 public synchronized void trackPulse()

示例代码:

//页面隐藏或者页面关闭事件
  try{
   mzSiteSDK.trackPulse();
}catch (Exception e){
}

11、Deeplink相关配置:

修改AndroidManifest.xml文件。 在接受deeplink唤起的activity配置中添加如下代码:

<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:host="bj"
          android:pathPrefix="/site"
          android:scheme="miaozhen" />
</intent-filter>
唤起链接相关说明:
示例:
    miaozhen://bj/site?mz_ca=2000001&mz_sp=10000
格式规范:
    scheme://host/path?key1=value1&key2=value2&mz_ca=2220134&mz_sp=35790
说明:
    1、问号?前面客户可以自己定义
    2、问号后面key和value连接必须用=,不同key-value拼接必须用&
    3、同时存在mz_ca和mz_sp归为deeplink流量,否则归为普通流量
    4、mz_ca合法是7位,mz_sp合法是5位

在接收唤起事件Activity的onCreate()方法中初始化如下方法:

//SDK 配置相关
MzConfig config = new MzConfig();
//调试时设置log开关
config.setDebugMode(true);
//SDK初始化
MzSiteSDK mzSiteSDK =     MzSiteSDK.getInstance(getApplicationContext(),config,getIntent());

备注:如果想完整启动app,建议添加到启动页面。

12、配置SDKConfig权限(根据业务需求自行配置)

可在sdkconfig.xml的文件中对imei、oaid、adid配置开关。

a. 当设置imei、oaid、adid配置中的isRequired的value为true时,获取以上id;
b. 当设置imei、oaid、adid配置中的isRequired的value为false时,不获取以上id;

举例:以下部分是如何在sdkconfig.xml文件中配置是否采集imei的示例。

  //采集imei的配置示例
<argument>
    <key>imei</key> // 该开关控制的是imei的采集
    <value>0c</value>
    <urlEncode>true</urlEncode>
    <isRequired>true</isRequired> //imei的 isRequired的value为true,表示sdk会采集imei
</argument>


//不采集imei的配置示例
<argument>
    <key>imei</key> // 该开关控制的是imei的采集
    <value>0c</value>
    <urlEncode>true</urlEncode>
    <isRequired>false</isRequired> //imei的 isRequired的value为false,表示sdk不会采集imei
</argument>

13、添加混淆

接口定义:

-keep class com.bun.miitmdid.core.** {*;}
-keep class com.miaozhen.sitesdk.** {*;}

14、 验证和调试

参数是否齐全。

请求次数和第三方监测平台是否能对应。

请联系第三方监测平台完成测试。

results matching ""

    No results matching ""