HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

关于自定义基座,调试时,HBuilderX资源不会自动更新的问题

自定义基座,调试时,HBuilderX资源不会自动更新的问题,困扰了一天,各种地方都验证(多数为android本地环境个各种尝试),最后才定位到问题是:

dcloud_control.xml文件中有多个标签:

<app appid="UNI7182A0E" appver="" />,其中几个是注释了的
assets文件夹中也有多个资源目录
删除多余文件和标签后,热更新调试正常
注:
猜想框架调试更新时,框架代码不够严谨,没有处理多目录只使用一个标签时的场景

看论坛没有相关信息,特意录入,方便后面的家人们解决问题

继续阅读 »

自定义基座,调试时,HBuilderX资源不会自动更新的问题,困扰了一天,各种地方都验证(多数为android本地环境个各种尝试),最后才定位到问题是:

dcloud_control.xml文件中有多个标签:

<app appid="UNI7182A0E" appver="" />,其中几个是注释了的
assets文件夹中也有多个资源目录
删除多余文件和标签后,热更新调试正常
注:
猜想框架调试更新时,框架代码不够严谨,没有处理多目录只使用一个标签时的场景

看论坛没有相关信息,特意录入,方便后面的家人们解决问题

收起阅读 »

包年解决开发问题服务,现价1999元/年,原价2999元/年

解决方案

6年开发经验
擅长小程序、H5、Hybrid app、管理后台等开发
工作日30分钟内及时响应
诚信合作,有问题找我
包年解决开发问题服务+指导小白新手入行
现价1999元/年,原价2999元/年,5月31日恢复原价
微信:13513836550,备注:uniapp包年服务

继续阅读 »

6年开发经验
擅长小程序、H5、Hybrid app、管理后台等开发
工作日30分钟内及时响应
诚信合作,有问题找我
包年解决开发问题服务+指导小白新手入行
现价1999元/年,原价2999元/年,5月31日恢复原价
微信:13513836550,备注:uniapp包年服务

收起阅读 »

阿里云云函数直接将网络图片上传云存储

云函数里直接将网络图片上传云存储

const buffer = await uniCloud.httpclient.request(ImageURL, {})

//buffer.data 有些直接请求图片地址返回的不直接是buffer数组,需要再取一层看情况定
let result = await uniCloud.uploadFile({
cloudPath: Number(new Date()) + '.png',
fileContent:buffer
});

最大可上传1M
可以加个判断
if (buffer.data.length > 1024 * 10) {

}

分享个小经验希望能帮到你

继续阅读 »

云函数里直接将网络图片上传云存储

const buffer = await uniCloud.httpclient.request(ImageURL, {})

//buffer.data 有些直接请求图片地址返回的不直接是buffer数组,需要再取一层看情况定
let result = await uniCloud.uploadFile({
cloudPath: Number(new Date()) + '.png',
fileContent:buffer
});

最大可上传1M
可以加个判断
if (buffer.data.length > 1024 * 10) {

}

分享个小经验希望能帮到你

收起阅读 »

兼职uniapp开发,解决bug .9图,ios启动图制作,隐私政策弹框问题

启动图片

10年开发经验,加QQ: 728045048

1.代做 安卓.9.png / iOS苹果storyboard 启动图片,做好满意了再给钱,不满意免费修改;

2.代上架安卓应用市场/苹果APP Store;

3.解决前/后端问题;

4.定制/二次开发app、小程序、各类网站系统。

价格便宜,包满意!包满意!包满意!

继续阅读 »

10年开发经验,加QQ: 728045048

1.代做 安卓.9.png / iOS苹果storyboard 启动图片,做好满意了再给钱,不满意免费修改;

2.代上架安卓应用市场/苹果APP Store;

3.解决前/后端问题;

4.定制/二次开发app、小程序、各类网站系统。

价格便宜,包满意!包满意!包满意!

收起阅读 »

scroll-view触顶加载不顿卡

https://ext.dcloud.net.cn/plugin?id=11946

效果图

https://ext.dcloud.net.cn/plugin?id=11946

效果图

directive 不生效 自定义指令不生效

