跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

高级功能

一、账号统计

1.1集成账号统计

设置上报用户上报后,在U-App中的应用及实践场景可参考文档:用户账号及用户属性

【友盟+】在统计用户时以设备为标准,如果需要统计应用自身的账号,请使用以下接口:

1.1.1用户登录

public static void onProfileSignIn(String ID);
public static void onProfileSignIn(String Provider, String ID);

参数

含义

ID

用户账号ID,长度小于64字节

Provider

账号来源。如果用户通过第三方账号登录,可以调用此接口进行统计。支持自定义,不能以下划线”_”开头,使用大写字母和数字标识,长度小于32 字节; 如果是上市公司,建议使用股票代码。

1.1.2用户登出

账号登出时需调用此接口,调用之后不再发送账号相关内容。

public static void onProfileSignOff();

示例:

//当用户使用自有账号登录时,可以这样统计:
MobclickAgent.onProfileSignIn("userID");
//当用户使用第三方账号(如新浪微博)登录时,可以这样统计:
MobclickAgent.onProfileSignIn("WB","userID");

//登出
MobclickAgent.onProfileSignOff();

1.2启用账号统计

1.2.1 集成账号统计功能后,请进入后台选择“应用”-设置-应用信息-修改,启动账号统计,如下图:

202108111140011.2.2 如果您集成了新版SDK的账号接口,可以通过启动账号统计开关,来开启账号报表的展现。账号统计报表开关仅作用于报表的展现,不影响数据的计算。您可以根据实际的需要来启动或者暂停该功能。集成此功能的第二天才能在后台报表看见账号的数据。可在下图所示位置查看:

20210811120656

1.3.设置用户属性

1.3.1 接口类:

com.umeng.analytics.MobclickAgent;

1.3.2 接口函数:

/** 
* 设置预置用户属性(电话号码)
* 参数:mobile 电话号码
*/
public static void userProfileMobile(String mobile)

/**
* 设置预置用户属性(邮箱)
* 参数:email 邮箱
*/
public static void userProfileEMail(String email)

/**
* 设置用户自定义属性(键值对)
* 参数:key 键;val 值。
*/
public static void userProfile(String key, Object val)
重要
  1. 用户属性设置接口一定要在账号登入接口MobclickAgent.onProfileSignIn()调用之后调用。

  2. 只支持最多20个用户自定义属性设置,超出20个后的key设置无效。

  3. 设置自定义用户属性,同一个 key 多次设置时,value 值会进行覆盖替换。

1.3.3用户自定义属性参数要求:

参数

参数类型

描述

备注

key

String

自定义属性键

小于128字节,允许:英文([a-z;A-Z])、数字(0-9)、下划线 进行定义,使用其中一种或者几种都可以。 不允许:不能以“数字”、"_"开头

val

String、Integer、

Long、Short、

Float、

Double

自定义属性值

当自定义属性值为String类型值时,值必须小于256字节。

1.3.4示例代码:

MobclickAgent.onProfileSignIn("example_id", "uid");
MobclickAgent.userProfileMobile("13387538888");
MobclickAgent.userProfileEMail("developer@gmail.com");
MobclickAgent.userProfile("key111", "val111");
MobclickAgent.userProfile("key222", 123457878L);
MobclickAgent.userProfile("key333", (Double)0.0234);

二、页面采集

页面采集分为两种模式:自动采集(仅采集activity)和手动采集(支持activity和非activity)。页面采集模式选择需要和预初始化一起。

采集模式选择接口:

// 自动采集选择
MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);

//手动采集选择
MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.Manual);

2.1.自动采集-AUTO模式

2.1.1如果开发者选择了自动采集模式,无需做任何则在页面埋点,在App下次启动时,会默认上报本次App使用的所有activity页面信息。判断activity页面的启动、退出方式如下:

  • 页面进入:Activity页面onResume函数;

  • 页面退出:Activity页面onPause函数;

  • 页面名称:Activity路径;

  • 页面访问时长:监听到onResume函数和onPause函数的时刻差。

2.1.2只要选择了自动采集模式,就会上报所有的页面访问信息,如果不使用该功能可以选择手动采集模式,可减少App端用户流量。

例子:

public class UmengApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // 初始化SDK
        UMConfigure.init(this, "5ab2xxxxxxxxxxxxx002f8", "Umeng", UMConfigure.DEVICE_TYPE_PHONE, null);
        // 选用AUTO页面采集模式
        MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);

2.2手动采集-Manual

如果需要统计非activity页面,例如fragment、自定义View等,则需要选择手动采集。手动采集模式不会采集activity信息,仅采集开发者埋点页面的信息,埋点接口为:

2.2.1定义页面进入

public static void onPageStart(String viewName);

2.2.2定义页面退出

public static void onPageEnd(String viewName);

参数

含义

viewName

自定义页面名。

注意:以上接口对于一个页面必须成对调用!!! 不同页面间仅支持串行调用!!!

2.2.3 手动统计Fragemnt页面的例子代码:

// Fragment页面onResume函数重载
public void onResume() {
    super.onResume();
    MobclickAgent.onPageStart("MainScreen"); //统计页面("MainScreen"为页面名称,可自定义)

}

// Fragment页面onResume函数重载
public void onPause() {
    super.onPause();
    MobclickAgent.onPageEnd("MainScreen");
}

三、自定义事件

3.1埋点接口

自定义事件可以用于追踪用户行为,记录行为发生的具体细节。

使用onEventObject接口进行事件的统计,参数值可以是如下几种类型之一:String、Long、Integer、Float、Double、Short。

3.1.1接口:

public static void onEventObject(Context context, String eventID, Map<String, Object>map)

3.1.2参数说明

参数

含义

context

当前宿主进程的ApplicationContext上下文。

eventID

为当前统计的事件ID。

map

对当前事件的参数描述,定义为“参数名:参数值”的HashMap“<键-值>对”。

  • eventID:自定义事件ID,指一个操作 例如:您可定义“pause”或“play”作为一个事件。您也可更加具体,创建一个“music_willbe_finished”的事件,并设定在音乐播放了 90% 的那一刻触发;

  • key:自定义事件下的参数,一个可选的描述符,用于定义事件操作的属性信息 例如,您可以定义“music_style”或“singer_name”作为“play”事件的参数,也可以定义“play_time”作为事件的参数。

  • value:自定义事件参数下的参数值,用于描述事件属性的详细信息。 例如,“play”事件下“music_style”的参数值可以是“slight”、“rock”等。数值型参数的取值是数字变量。值可以是明确的数字,如“23”;也可以是在其他位置定义的基于推断值的变量,如“downloadTime”。

3.1.3示例:

Map<String, Object> music = new HashMap<String, Object>();
music.put("music_type", "popular");//自定义参数:音乐类型,值:流行
music.put("singer", "JJ"); //歌手:(林俊杰)JJ
music.put("song_name","A_Thousand_Years_Later"); //歌名:一千年以后
music.put("song_price",100); //价格:100元
MobclickAgent.onEventObject(this, "play_music", music);

3.1.4备注:

  • 多参数类型事件能满足原来计算事件/计数事件的分析场景;

  • 对于计算型事件不同的参数类型对应不同的计算方式,总共可以分为两大类,数值型和字符型

    • 数字型:支持累加值、最大值、最小值、平均值和去重数计算

    • 字符型:支持去重数计算

  • 参数类型根据第一次上传的参数类型为准,后续即使App工程上更改,也无法改变,只能创建新的参数。

3.2注意事项

  • 自定义事件ID不可更改,需与代码中“String event_id”保持一致,参数(key)无须手动注册;

  • 请在SDK初始化之后调用事件统计接口;

  • event id长度不能超过1024个字节,key不能超过4096个字节,当自定义属性值value为数组元素时,数组长度上限为100

  • 请不要将事件属性key以"_"开头。"_"开头的key属于SDK保留字

  • id、ts、du、ds、duration、pn、token、device_name、device_model 、device_brand、country、city、channel、province、appkey、app_version、access、launch、pre_app_version、terminate、no_first_pay、is_newpayer、first_pay_at、first_pay_level、first_pay_source、first_pay_user_level、first_pay_version、type、是保留字段,不能作为event id 及key的名称;

  • 如果需要在子进程中对自定义事件进行统计,需要在SDK初始化完成后调用函UMConfigure.setProcessEvent。

  • event ID或者key请使用英文、数字、下划线、中划线及加号进行定义,使用其中一种或者几种都可以,不能以“数字”开头,避免使用中文。具体限制请查看下文注意事项 为保证数据计算的准确性,非这些“合法”以外的字符无法添加,具体限制请查看下文注意事项;

  • 不同版本下,自定义事件数量

    功能/版本

    免费版

    专业版

    尊享版

    自定义事件量(个)

    100

    500

    2000

    事件参数量(个)

    50

    200

    200

    事件参数值量(个)

    1000

    2000

    5000

  • 为方便使用者理解及使用,可通过显示名称进行重命名(支持中文),进入【应用设置-事件-编辑】进行操作;

  • 埋码完成后,建议使用集成测试进行验证;

