在APICloud开发平台使用友盟统计功能教程

码途寻星说
• 阅读 880

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

模块的使用步骤主要如下:

1、首先需注册好APICloud开发者账号(www.apicloud.com)和友盟开发者账号(www.umeng.com

2、进入友盟官网点击移动统计创建应用并获取AppKey

在APICloud开发平台使用友盟统计功能教程

3、如果需要自定义事件统计,需进入应用,然后点击 设置 => 事件 =\> 添加事件

在APICloud开发平台使用友盟统计功能教程

4、配置 config.xml 文件

一个 App 需要同时支持 iOS 和 Android 平台,则必须单独申请各自的 appKey,并同时配置在 config 文件中,Android渠道和iOS渠道分别标注

<feature name="umAnalytics">
     // ios_appkey:通过友盟移动统计网站获得iOS系统的key
    <param name="ios_appkey" value="*************"/>
  // iOS渠道号
    <param name="ios_channel" value="******"/>
    // 通过友盟移动统计网站获得Android系统的key
    <param name="android_appkey" value="***********"/>
    // Android的渠道号
    <param name="android_channel" value="******"/>
</feature>

5、常见问题的索引  https://community.umeng.com/

6、注意

在APICloud开发平台使用时不能与umengAnalytics、umengTJ模块共同使用,同时由于Google Play 及国内的一些app store审查的原因,自模块版本 1.0.5 后,新增接口 config、onResume、onPause,在原先初始化(init)之前需要调用config 接口, 并且需要在监听到app主页面启动后调用onResume、onPause接口

引入的代码也比较简单,示例如下:

apiready = function () {
        var umAnalytics = api.require('umAnalytics');
        if (systemType == 'android') {
            umAnalytics.config();
        }
        umAnalytics.init();
        api.addEventListener({
            name: 'resume'
        }, function (ret, err) {
            umAnalytics.onResume();
        });
        api.addEventListener({
            name: 'pause'
        }, function (ret, err) {
            umAnalytics.onPause();
        });
}

引入后编译正式包,客户下载安装,在友盟后台就可以统计到用户的相关信息

在APICloud开发平台使用友盟统计功能教程

在APICloud开发平台使用友盟统计功能教程

在APICloud开发平台使用友盟统计功能教程

此外,友盟模块支持自定义事件,需要提前在统计平台上定义事件;自定义事件可以实现在应用程序中埋点来统计用户的点击行为。自定义事件目前包括“计数事件”和“计算事件”。使用自定义事件功能请先登陆友盟+官网,在“统计分析->设置->事件”(子账户由于权限限制可能无法看到“设置”选项,请联系主帐号开通权限。)页面中添加相应的事件id,然后服务器才会对相应的事件请求进行处理。

// 使用计数事件需要在后台添加事件时选择“计数事件”。例:统计微博转发次数
// 计数事件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));
             }
        });

自定义页面需要调用onPageStart 和 onPageEnd 方法,而且必须成对使用,其中onPageStart方法不会随页面打开自动调用,一定要在页面的初始化中写入。onPageEnd方法不会随页面关闭自动调用,需要写在关闭页面的api.closeWin()或api.closeFrame()方法前有效。

具体示例代码如下:

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

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

友盟在统计用户时以设备为主,如果需要统计应用自身的账号,可以使用登录接口profileSignInWithPUID和退出profileSignOff接口,代码如下:

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

             }
        });

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

更多方法和细节请参考,模块文档https://docs.apicloud.com/Cli...

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
小白从0到1学习app开发,以APICloud为例
小白如何开发APP,需要学习哪些知识?可以从0到1完成一个APP的开发。第一步,注册选择开发工具有一些教程上会说先创建应用,再选择工具,是使用的控制台创建的https://www.apicloud.com/studio3APICloudStudio3工具的教程https://docs.apicloud.com/DevTools/studio3visu
APICloud平台常用技术点汇总详解
APICloud移动低代码开发平台介绍:使用APICloud可以开发移动APP、小程序、html5网页应用。如果要实现编写一套代码编译为多端应用(移动APP、小程序、html5),需使用avm.js框架进行开发。如果只开发APP,则可以使用前端技术(HTML5、Vue、react等)、avm.js进行开发,还可以使用模块商店大量的原生
Wesley13 Wesley13
3年前
VBox 启动虚拟机失败
在Vbox(5.0.8版本)启动Ubuntu的虚拟机时,遇到错误信息:NtCreateFile(\\Device\\VBoxDrvStub)failed:0xc000000034STATUS\_OBJECT\_NAME\_NOT\_FOUND(0retries) (rc101)Makesurethekern
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
码途寻星说
码途寻星说
Lv1
青紫虽被体,不如早还乡。
文章
4
粉丝
0
获赞
0