需求

  • 根据权限编码禁用按钮
  • 阻止当前 dom 绑定的点击事件,禁用状态(opacity 半透明?? 或者 display: none?? )

尝试

  • 开发环境用 Chrome 跑,一切正常,构建打包后去真机跑,按钮没控制住
  • (用 HBX -发行-原生应用 app 制作 wgt 包)开发环境: HBX: 3.7.9 系统: MacOS: 13.0.1 (Intel)
  • 通过 directive 绑定一个 v-auth 指令,在标签里 v-auth="’some auth code‘" 或者 v-auth="['code1', 'code2']"
  • directivebindinserted 两个钩子尝试过,最终确定为 el 在真机环境下,与开发环境的el 不是一个玩意

暂用平替方案

  • 全局 mixin 一个方法,判断权限后返回以控制当前 dom 是否可点击

    // path/auth.js  
    function checkAuth(value) {  
        if (  
            value === "" ||  
            (value instanceof Array && value.length === 0) ||  
            !value  
        ) {  
            return true;  
        }  
        const _value = [value].flat(); // 兼容入参为 string 和 array,拍平二维数组  
        const authBtns = uni.getStorageSync("authBtns");  
        if (authBtns === "*") return true;  
        const hasPermission = _value.every((e) => authBtns.includes(e));  
        return hasPermission;  
    }  
    const auth = {  
        install(Vue) {  
            // directive 在 app 下无法正常使用  
            // Vue.directive("auth", {  
            //  bind(el, binding, vnode, oldVnode) {  
            //      if (!checkAuth(binding.value, el)) {  
            //          el.style.opacity = "0.3";  
            //          el.style.pointerEvents = "none";  
            //      }  
            //  },  
            //  inserted(el, binding, vnode, oldVnode) {  
            //      if (!checkAuth(binding.value, el)) {  
            //          el.style.opacity = "0.3";  
            //          el.style.pointerEvents = "none";  
            //      }  
            //  },  
            // });  
            // 平替方案  
            Vue.mixin({  
                methods: {  
                    $auth(val) {  
                        if (!checkAuth(val)) {  
                            return [{ opacity: "0.3", pointerEvents: "none" }];  
                        }  
                        return [];  
                    },  
                },  
            });  
        },  
    };  
    
    // path/main.js  
    Vue.use(auth);  
    /*  (他妈的 DCloud 的 md 还不支持写两段代码语法??? 想分开一个 js 语法一个 html 语法的代码块,发现把我 14 的``` 解析成一对语法??23 的```直接忽略??) */  
    // vue文件中  
    <view :style="$auth('AUTH_CODE')">没有权限 AUTH_CODE 别点我</view>  
    <view :style="$auth(['CODE1', 'CODE2'])">没有权限 CODE1&2 别点我</view>

写在最后

官方 uni 文档写着支持 app 用 directive ,可能是我姿势不对,没用对吧。。

继续阅读 »

需求

  • 根据权限编码禁用按钮
  • 阻止当前 dom 绑定的点击事件,禁用状态(opacity 半透明?? 或者 display: none?? )

尝试

  • 开发环境用 Chrome 跑,一切正常,构建打包后去真机跑,按钮没控制住
  • (用 HBX -发行-原生应用 app 制作 wgt 包)开发环境: HBX: 3.7.9 系统: MacOS: 13.0.1 (Intel)
  • 通过 directive 绑定一个 v-auth 指令,在标签里 v-auth="’some auth code‘" 或者 v-auth="['code1', 'code2']"
  • directivebindinserted 两个钩子尝试过,最终确定为 el 在真机环境下,与开发环境的el 不是一个玩意

