umAnalytics

来自于:开发者

概述

umAnalytics模块封装了友盟APP统计SDK。实现了友盟统计功能,包括启动次数、事件、页面等app数据的统计。

模块使用步骤

1. 注册帐号

请开发者到友盟+官网注册自己的账号

2. 创建应用并获取AppKey

AppKey是友盟+后台用来标示App的唯一标识符,集成SDK前需要在创建应用并获取相应的AppKey。创建应用并获取对应的AppKey.具体操作请查看如下网址:网址链接

3. 添加自定义事件

如果需要自定义事件统计,需进入应用,然后点击 设置 => 事件 => 添加事件 。自定义事件功能说明

4. 配置 config.xml 文件

  • 名称:umAnalytics
  • 备注:一个 App 需要同时支持 iOS 和 Android 平台,则必须单独申请各自的 appKey,并同时配置在 config 文件中,android渠道和ios渠道分别标注。
  • 配置示例:
<feature name="umAnalytics">
    <param name="ios_appkey" value="*************"/>
    <param name="ios_channel" value="******"/>
    <param name="android_appkey" value="***********"/>
    <param name="android_channel" value="******"/>
</feature>
  • 字段描述:

      1. ios_appkey:通过友盟移动统计网站获得iOS系统的key
      2. ios_channel: iOS渠道号
      3. android_appkey:通过友盟移动统计网站获得Android系统的key
      4. android_channel: Android的渠道号
    

5. 不能与以下模块共同使用

  1. umengAnalytics
  2. umengTJ

6. 其他问题和说明

  1. 友盟统计常见问题索引
  2. 由于苹果的App Store禁止不使用广告而采集IDFA的App上架,建议将应用提交至AppStore时按如下方式配置点击这里
  3. 开发测试时,APP的统计信息是不会实时显示在后台统计报表中的,所以需要使用集成测试功能;
  4. 自定义页面统计的报表为什么没有数据,请点击这里
  5. 为提高数据安全性,防止网络攻击,统计数据已加密上报;

7.注意

Android需升级环境进行编译

init

模块初始化

init({params}, callback(ret, err))

params

debugMode:

  • 类型:布尔类型
  • 描述:使用平台的集成测试时,需开启调试模式
  • 默认值:false

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
   { 
     status:true       布尔类型;是否成功
   }

err:

  • 类型:JSON 对象
  • 内部字段:
  { 
     code:         //错误码
     msg:'初始化失败'          //字符串类型;错误信息             
  }

示例代码