3.3子进程埋点

友盟+SDK仅支持子进程自定义事件埋点,页面等其他类型采集暂不支持。子进程埋点需要在SDK初始化完成后调用函数UMConfigure.setProcessEvent。

3.3.1示例:

public class UmengApplication extends Application{
    @Override
    public void onCreate(){
        super.onCreate();
        // 初始化SDK
        UMConfigure.preInit(this, "您的appkey", "您的渠道");
        
        // 支持在子进程中统计自定义事件
        UMConfigure.setProcessEvent(true);

3.3.2注意:

  • 如果需要在某个子进程中统计自定义事件,则需保证在此子进程中进行SDK初始化。

四、流失卸载统计

4.1.U-App为需要进行存量用户运营的开发者提供了流失卸载维度的分析功能,查看功能详情

4.2使用流失卸载功能需要额外集成高级运营分析功能独立库,通过独立库向友盟供给判断安装卸载、可疑设备的必要信息。

4.3 新集成用户按此文档集成

4.4 老用户开通流失卸载配置指引

4.5UYMManager(高级运营分析功能独立库)类下提供控制SDK采集行为的接口,强烈建议您保持默认配置,无需改动。若确有必要,可参考此文档进行手动配置,配置后流失卸载统计的准确性将大幅度受影响。

4.6

重要

「高级运营分析功能独立库」需使用设别应用列表、地理位置信息等相关信息,请在隐私声明中添加相关话术。

需重新配置混淆,以避免【友盟+】SDK被错误混淆导致SDK不可用,依赖库无法生效。见集成流程

4.7

重要

集成独立库并发布上线后如果菜单一直没有数据,请检查独立库的真实覆盖设备量。

被独立库覆盖的设备才会参与卸载判断,您可以在「反作弊-设备风险趋势」菜单,通过「活跃设备数」看独立库的覆盖设备量,正常情况下,「活跃设备数」会和携带独立库的App版本的活跃用户量近似。

  • 情况一:独立库覆盖量级符合App版本的活跃用户数,可能是未识别到有设备卸载。由于卸载计算需要全域数据参与,达足够量级才能生效,所以请勿以少量的测试设备发数的方式进行功能验证。

  • 情况二:独立库覆盖量级大幅少于App版本的活跃用户数,请和技术确认是否有根据指引,在正式上线的release版本中重新进行混淆配置,参考:老用户开通流失卸载配置指引

如果以上排查完成后还没有数据,请联系友盟客服。

五、隐私合规授权结果上传

您可以将您用户的授权的结果使用该API传入。友盟+会自动校验在用户不同意隐私政策时,是否采集其信息。详情可参考友盟官方三合一Demo中 SplashTestActivity.java文件中调用示例。

接口如下:

UMConfigure.submitPolicyGrantResult(getApplicationContext(), true);

六、采集开关接口

// IMSI采集开关接口
// 参数flag: true-允许采集IMSI;false-不允许采集IMSI
public static void enableImsiCollection(boolean flag);

// ICCID采集开关接口
// 参数flag: true-允许采集ICCID;false-不允许采集ICCID
public static void enableIccidCollection(boolean flag);

// IMEI采集开关接口
// 参数flag: true-允许采集IMEI;false-不允许采集IMEI
public static void enableImeiCollection(boolean flag);

// WiFi Mac地址采集开关接口
// 参数flag: true-允许采集WiFi Mac;false-不允许采集WiFi Mac
public static void enableWiFiMacCollection(boolean flag);
接口类:
com.umeng.commonsdk.UMConfigure