暂用平替方案

  • 全局 mixin 一个方法,判断权限后返回以控制当前 dom 是否可点击

    // path/auth.js  
    function checkAuth(value) {  
        if (  
            value === "" ||  
            (value instanceof Array && value.length === 0) ||  
            !value  
        ) {  
            return true;  
        }  
        const _value = [value].flat(); // 兼容入参为 string 和 array,拍平二维数组  
        const authBtns = uni.getStorageSync("authBtns");  
        if (authBtns === "*") return true;  
        const hasPermission = _value.every((e) => authBtns.includes(e));  
        return hasPermission;  
    }  
    const auth = {  
        install(Vue) {  
            // directive 在 app 下无法正常使用  
            // Vue.directive("auth", {  
            //  bind(el, binding, vnode, oldVnode) {  
            //      if (!checkAuth(binding.value, el)) {  
            //          el.style.opacity = "0.3";  
            //          el.style.pointerEvents = "none";  
            //      }  
            //  },  
            //  inserted(el, binding, vnode, oldVnode) {  
            //      if (!checkAuth(binding.value, el)) {  
            //          el.style.opacity = "0.3";  
            //          el.style.pointerEvents = "none";  
            //      }  
            //  },  
            // });  
            // 平替方案  
            Vue.mixin({  
                methods: {  
                    $auth(val) {  
                        if (!checkAuth(val)) {  
                            return [{ opacity: "0.3", pointerEvents: "none" }];  
                        }  
                        return [];  
                    },  
                },  
            });  
        },  
    };  
    
    // path/main.js  
    Vue.use(auth);  
    /*  (他妈的 DCloud 的 md 还不支持写两段代码语法??? 想分开一个 js 语法一个 html 语法的代码块,发现把我 14 的``` 解析成一对语法??23 的```直接忽略??) */  
    // vue文件中  
    <view :style="$auth('AUTH_CODE')">没有权限 AUTH_CODE 别点我</view>  
    <view :style="$auth(['CODE1', 'CODE2'])">没有权限 CODE1&2 别点我</view>

写在最后

官方 uni 文档写着支持 app 用 directive ,可能是我姿势不对,没用对吧。。

收起阅读 »

vue的动态路由注意事项

Vue

1.点击页面刷新按钮时,动态路由会消失需要重新执行动态添加路由的操作,并且需要执行next({...to}),及重新走刷新前的路由,这些判断一般在beforeEach中执行。

  1. 如何去判断路由是否需要进行重新执行动态路由添加,(1)通过判断vuex中你存的动态路由数组是否存在,一般操作时每次动态路由添加后进行对动态路由数组进行vuex储存.(2) 或者其他可以用于判断是否刷新的变量。
  2. 判断必须严谨,防止出现路由死循环。
继续阅读 »

1.点击页面刷新按钮时,动态路由会消失需要重新执行动态添加路由的操作,并且需要执行next({...to}),及重新走刷新前的路由,这些判断一般在beforeEach中执行。

  1. 如何去判断路由是否需要进行重新执行动态路由添加,(1)通过判断vuex中你存的动态路由数组是否存在,一般操作时每次动态路由添加后进行对动态路由数组进行vuex储存.(2) 或者其他可以用于判断是否刷新的变量。
  2. 判断必须严谨,防止出现路由死循环。
收起阅读 »

uni-app getcurrentpages()的坑

在微信小程序开发的时候用到getCurrentPages(),获取打开页面栈实例,返回的是一个是一个先进后出的栈结构,
let pages = getCurrentPages()
let currentPage = pages[pages.length -1] //可以获得当前页面,如果要获取指定页面的栈实例

let count = 0;
pages.forEach(e=>{ //如果打开多个页面,用遍历方式可获得指定页面并用
if(e.route == 'pages/xxx/xxx'){
可获得指定的页面栈实例
wx.navigateBack({delta: count})
}
})

但是在uni-app中在开发APP的时候,getCurrentPages()返回的是一个先进先出的队列结构,
let pages = getCurrentPages().reverse();
为什么要reverse()一下,如果你要用uni.navigateBack({delta: count}),这将会是一个坑count是统计你要返回的页面数量,如果不调用reverse()你会从队列的头开始遍历,但是count要从底部返回累计,所以getCurrentPages().reverse(); 后才能把原先的队列结构反过来,我们在进行遍历才能得到一个正确的顺序
let currentPage = pages[pages.length -1] //可以获得当前页面,如果要获取指定页面的栈实例

