更新记录

1.8.7(2024-03-13)

iOS SDK 解决活跃上报失败的问题

1.8.6(2023-12-23)

解决android网页重复拉起无法还原参数

1.8.5(2023-11-24)

1、iOS SDK 更新到 2.8.1
2、优化了ASA归因逻辑

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 14.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 17

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


一、插件介绍

此插件是 openinstall 为了方便 uni-app 集成使用 openinstall 功能而开发的,实现了携带参数安装,渠道统计(H5渠道、广告平台渠道、ASA渠道等),一键拉起全部功能。

如有集成问题,请联系技术支持QQ:800853853

openinstall 可帮助 Android/iOS 开发者精确的获取 App 每一次安装来源;在 App 安装或拉起后,直达指定场景,大大提高用户转化率和留存率。同时,openinstall 在精准的 app 安装来源跟踪的技术上,开发了免打包,跨平台的渠道统计功能,轻松创建与管理成千上万的渠道,实现线上线下全渠道覆盖。openinstall 统计数据完全独立于第三方平台,提供多维度的统计报表,实时客观地反映渠道效果。

二、集成准备

前往 openinstall 官网,注册账户,登录管理控制台,创建应用后,跳过 "集成指引",在 "应用集成" 的对应平台的 "应用配置" 中获取 appkeyscheme 以及 iOS 的关联域名。

获取appkey和scheme

针对使用了 渠道统计 功能中的 广告平台渠道/ASA渠道 效果监测功能的集成,需要参考 补充文档

注意: 为了适配苹果最新的ASA渠道统计API,插件版本1.5.4及以上版本中,iOS插件编译环境为Xcode 12.3。

配置appkey

在 mainfest.json 的 App原生插件配置 的 openinstall 插件配置框内配置 openinstall 分配给应用的 AppKey
设置appkey

配置scheme

在 mainfest.json 的 App常用其它配置 中配置 openinstall 分配给应用的 scheme
设置scheme

配置universal links(iOS平台)

1、开启Associated Domains服务
需要在苹果开发者后台开启 苹果开发者后台

2、在HBuilderX里面配置关联域(Associated Domains)
示例如图:
配置关联域名

三、使用教程

引用

const openinstall = uni.requireNativePlugin('openinstall-plugin');

初始化

init()
示例:在 App.vueonLaunch 方法中进行初始化

openinstall.init();

注意: 1.3.2版本加入,必须先进行初始化,才能调用其他api

获取安装数据

getInstall(seconds, callback)

  • seconds : 回调超时时间
  • callback : 数据回调函数

示例:

openinstall.getInstall(
    8,
    function(result) {
        console.log('getInstall : channel=' + result.channelCode + ', data=' + result.bindData 
            + ', shouldRetry=' + result.shouldRetry);
    }
);

获取拉起数据

registerWakeUp(callback)

  • callback : 数据回调函数

示例: 在 App.vueonLaunch 方法中注册拉起回调(在初始化之后调用 )

openinstall.registerWakeUp(function(result){
    console.log('getWakeup : channel=' + result.channelCode + ', data=' + result.bindData);
});

注册量统计

reportRegister()
示例:

openinstall.reportRegister();

效果点统计

reportEffectPoint(effectPointId, effectPointValue)

  • effectPointId : 效果点ID
  • effectPointValue : 效果点值,数值类型

示例:

openinstall.reportEffectPoint("effect_test", 1);

效果点明细统计

reportEffectPoint(pointId, pointValue, extras)

  • pointId : 效果点ID
  • pointValue : 效果点值,数值类型
  • extras : 效果点自定义参数和值,key和value都必须是string类型

示例:

var extras = {
    "key1": "value1",
    "key2": "value2",
}
openinstall.reportEffectPoint("effect_detail", 1, extras);

裂变分享上报

reportShare(shareCode, sharePlatform, callback)

  • shareCode : 分享标识码(用户标识)
  • sharePlatform : 分享平台,参考官网定义的平台字符串
  • callback : 上报回调函数 示例:
    openinstall.reportShare("10001", "QQ", function(ret) {
    console.log('shouldRetry = ' + ret.shouldRetry + ', message = ' + ret.message);
    if(ret.shouldRetry){
        console.log('上报失败,请重试');
    }
    });