var umAnalytics = api.require('umAnalytics'); umAnalytics.init({
  debugMode:true
}, function(ret, err) { 
    if (ret.status) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

onEvent

触发自定义事件,需要提前在统计平台上定义事件;自定义事件可以实现在应用程序中埋点来统计用户的点击行为。自定义事件目前包括“计数事件”和“计算事件”。

使用自定义事件功能请先登陆友盟+官网,在“统计分析->设置->事件”(子账户由于权限限制可能无法看到“设置”选项,请联系主帐号开通权限。)页面中添加相应的事件id,然后服务器才会对相应的事件请求进行处理。

onEvent(params,callback(ret, err))

params

eventId:

  • 类型:字符串
  • 描述:事件ID,与你在友盟中定义的id要一致,id不要是中文的,以免产生乱码。
  • 说明:eventId请使用(英文、数字、下划线、中划线、小数点及加号)进行定义,使用其中一种或者几种都可以,为保证数据计算的准确性,非这些“合法”以外的字符无法添加

attributes:

  • 类型:JSON 类型
  • 描述:(可选项)事件的属性和取值(Key-Value键值对),每个自定义事件可以有10个参数,每个参数可以有1000个取值
  • 本参数无需预先在平台上定义。

counter:

  • 类型:字符串
  • 描述:(可选项)当前事件的数值。如果设置此参数,则必须设置 attributes 参数
  • 默认值:无

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true||false,操作是否成功
}

err:

  • 类型:JSON对象
  • 内部字段:
{
    code: 3,   //错误码;
               //3(请设置 eventId)
               //4(请设置 attributes)
    msg: "请设置 eventId"       //字符串类型;错误信息
}

示例代码


//使用计数事件需要在后台添加事件时选择“计数事件”。例:统计微博转发次数
// 计数事件1:统计发生次数(只有 eventId 一个参数时)
var umAnalytics = api.require('umAnalytics');
        umAnalytics.onEvent({
             eventId: 'Forward',
        },function(ret, err){
             if(ret.status){
                   alert(JSON.stringify(ret));
             }else{
                   alert(JSON.stringify(err));
             }
        });

    // 计数事件2:统计点击行为各属性被触发的次数(有 eventId、attributes 两个参数时)
    // 例:统计购买商品类型为book,数量为3本
    var umAnalytics = api.require('umAnalytics');
        umAnalytics.onEvent({
             eventId: 'purchase',
             attributes: {
                    type: 'book',
                    quantity: '3'
             }
        },function(ret, err){
             if(ret.status){
                   alert(JSON.stringify(ret));
             }else{
                   alert(JSON.stringify(err));
             }
        });

    // 计算事件:使用计算事件需要在后台添加事件时选择“计算事件”(字符串型);统计数值型变量的值的分布(有 eventId、attributes、 counter 三个参数时)
    //示例:购买《Swift Fundamentals》这本书,花了110元
    var umAnalytics = api.require('umAnalytics');
        umAnalytics.onEvent({
             eventId: 'pay',
             attributes: {
                    book: '《Swift Fundamentals》'
             },
             counter: 110,
        },function(ret, err){
             if(ret.status){
                   alert(JSON.stringify(ret));
             }else{
                   alert(JSON.stringify(err));
             }
        });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

onPageStart

自定义页面统计开始,与onPageEnd成对使用,在页面打开时调用此方法,如页面不需要统计,则无需调用此方法。

注意:本方法不会随页面打开自动调用,一定要在页面的初始化中写入。

onPageStart({parmas},callback(ret, err))

params

pageName:

  • 类型:字符串
  • 描述:自定义的页面名称,统计开始和结束统计的页面名称必须一致。
  • 默认值:无

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   status:        //布尔值,是否获取用户信息成功
}

示例代码

var umAnalytics = api.require('umAnalytics');
umAnalytics.onPageStart({
    pageName: '页面名称',
}, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

onPageEnd

自定义页面统计结束,与onPageStart成对使用,单独使用无效,在页面关闭前调用。

注意:本方法不会随页面关闭自动调用,需要写在关闭页面的api.closeWin()或api.closeFrame()方法前有效。

onPageEnd({parmas},callback(ret, err))

params

pageName:

  • 类型:字符串
  • 描述:自定义的页面名称,统计开始和结束统计的页面名称必须一致。
  • 默认值:无

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   status:        //布尔值,是否获取用户信息成功
   }

示例代码

var umAnalytics = api.require('umAnalytics');
umAnalytics.onPageEnd({
    pageName: '页面名称',
}, function(ret, err) {
    if (ret) {
        alert(JSON.stringify(ret));
    } else {
        alert(JSON.stringify(err));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

profileSignInWithPUID

账号统计:登录。友盟在统计用户时以设备为标准,如果需要统计应用自身的账号,请使用此接口

profileSignInWithPUID({params}, callback(ret, err))

params

userID:

  • 类型:字符串
  • 描述:用户账号ID.长度小于64字节
  • 默认值:无

provider:

  • 类型:字符串
  • 描述:(可选项)账号来源。如果用户通过第三方账号登陆,可以调用此接口进行统计。不能以下划线”_”开头,使用大写字母和数字标识; 如果是上市公司,建议使用股票代码。
  • 默认值:无

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,      //布尔型;true||false,操作是否成功
}

示例代码

        var umAnalytics = api.require('umAnalytics');
        umAnalytics.profileSignInWithPUID({
            userID:'000593',
            provider:"大通燃气"
        },function(ret,err){
             if(ret){
              alert(JSON.stringify(ret));
             }else{
             alert(JSON.stringify(err));

             }
        });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

profileSignOff

账号统计:退出。友盟在统计用户时以设备为标准,如果需要统计应用自身的账号,请使用此接口

profileSignOff(callback(ret, err))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,      //布尔型;true||false,操作是否成功
}

示例代码

        var umAnalytics = api.require('umAnalytics');
        umAnalytics.profileSignOff(function(ret){
            if(ret){
        alert(JSON.stringify(ret));
            }
        });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本