let count = 0;
pages.forEach(e=>{ //如果打开多个页面,用遍历方式可获得指定页面并用
if(e.route == 'pages/xxx/xxx'){
可获得指定的页面栈实例
uni.navigateBack({delta: count})
}
})

继续阅读 »

在微信小程序开发的时候用到getCurrentPages(),获取打开页面栈实例,返回的是一个是一个先进后出的栈结构,
let pages = getCurrentPages()
let currentPage = pages[pages.length -1] //可以获得当前页面,如果要获取指定页面的栈实例

let count = 0;
pages.forEach(e=>{ //如果打开多个页面,用遍历方式可获得指定页面并用
if(e.route == 'pages/xxx/xxx'){
可获得指定的页面栈实例
wx.navigateBack({delta: count})
}
})

但是在uni-app中在开发APP的时候,getCurrentPages()返回的是一个先进先出的队列结构,
let pages = getCurrentPages().reverse();
为什么要reverse()一下,如果你要用uni.navigateBack({delta: count}),这将会是一个坑count是统计你要返回的页面数量,如果不调用reverse()你会从队列的头开始遍历,但是count要从底部返回累计,所以getCurrentPages().reverse(); 后才能把原先的队列结构反过来,我们在进行遍历才能得到一个正确的顺序
let currentPage = pages[pages.length -1] //可以获得当前页面,如果要获取指定页面的栈实例

let count = 0;
pages.forEach(e=>{ //如果打开多个页面,用遍历方式可获得指定页面并用
if(e.route == 'pages/xxx/xxx'){
可获得指定的页面栈实例
uni.navigateBack({delta: count})
}
})

收起阅读 »

使用uniapp半年来感受和建议:对我这样小白是好东西,但是出现问题找答案难。建议官方利用chatgpt提升论坛搜索能力。

建议小白们看看bilibili上的“咸虾米”课程,讲得比较清楚,就是得耐心看。

另外,给官方一个建议:

咱们论坛的检索能力的确太弱了,希望能利用chatgpt给好好提升一下。应该能极大改进找bug解决方案。

anyway,我也尽量把自己的排雷教训发在论坛,大家相关学习。

继续阅读 »

建议小白们看看bilibili上的“咸虾米”课程,讲得比较清楚,就是得耐心看。

另外,给官方一个建议:

咱们论坛的检索能力的确太弱了,希望能利用chatgpt给好好提升一下。应该能极大改进找bug解决方案。

anyway,我也尽量把自己的排雷教训发在论坛,大家相关学习。

收起阅读 »

账号密码登录时遇到提示“密码错误”,但是明明密码没有修改。论坛和百度搜了半天,还是老老实实看文档解决了。分享如下:

现象:
账号密码登录时遇到提示“密码错误”,但是明明密码没有修改。

过程:
反思是在上传云函数之后,定位是修改了/uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json
但改回原来内容,仍存在同样问题。看文档,找到这个地方:
修改passwordSecret 【但是我并没有修改这个地方啊,困惑...后来仔细查看】
原来我当前这个文件中的内容是:
"passwordSecret":“xxxxxxxxxxx” 【具体值是文档中自带的】
和之前上传的文件中的内容不一致:
"passwordSecret": "passwordSecret-demo",

说明:

在config.json内修改passwordSecret会导致历史用户无法通过密码登录。但是某些情况下有些应用有修改passwordSecret的需求,例如刚开始使用uni-id时没有自定义passwordSecret,后续需要修改,此时可以使用uni-id 2.0.1版本新增的修改passwordSecret功能。(注意:2.0.1版本验证码表名调整为了opendb-verify-codes)

如何使用

下面以将passwordSecret从passwordSecret-demo修改为qwertyasdfgh为例介绍如何使用
// 旧config.json
{
"passwordSecret": "passwordSecret-demo"
}

// 新config.json
{
"passwordSecret": [{
"version": 1,
"value": "passwordSecret-demo"
},{
"version": 2,
"value": "qwertyasdfgh"
}]
}

继续阅读 »

现象:
账号密码登录时遇到提示“密码错误”,但是明明密码没有修改。