四、导出apk/ipa包并上传

  • 代码集成完毕后,需要导出安装包上传openinstall后台,openinstall会自动完成所有的应用配置工作。
    上传安装包
  • 上传完成后即可开始在线模拟测试,体验完整的App安装/拉起流程;待测试无误后,再完善下载配置信息。 在线测试

如有疑问

若您在集成或使用中有任何疑问或者困难,请 咨询openinstall客服


广告接入补充文档

Android平台

(1)针对广告平台接入,新增配置接口,在调用 init 之前调用。参考 广告平台对接Android集成指引

var options = {
    adEnabled: true,
}
openinstall.configAndroid(options);

options 参数如下:

参数名 参数类型 描述
adEnabled bool 广告平台接入开关(必须)
macDisabled bool 是否禁止 SDK 获取 mac 地址
imeiDisabled bool 是否禁止 SDK 获取 imei
gaid string 通过 google api 获取到的 advertisingId,SDK 将不再获取gaid
oaid string 通过移动安全联盟获取到的 oaid,SDK 将不再获取oaid

(2) 为了精准地匹配到渠道,需要获取设备唯一标识码,因此需要在 manifest.json 中声明权限,在 “App模块权限配置” 的 “Android打包权限配置” 勾选上 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

(3)在 manifest.json 中设置,关闭 uni-app 自动获取 android.permission.READ_PHONE_STATE 权限

    "permissionPhoneState" : {
        "request" : "none",
        "prompt" : ""
    },        

示例如图:
设置权限

(4)在 App.vueonLaunch 方法中进行初始化,先申请权限,之后进行配置和初始化

if (plus.os.name == "Android") {
    plus.android.requestPermissions(["android.permission.READ_PHONE_STATE"], function(event) {
        if(event.granted){
            console.log(event.granted);
        }
        if(event.deniedPresent){
            console.log(event.deniedPresent);
        }
        if(event.deniedAlways){
            console.log(event.deniedAlways);
        }
        // 配置初始化,设置 OAID 
        var options = {
            adEnabled: true,
            oaid: "通过移动安全联盟获取到的 oaid",
        }
        openinstall.configAndroid(options);
        // 权限申请成功,不管用户是否同意,都需要做初始化
        openinstall.init();
        // 初始化完成后,才能做其他api调用
        openinstall.registerWakeUp(function(result) {
            console.log('wakeup : channel=' + result.channelCode + ', data=' + result.bindData);
        });
    }, function(event) {
        // 权限申请错误
    })
}

iOS平台

包括广告平台渠道统计和ASA渠道:

广告平台渠道:

openinstall后台配置及上架指引可参考文档 广告平台对接iOS集成指引

(1)需在manifest.json的 “App常用其它设置” 中配置勾选 “使用广告标识(IDFA)”

(2)下载官方插件iOS平台获取idfa,并保存到目录下,如js_sdk/dc-idfa/idfa.js

(3)在 App.vue 中引用此模块,如下:

import idfa from "@/js_sdk/dc-idfa/idfa.js"

(4)在 App.vueonLaunch 方法中进行初始化,如下:

if('iOS' == plus.os.name){
    var fid = "";
    fid = idfa.value();//如果需要idfa则开启
    openinstall.init(fid);
    console.log(fid);
};

ASA渠道:

插件1.5.4及以上版本增加了ASA渠道统计功能,已经集成在SDK内部,只需配置增加少量代码。开发者可以通过getInstall方法获取channelCode对应的值,即为ASA渠道编号。
区分ASA渠道和H5渠道及其它渠道,可在openinstall开发者平台创建渠道时,创建不同的渠道编号来做区分,如asa+广告系列ID,例子:asa_1234567890

//配置asa,也可同时配置idfa
//isDev:"1"是测试模式,可以测试1234567890渠道下的统计数据,正式环境下请去掉该设置
var options = {
    asa: "1",
    isDev: "1",
    //idfa: null,
}
openinstall.initAdsAttribution(options);

如何在openinstall开发者平台创建ASA渠道,并实现统计功能和上架前测试,请看图文文档 ASA渠道使用指南

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用的 openinstall SDK会采集数据,详情可参考 https://www.openinstall.io/

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

请参考开源项目地址的开源协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问