openinstall
【重要版本说明】
- 1.8.0 版本新增 裂变分享统计
- 1.7.0 版本新增 效果点明细
- 1.6.0 版本新增 安卓应用宝AppLink支持
- 1.5.0 版本新增 ASA 渠道
- 1.3.2 版本新增 广告平台接入
- 1.3.0 版本新增 init 接口,需要用户主动调用init
概述
openinstall模块封装了openinstall平台原生SDK,集成了渠道统计,携带参数安装,快速安装与一键拉起功能,目前渠道支持H5渠道,广告平台渠道以及Apple Search Ads (ASA) 渠道。
使用openinstall模块可实现以下多种场景:
集成准备
登陆 openinstall控制台 创建应用并获取openinstall为应用分配的appkey和scheme
AppKey配置
编辑项目的 config.xml 文件,根据获取的appkey和scheme添加下列示例代码:
<permission name="internet" />
<preference name="urlScheme" value="openinstall为应用分配的scheme" />
//android平台配置
<meta-data name="com.openinstall.APP_KEY" value="openinstall为应用分配的appKey" />
//iOS平台配置
<feature name="openinstall">
<param name="com.openinstall.APP_KEY" value="openinstall为应用分配的appKey" />
</feature>
注意: 配置完成后,需通过云端编译生效。
universal links相关配置(针对iOS)
开启Associated Domains服务
对于iOS,为确保能正常跳转,AppID必须开启Associated Domains功能,请到苹果开发者网站,选择Certificate, Identifiers & Profiles,选择相应的AppID,开启Associated Domains。
注意: 当AppID重新编辑过之后,需要更新相应的mobileprovision描述文件。 云编译 mobileprovision 发布证书制作步骤请查看 iOS证书及描述文件制作流程 中的 "云编译mobileprovision发布证书制作"或"云编译mobileprovision测试证书制作"。
配置universal links关联域名
该文件是给iOS平台配置的文件,在apicloud工程的res
目录(xcode工程的widget\res
目录)下创建文件名为UZApp.entitlements
的文件,添加如下代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.associated-domains</key><!--固定key值-->
<array>
<!--这里换成openinstall为您应用生成的关联域名(Associated Domains)-->
<string>applinks:xxxxxx.openinstall.io</string>
</array>
</dict>
</plist>
提示: openinstall完全兼容微信和QQ新版本的通用链接跳转功能,在使用微信模块wxPlus或wxpayPlus 时,对于微信要求配置的config.xml,需要传入openinstall相关的universal link链接。链接格式请到openinstall后台的【iOS集成】-【iOS应用配置】获取,参考univerallinks使用指南
API调用
广告平台配置(针对Android)
注意: 如未使用广告平台功能,请忽略此配置
config
Android 配置接口,设置广告平台相关参数
config(options)
options
adEnabled:
- 类型:布尔类型;
- 描述:广告平台接入开关
- 说明:如要使用广告平台,必须设置值为 true
oaid:
- 类型:字符串;
- 描述:通过移动安全联盟获取到的 oaid,默认为 null
gaid:
- 类型:字符串;
- 描述:通过 google api 获取到的 advertisingId,默认为 null
macDisabled:
- 类型:布尔类型;
- 描述:表示 是否禁止 openinstall SDK 获取 mac 地址,默认为 false
- 说明:1.5.0版本新增配置
imeiDisabled:
- 类型:布尔类型;
- 描述:表示 是否禁止 openinstall SDK 获取 imei,默认为 false
- 说明:1.5.0版本新增配置
示例代码
var openinstall = api.require('openinstall');
openinstall.config({
adEnabled: true,
oaid: "通过移动安全联盟获取到的 oaid",
imeiDisabled: true,
});
补充说明
此接口是 Android 平台针对广告平台接入而新增的配置接口,需要在调用 init 之前调用。参考 广告平台对接Android集成指引
可用性
Android系统,iOS系统
可提供的1.3.2及更高版本
初始化
注意: 1.3.0版本之前,模块内部自动进行初始化; 1.3.0版本及之后,模块不再自动调用初始化,需要用户主动调用初始化
init
示例代码
var openinstall = api.require('openinstall');
openinstall.init();
可用性
Android系统,iOS系统
可提供的 1.3.0 及更高版本
补充说明
如要使用广告平台渠道统计功能,请按以下操作初始化
对于Android平台,为了获取imei,需要在 config.xml
添加权限申明 <permission name="readPhoneState"/>
,并且在代码中请求权限
对于iOS平台,请使用apicloud官方模块 iAd 获取idfa
,并在初始化时传递给openinstall,使用苹果ASA相关功能,请在初始化时传入相关参数
广告平台初始化示例代码如下:
apiready = function() {
var openinstall = api.require('openinstall');
if (api.systemType == "ios") {
//只进行H5参数还原和统计
//openinstall.init();
//需要用到idfa时,先获取idfa,再初始化
var iAd = api.require('iAd');//引入iAd模块
var iAd = iAd.getIDFA({
lowerCase: false
}, function(ret) {
openinstall.init({
deviceId:ret.IDFA,
ASA:true,
isDev:false //isDev:true 是开启ASA测试模式,可以测试1234567890渠道下的统计数据,正式环境下请移除该设置或设置为false
});
});
//不用idfa时
//openinstall.init({
// ASA: true,
// isDev:false //isDev:true 是开启ASA测试模式,可以测试1234567890渠道下的统计数据,正式环境下请移除该设置或设置为false
// });
} else if (api.systemType == "android") {
//获取imei需要申请权限再初始化
var permissions = [];
permissions.push('phone-r');
var result = api.hasPermission({
list: permissions
});
if(result && result[0] && !result[0].granted){
//没有权限,去申请
api.requestPermission({
list: permissions,
code: 100
}, function(ret, err){
//不管是否申请到权限都要调用初始化
openinstall.config({
adEnabled: true,
oaid: "通过移动安全联盟获取到的 oaid",
});
openinstall.init();
});
}else{
openinstall.config({
adEnabled: true,
oaid: "通过移动安全联盟获取到的 oaid",
});
openinstall.init();
}
}
};
快速安装与一键拉起
在App未安装的情况下,openinstall帮助您在社交平台一键下载并安装App,实现App的快速安装,从此告别“右上角打开浏览器”,大幅提升安装概率,助力用户增长;
在App已安装的情况下,openinstall通过标准的scheme,universal links等技术,从各种浏览器(兼容国内50+主流浏览器与社交平台,包括QQ、新浪微博、钉钉等主流社交软件的内置浏览器)一键拉起App并传递自定义参数,一键直达页面。
getWakeup
在拉起APP时,获取由web网页中传递过来的参数
getWakeup({uri:ret},callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
channelCode: '渠道编号', //跳转来源渠道编号
data: '自定义参数' //有携带参数,则返回数据,没有则为空
}
注意:需要尽早监听appintent事件,获取appintent事件回调数据并传递给openinstall,openinstall将解析数据并回调结果
示例代码
var openinstall = api.require('openinstall');
api.addEventListener({
name: 'appintent'
}, function(ret, err) {
openinstall.getWakeup({
"uri": ret
}, function(ret, err) {
alert(JSON.stringify(ret));
});
});
补充说明
此接口用于在跳转APP时,获取由web网页中传递过来的动态参数,如商品id、游戏房间号等自定义参数,随后便可根据参数做相应的业务逻辑,如跳转指定商品详情页、直接进入邀请人游戏房间等
可用性
Android系统,iOS系统
可提供的1.0.0及更高版本
携带参数安装(高级版功能)
getInstall
获取由web网页中传递过来的安装参数
getInstall({params},callback(ret, err))
params
timeout:
- 类型:数字类型
- 描述:超时时长,单位秒(s),默认为10秒
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
channelCode: '渠道编号', //推广安装来源渠道编号
data: '自定义参数', // 推广携带的自定义参数
shouldRetry: '是否需要重试' //true代表超时,可以重试
}
示例代码
var openinstall = api.require('openinstall');
openinstall.getInstall({
timeout:10
},function(ret, err){
alert(JSON.stringify(ret));
});
补充说明
此接口用于获取动态安装参数(可重复获取),测试时候建议卸载再安装正确获取参数,在APP需要个性化安装参数时(由web网页中传递过来的,如邀请码、游戏房间号等自定义参数),在回调中获取参数,可实现跳转指定页面、统计渠道数据等
可用性
Android系统,iOS系统
可提供的1.0.0及更高版本
渠道统计(高级版功能)
openinstall 会自动完成安装量、留存率、活跃量、在线时长等渠道统计数据的上报工作
reportRegister
上报注册量
reportRegister()
示例代码
var openinstall = api.require('openinstall');
openinstall.reportRegister();
补充说明
统计每个渠道的注册量对评估渠道质量很重要;请根据自身的业务规则,在确保用户完成app注册的情况下,调用reportRegister()上报注册量。
可用性
Android系统,iOS系统
可提供的1.0.0及更高版本
reportEffectPoint
效果点统计
reportEffectPoint({params})
params
effectId:
- 类型:字符串
- 描述:效果点ID
effectValue:
- 类型:数字类型
- 描述:效果点值,货币以分为单位
extras(可选):
- 类型:JSON对象
- 描述:自定义参数和值
- 说明:1.7.0 版本及更高版本可用
示例代码
var openinstall = api.require('openinstall');
openinstall.reportEffectPoint({
effectId:'effect_test',
effectValue:1
});
效果点携带自定义参数上报
var openinstall = api.require('openinstall');
openinstall.reportEffectPoint({
effectId:'effect_detail',
effectValue:1,
extras: {
"key1": "value1",
"key2": "value2"
}
});
补充说明
需要在openinstall对应应用下有与effectId
对应的效果点才能统计成功,携带自定义参数上报的需要在效果点明细中添加自定义参数
可用性
Android系统,iOS系统
可提供的1.0.0及更高版本
reportShare
分享统计
reportShare({params},callback(ret, err))
params
shareCode:
- 类型:字符串
- 描述:分享标识码
platform:
- 类型:字符串
- 描述:分享平台,参考官网定义的平台字符串
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
shouldRetry: false, //是否上报失败需要重试
message: '返回的错误信息' //返回的错误信息
}
示例代码
var openinstallModule = api.require('openinstall');
openinstallModule.reportShare({
shareCode: "10001",
platform: "QQ"
}, function(ret, err) {
if(ret.shouldRetry){
alert("需要重试");
}
});
可用性
Android系统,iOS系统
可提供的1.8.0及更高版本
导出包上传
集成完毕后,通过云编译导出iOS/Android安装包上传openinstall控制台,openinstal会检查应用的集成配置
上传完成后即可开始在线模拟测试,体验完整的App安装/跳转流程
如有疑问
若您在集成或使用中有任何疑问或者困难,请 咨询openinstall客服。