过程:
反思是在上传云函数之后,定位是修改了/uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json
但改回原来内容,仍存在同样问题。看文档,找到这个地方:
修改passwordSecret 【但是我并没有修改这个地方啊,困惑...后来仔细查看】
原来我当前这个文件中的内容是:
"passwordSecret":“xxxxxxxxxxx” 【具体值是文档中自带的】
和之前上传的文件中的内容不一致:
"passwordSecret": "passwordSecret-demo",

说明:

在config.json内修改passwordSecret会导致历史用户无法通过密码登录。但是某些情况下有些应用有修改passwordSecret的需求,例如刚开始使用uni-id时没有自定义passwordSecret,后续需要修改,此时可以使用uni-id 2.0.1版本新增的修改passwordSecret功能。(注意:2.0.1版本验证码表名调整为了opendb-verify-codes)

如何使用

下面以将passwordSecret从passwordSecret-demo修改为qwertyasdfgh为例介绍如何使用
// 旧config.json
{
"passwordSecret": "passwordSecret-demo"
}

// 新config.json
{
"passwordSecret": [{
"version": 1,
"value": "passwordSecret-demo"
},{
"version": 2,
"value": "qwertyasdfgh"
}]
}

收起阅读 »

4月26日,每日互动(个推)与您相约第六届数字中国建设峰会

4月26日-30日,第六届数字中国建设峰会及成果展览会将在福州隆重举行。本届峰会以“加快数字中国建设,推进中国式现代化”为主题,由国家网信办、国家发改委、科技部、工信部、国务院国资委、福建省人民政府共同主办,福州市人民政府等有关单位承办。

每日互动(个推)深耕数据智能赛道十余年,一直积极投身于数字中国和数字经济建设。今年每日互动也将携公司在垂直领域的最新探索和实践成果,再次亮相数字中国成果展览会(展位号:10号馆 10B11)。

数据智能服务商每日互动(股票代码:300766)成立于2011年,经过十多年的快速发展,公司沉淀了海量的数据资源,积累了深厚的数据治理、算法建模等技术实力。每日互动充分发挥数据和技术能力优势,面向用户增长、品牌营销、城市治理、公共管理等领域提供专业的数据智能服务和解决方案,助力行业客户及政府相关单位实现数字化转型升级。

本次数字中国建设峰会,每日互动将携数智化运营、数智营销、智慧交通等领域的创新实践成果亮相,期待与大家相聚福州,共话数据智能应用趋势,共探数字中国建设路径!

4月26日—30日
第六届数字中国建设峰会
每日互动展位号:10号馆 10B11
欢迎大家来现场参观和交流!

继续阅读 »

4月26日-30日,第六届数字中国建设峰会及成果展览会将在福州隆重举行。本届峰会以“加快数字中国建设,推进中国式现代化”为主题,由国家网信办、国家发改委、科技部、工信部、国务院国资委、福建省人民政府共同主办,福州市人民政府等有关单位承办。

每日互动(个推)深耕数据智能赛道十余年,一直积极投身于数字中国和数字经济建设。今年每日互动也将携公司在垂直领域的最新探索和实践成果,再次亮相数字中国成果展览会(展位号:10号馆 10B11)。

数据智能服务商每日互动(股票代码:300766)成立于2011年,经过十多年的快速发展,公司沉淀了海量的数据资源,积累了深厚的数据治理、算法建模等技术实力。每日互动充分发挥数据和技术能力优势,面向用户增长、品牌营销、城市治理、公共管理等领域提供专业的数据智能服务和解决方案,助力行业客户及政府相关单位实现数字化转型升级。

本次数字中国建设峰会,每日互动将携数智化运营、数智营销、智慧交通等领域的创新实践成果亮相,期待与大家相聚福州,共话数据智能应用趋势,共探数字中国建设路径!

4月26日—30日
第六届数字中国建设峰会
每日互动展位号:10号馆 10B11
欢迎大家来现场参观和交流!

收起阅读 »

个推打造消息推送专项运营提升方案,数据驱动APP触达效果升级

消息推送


