以前,在用户点击小程序睁羡模内按钮后,开发者必须在7天内给用户下发模板消息,但模板消息不仅难以完全满足信息推送诉求,还有可能对用户带来困扰。
现在,模板消息优化,改为用户自主订阅消息,用户有了更多的主动权,开发者更是有一次性和长期性模板消息两种选择,服务形成闭环,订阅消息将成为用户回到小程序的又一方式,助力提升用户留存。
还在用小程序模板消息的你,赶紧加快脚步跟上来吧,这里奉上一份 *** 作指南,希望能帮到你~
订阅消息是需要用户主动订阅 ,开发者才可以面向用户发送的消息派迅。路径示意如下:
关键要素如下 :
订阅消息下发条件:用户自主订阅
订阅消息推送位置:服务通知
订阅消息卡片跳转能力:点击查看详情可跳转至该小程序的页面
模板消息
当用户在小程序内完成特定的交互行为(支付或提交表单行为)来收集 formid,后续利用该 formid 可以在 7 天内任意时间给该用户推送模板消息。
发送模板消息一定要携带 formid
推送的有效时间为 7 天
用户只能被动选择接收,下发的权利掌握在开发者手上
订阅消息
当用户在小程序内点击特定按钮后会d出申请订阅d窗,同意后小程序可在后续任意时间给该用户推送服务通知。较模板消息,订阅消息有如下几个特点:
01.选择权在用户手中
在小程序里,订阅消息像是一个开关,需要用户主动点击授权之后,开发者才能向其推送服务通知。
02.时长不受限制
订阅消息没有7天内推送消息的时间限制,只要用户没有主动拒收消息推送,就可悉缓以随时推送服务通知。
03.安全系数更高
原来的模板消息,用户被动接收,更容易被投诉、举报,封禁功能的风险系统极高。而订阅消息恰恰相反,订阅消息由用户主动订阅,即用户愿意接收由小程序发送的相关消息,更符合微信的绿规。
接入订阅消息的步骤,主要分三步:
1.选择订阅消息模板
进入微信小程序后台,选择/添加小程序服务类目,微信将自动根据类目分配消息模板到你的公共模板库,你可在公共模板库中,选择合适的模板(或者申请新模板,申请新模板须审核后才可使用)。
订阅消息的模板与小程序所属类目直接挂钩,如果删除小程序类目,该类目对应的订阅消息模板也将一并删除,请特别留意。
2.将订阅消息的触发埋入用户交互流程中
申请发送订阅消息,需要用户手动在小程序进行触发。将订阅消息的触发设计到小程序的交互流程中,用户点击后,才能触发订阅申请d窗。
3.用户点击触发后,下发订阅消息发送申请d窗
用户勾选同意下发的模板,点击“允许”后,就可以用该模板进行推送。
关于订阅消息的使用,我建议:
1.关于订阅时机 :让用户在需要用到消息的时候,触发订阅机制,而不要让用户一打开小程序就进行订阅;
2.关于订阅内容 :引导用户订阅跟用户当前的服务相关的模板消息,其他暂时用不到的模板建议等用户用到之后再订阅,以免用户产生误解而取消订阅;
3.关于订阅流程 :建议开发者将订阅消息融入到自然的产品体验流程中;
4.关于强制订阅 :不建议进行强制订阅,避免出现用户不订阅就无法进行下一步 *** 作的情况,引起用户反感。
当然,还有这些关于运营的Tips:
新的订阅消息下发条件,有什么规范要求?
为了给用户提供更好的使用体验,开发者不可强制用户订阅,也不可下发与用户预期不符或违反国家法律法规的内容。具体可参考文档: 《小程序订阅消息接口运营规范》 。
我是产品运营,如何对我们的用户创建推送?
消息推送需要开发调用接口下发订阅消息,包括将订阅消息的触发设计到小程序的交互流程中,均需开发才可实现,目前微信没有提供推送的可视化产品服务。
「小神推」 是专注于小程序的粉丝推送平台,基于微信的订阅消息的推出,从选择订阅消息模板,配置订阅消息的触发,收集用户订阅数据,创建推送触达用户,到统计用户召回效果, 「小神推」 提供了一整套的产品服务,实现配置推送可视化,降低推送消息的开发成本,精准匹配目标用户,帮你实现精细化运营,助力小程序提高用户留存。
如何收集更多的订阅用户?
若要提高订阅用户的数量,可参考如下两种方法:
方法一:多场景配置触发订阅环节及消息模板 针对不同场景下的订阅消息发送需求,用户触发的场景也可以多样化, 「小神推」 支持可视化配置触发订阅环节,随时按需配置或者禁用。支持消息模板的增删改查,保持与微信实时同步。
以餐饮行业为例:(以下场景仅示例,开发者可灵活配置)
方法二:引导取消订阅消息的用户重新订阅
假设用户在订阅申请d窗中,勾选了“总是保持以上选择,不再询问”,并点击了“取消”,则用户取消了订阅,可引导用户重新订阅。
可引导用户点击小程序右上角“···”,进入设置页,点击消息订阅-点击接收订阅消息。
最近在做一款拼课类小程序,大概需求就是分享课程页面给好友,好友参与达到一定数量后则拼课成功。
按理说很平常的需求,微信公众号里边应该很容易实现,但是想在小程序里边实现这么个功能却有点蛋疼了。
为什么小程序实现起来比较费劲呢,那就要说下小程序发送模板消息的机制了,先看文档怎么说:
划重点, 本人 、 交互 ,也厅液改就是说这个模板消息,必须由用户手动来触发,你想后台定时给用户推个消息,洗洗睡吧你。
再来看下面:
这个重点你们自己划吧,发模板消息必须满足这两种情况中的一种,支付就不说了,用户付款后可以推送几条消息,重点是这个 表单提交 。
意思就是我想给用户发个模板消息,第一要搞个表单,第二要让用户来提交这个表单(获取formId),而且这个模板消息还只能发给提交表单的用户本人,你想发给别的用户,呵呵。
好了,说多了都是气,既然这样设计,也是有一定道理,但是道理都是讲给守规矩的人听的,至于不守规矩的,喂!说的就是你。
通过上面的分析埋扮我们知道,想发送一个基本的模板消息需要以下步骤:
模板消息接口 POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN 有这么几个参数 :
前面扯了一堆概念,下面我们来把这个功能具体的实现一遍吧,我这里后台用的是php laravel,原理都一样。
我这只写一个例子,一看就明白
有些时候用户 *** 作频繁,可能会导致服务器收到大量请求,所以可以优化下,把formId先存到一个全局变量里边(数组),当达到一定数量后统一发给后台来保存。这块可以灵活运用。
服务端的实现也就两个功能, 收集 和 发送 。
假设我们现在有这么一个类FormIdCollection,可以收集(save)和获取(get)某个openid的formId,那我们给前台暴露的api只需要简单的调用下就可以了,至于发消息,也只需要get一个formId,即可。
下面是FormIdCollection类的一个具体实现,基于laravel(说实话,挺好用的),另外扮判引入了一个微信开发包 overtrue/wechat (这里主要是用来发模板消息、有点大材小用了), https://www.easywechat.com/
我已经封装了一个laravel扩展包,感兴趣的朋友可以上github上看下 https://github.com/laravuel/laravel-wfc 。
至于非框架的php实现,小伙伴可以帮忙弄下。
微信小程序推送服务通知需要收集足够的formid,使用过程中发现如果formid大量失效,在使用递归宏纳从redis从获取可用formid的时候会导致栈握拆溢出问题,下面方法是蔽皮没使用php的高阶函数来消除递归,完美解决问题,记录之:
<?php
class A
{
public static function factorial($n, $accumulator = 1) {
if ($n == 0) {
return $accumulator
}
return function() use($n, $accumulator) {
return self::factorial($n - 1, $accumulator * $n)
}
}
public static function trampoline($params) {
$result = call_user_func_array('self::factorial', $params)
while (is_callable($result)) {
$result = $result()
}
return $result
}
public static function run()
{
var_dump(self::trampoline(array(500)))
}
}
A::run()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)