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

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

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

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

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

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

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

4、配置 config.xml 文件

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

 // 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="******"/>

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();

    });

}

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

此外,友盟模块支持自定义事件,需要提前在统计平台上定义事件;自定义事件可以实现在应用程序中埋点来统计用户的点击行为。自定义事件目前包括“计数事件”和“计算事件”。使用自定义事件功能请先登陆友盟+官网,在“统计分析->设置->事件”(子账户由于权限限制可能无法看到“设置”选项,请联系主帐号开通权限。)页面中添加相应的事件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/Client-API/Open-SDK/umAnalytics

来APICloud移动应用开发平台学习更多APP开发知识:app开发,app制作,app开发源码下载,app开发框架,app制作模板等免费获取。

目录
相关文章
|
JavaScript 前端开发 索引
用Three.js搞个炫酷3D地球
地球人怎么可以不会画地球!从canvas画地球贴图开始,用Three.js手把手教你实现一个炫酷的3D地球!
用Three.js搞个炫酷3D地球
|
JSON 前端开发 JavaScript
开源表单方案 Formily 的核心设计思路
Formily 是一个数据+协议驱动的表单解决方案,它站在Reactive响应式编程巨人的肩膀上,构建出了从基础表单到低代码领域的高性能通用基础能力,同时其配套的跨框架+跨终端组件生态体系,也能让用户更高效的开发日常业务表单,尽可能的减少了重复冗余的逻辑实现。本篇内容来自白玄在第十六届D2前端技术论坛的分享,将为你介绍如何在高复杂业务场景下提高我们的表单性能与表单开发效率。
5841 1
开源表单方案 Formily 的核心设计思路
|
10月前
|
前端开发 测试技术 API
我同学不知道UnoCSS是什么,我教他用之后效率直接倍增
原子化 CSS 是一种 CSS 的架构方式,它倾向于小巧且用途单一的 class,并且会以视觉效果进行命名。可以将原子化的 CSS 框架理解为这类 CSS 的统称
1288 5
|
前端开发 API UED
React 路由守卫 Guarded Routes
【10月更文挑战第26天】本文介绍了 React 中的路由守卫(Guarded Routes),使用 `react-router-dom` 实现权限验证、登录验证和数据预加载等场景。通过创建 `AuthContext` 管理认证状态,实现 `PrivateRoute` 组件进行路由保护,并在 `App.js` 中使用。文章还讨论了常见问题和易错点,提供了处理异步操作的示例,帮助开发者提升应用的安全性和用户体验。
539 1
|
Java 调度 Docker
Spring Boot 3 整合 xxl-job 实现分布式定时任务调度,结合 Docker 容器化部署(图文指南)
Spring Boot 3 整合 xxl-job 实现分布式定时任务调度,结合 Docker 容器化部署(图文指南)
Spring Boot 3 整合 xxl-job 实现分布式定时任务调度,结合 Docker 容器化部署(图文指南)
|
数据安全/隐私保护 iOS开发 开发者
Uniapp 最新版 iOS 打包详细步骤详解
Uniapp 最新版 iOS 打包详细步骤详解
|
Java 关系型数据库 MySQL
太牛了! GitHub大牛呕心沥血整理的5000页Java学习手册文档
今天整理了一套 5000 页的 Java 学习手册,,新鲜出炉,分享给大家!此手册内容专注 Java技术,包括 JavaWeb,SSM,Linux,Spring Boot,MyBatis,MySQL,Nginx,Git,GitHub,Servlet,IDEA,多线程,集合,JVM,DeBug, Dubbo,Redis,算法,面试题等相关内容。
微分方程——药物在体内分布的房室模型
微分方程——药物在体内分布的房室模型
470 0
|
消息中间件 存储 缓存
【PCIe页请求服务】到底到底到底是啥?半年搜遍全网找不到一篇介绍文章,没人写那我来写吧
【PCIe页请求服务】到底到底到底是啥?半年搜遍全网找不到一篇介绍文章,没人写那我来写吧
2162 0
【PCIe页请求服务】到底到底到底是啥?半年搜遍全网找不到一篇介绍文章,没人写那我来写吧
|
机器学习/深度学习 数据可视化 Python