“数智化运营”能力已成为企业的核心竞争力之一。借助数据和算法,构建完善的数智化运营体系,企业可增强用户洞察和科学决策能力,提高日常运营效率和投入产出比。近半年,个推精准把握行业客户的切实需求,将“数智化运营”思维和能力在消息推送场景率先落地。聚焦消息“到达”“点击”等关键运营指标,个推最新推出了专项运营提升方案,提供更全面的分析以及更准确的归因,帮助APP强化与用户的连接,使消息推送更出成效。

01打通数据流,实现推送场景降本增效
个推一直倡导“在合适的时间、合适的地点、合适的场景,把合适的内容推送给合适的人群”。在本次专项运营提升方案中,个推打通了整个推送链路上的数据流,支持APP便捷地分析各维度、各环节的数据,并从中挖掘合适的消息下发时机、场景、内容及人群。

比如APP运营人员可以对用户属性、设备状态、设备使用场景等维度综合分析,预测出最佳的用户触达时机,实现“亮屏推送”,在“合适的时间”“合适的场景”下完成消息下发,提升消息到达率和点击率;运营人员也可以结合用户的行为特征,实现“智能配额”,在保障消息到达的同时节约厂商额度,实现在用户触达场景中的“降本增效”。

02标签+模型圈人,提升推送点击率
数智化运营的本质在于以用户为中心,通过数据驱动运营增长。个推也强调APP做消息推送要从用户的内在需求出发,给“合适的人群”推送“合适的内容”。个推借助数智化技术帮助APP实现人群和内容的精准匹配,从而提升推送点击率。
具体实现方式有两种,一是“根据人群创作内容”,二是“根据内容匹配人群”。

  • 根据人群创作内容
    不同的细分人群其兴趣偏好也呈现差异化的特征。个推提供用户画像洞察的能力,帮助APP深入、细致、全面地了解目标用户群的线上线下偏好特征,针对性地撰写更能激发他们兴趣和好奇心的推送文案,提升消息推送的点击率。此外,APP也可以结合自身业务数据和个推数据能力,自定义标签规则,对用户进行分层,针对不同的特征人群推送相应的内容,实现更加高效率、精细化的用户沟通。

  • 根据内容匹配人群
    个推还使用AI技术,打造“智选人群”功能,帮助APP基于活动文案找到对应的目标用户群。借助AI对文本语义的学习和理解,个推帮助APP提取出推送文案的内容特征,并结合算法模型,预测出对文案有高点击偏好的用户群体,进行定向触达,提升推送点击率。

作为个推本次专项运营提升方案中的一大亮点,个推智选人群功能一经推出就得到了众多客户的关注。知名游戏社交APP和个推合作,使用“智选人群”功能优化推送策略,通过AI模型预测出高点击人群,使推送点击率提升了119.93%。

03后效数据回流,持续优化运营策略
数智化运营是一项长期工程,个推专项运营提升方案帮助APP将宝贵的数据资产、推送策略及运营经验沉淀下来,构建可以持续进化、迭代的数智化运营体系。

比如,个推提供完善的推送数据报表。借助快速回流的后效数据,APP一方面可以结合A/B test分组推送等功能,对不同的人群、推送文案、推送时机进行测试对比,帮助优化推送策略;另一方面APP也可以将后效数据“喂”给AI模型继续学习,不断提升模型的预测能力。而在每一次推送和运营活动中表现出高点击、高转化的优质人群和优质文案,APP也可以将其沉淀下来,形成模板,用于下一次的推送或广告投放。

综上,个推专项运营提升方案围绕用户触达这一环节,将消息推送、数据分析、算法模型等能力以及自身积累的丰富运营经验整合,为APP开展数智化运营提供切实可行的场景入口。以推送场景应用为起点,个推将持续打磨数智化运营解决方案,进一步为APP运营全链条增能提效,助力APP业务增长。

新用户限时福利
@各位APP开发运营人员看过来:
即日起至4月30日,在个推官网开发者中心完成注册的APP(含企业用户与个人用户),可享个推消息推送VIP功能免费用30天。完成注册者可扫描下方二维码,添加@个推服务运营领取权益。

扫码添加个推服务运营↑

继续阅读 »


“数智化运营”能力已成为企业的核心竞争力之一。借助数据和算法,构建完善的数智化运营体系,企业可增强用户洞察和科学决策能力,提高日常运营效率和投入产出比。近半年,个推精准把握行业客户的切实需求,将“数智化运营”思维和能力在消息推送场景率先落地。聚焦消息“到达”“点击”等关键运营指标,个推最新推出了专项运营提升方案,提供更全面的分析以及更准确的归因,帮助APP强化与用户的连接,使消息推送更出成效。

01打通数据流,实现推送场景降本增效
个推一直倡导“在合适的时间、合适的地点、合适的场景,把合适的内容推送给合适的人群”。在本次专项运营提升方案中,个推打通了整个推送链路上的数据流,支持APP便捷地分析各维度、各环节的数据,并从中挖掘合适的消息下发时机、场景、内容及人群。

比如APP运营人员可以对用户属性、设备状态、设备使用场景等维度综合分析,预测出最佳的用户触达时机,实现“亮屏推送”,在“合适的时间”“合适的场景”下完成消息下发,提升消息到达率和点击率;运营人员也可以结合用户的行为特征,实现“智能配额”,在保障消息到达的同时节约厂商额度,实现在用户触达场景中的“降本增效”。

02标签+模型圈人,提升推送点击率
数智化运营的本质在于以用户为中心,通过数据驱动运营增长。个推也强调APP做消息推送要从用户的内在需求出发,给“合适的人群”推送“合适的内容”。个推借助数智化技术帮助APP实现人群和内容的精准匹配,从而提升推送点击率。
具体实现方式有两种,一是“根据人群创作内容”,二是“根据内容匹配人群”。

  • 根据人群创作内容
    不同的细分人群其兴趣偏好也呈现差异化的特征。个推提供用户画像洞察的能力,帮助APP深入、细致、全面地了解目标用户群的线上线下偏好特征,针对性地撰写更能激发他们兴趣和好奇心的推送文案,提升消息推送的点击率。此外,APP也可以结合自身业务数据和个推数据能力,自定义标签规则,对用户进行分层,针对不同的特征人群推送相应的内容,实现更加高效率、精细化的用户沟通。

  • 根据内容匹配人群
    个推还使用AI技术,打造“智选人群”功能,帮助APP基于活动文案找到对应的目标用户群。借助AI对文本语义的学习和理解,个推帮助APP提取出推送文案的内容特征,并结合算法模型,预测出对文案有高点击偏好的用户群体,进行定向触达,提升推送点击率。

作为个推本次专项运营提升方案中的一大亮点,个推智选人群功能一经推出就得到了众多客户的关注。知名游戏社交APP和个推合作,使用“智选人群”功能优化推送策略,通过AI模型预测出高点击人群,使推送点击率提升了119.93%。

03后效数据回流,持续优化运营策略
数智化运营是一项长期工程,个推专项运营提升方案帮助APP将宝贵的数据资产、推送策略及运营经验沉淀下来,构建可以持续进化、迭代的数智化运营体系。

比如,个推提供完善的推送数据报表。借助快速回流的后效数据,APP一方面可以结合A/B test分组推送等功能,对不同的人群、推送文案、推送时机进行测试对比,帮助优化推送策略;另一方面APP也可以将后效数据“喂”给AI模型继续学习,不断提升模型的预测能力。而在每一次推送和运营活动中表现出高点击、高转化的优质人群和优质文案,APP也可以将其沉淀下来,形成模板,用于下一次的推送或广告投放。

综上,个推专项运营提升方案围绕用户触达这一环节,将消息推送、数据分析、算法模型等能力以及自身积累的丰富运营经验整合,为APP开展数智化运营提供切实可行的场景入口。以推送场景应用为起点,个推将持续打磨数智化运营解决方案,进一步为APP运营全链条增能提效,助力APP业务增长。

新用户限时福利
@各位APP开发运营人员看过来:
即日起至4月30日,在个推官网开发者中心完成注册的APP(含企业用户与个人用户),可享个推消息推送VIP功能免费用30天。完成注册者可扫描下方二维码,添加@个推服务运营领取权益。

扫码添加个推服务运营↑

收起阅读 »