
提高选择加入率的策略
推送选择加入率更多取决于何时以及如何询问,而不是系统提示本身说了什么。把提示作为策略来运营的应用,其表现始终优于在首次启动时就直接弹出提示的应用。下面的原则是各个构建单元,随后的示例策略展示了如何把它们组合成一份具体的方案。核心原则
- 在价值时刻之后再询问。 等到用户刚刚经历了一件值得收到通知的事情:完成入门引导、收藏内容、关注话题、下单,或结束首次会话。在用户还没弄清楚应用能做什么的首次启动时提示,是低选择加入率最主要的原因。
- 在 iOS 上从临时通知开始。 临时通知会静默送达通知中心而无需任何提示,让用户基于真实的内容决定是否保留,而不是依据一个假设性的说明。这在 iOS 上通常是转化率最高的路径,应作为默认起点。
- 用应用内软提示说明价值。 软提示是一条 OneSignal 应用内消息,告知用户您会发送什么类型的通知以及它们为何重要。关闭软提示不会消耗系统提示的次数,因此您可以稍后再向尚未准备好的用户重新询问。
- 重新询问关闭了软提示的用户,而不是系统提示。 将软提示配置为按一定节奏(例如每
2 weeks)重新出现。尚未准备好的用户会获得再次决定的机会,同时不会耗尽系统提示的次数。 - 持续迭代文案与时机。 上线软提示后,观察消息报表中的转化率,然后调整触发器、文案与频率。对时机与文案的小幅调整常常能把选择加入率提升几十个百分点。
示例:新用户引导选择加入策略
本示例把用于在 iOS 上快速获得触达的临时通知,与在价值时刻出现、用于完整选择加入的软提示结合起来。请将其作为起点,并根据自己的应用调整通知类型与价值时刻。对于 Android 与华为应用,请跳过阶段 1,直接从阶段 2 开始。 阶段 1:iOS 静默触达- 在 OneSignal 仪表板中前往 Settings > Apple iOS > Advanced Configuration > Enable iOS 12 direct to history,开启临时授权。
- 在用户使用应用的第一周内发送 2 到 3 条高质量通知。请选择能够证明订阅价值的内容:个性化推荐、突发新闻提醒或每周摘要。用户会在通知中心静默收到它们,无需任何提示。
- 在 Messages > In-App 中创建一条软提示,引用用户已经体验到的价值。示例标题:“在锁屏上获取突发新闻提醒。”
- 将受众设置为 Show to all users。Push Permission Prompt 点击操作会自动过滤为仅面向未订阅用户。
- 在高信号事件上触发消息:打开或与一条临时通知交互、关注某个话题、将商品加入购物车,或 5 分钟的会话时长。
- 在 CTA 按钮上添加 Push Permission Prompt 点击操作。
- 将计划设置为 Multiple times,每用户最多
20次,两次显示之间间隔2 weeks(大约 10 个月的重复提示周期)。
- 在 1 到 2 周之后,查看消息报表中”提示到选择加入”的转化率。
- 使用 SDK 监听器对完整漏斗进行埋点:软提示点击、关闭以及系统提示的最终结果。将这些事件转发到您的分析工具。
- 依据数据每次只调整一个变量(触发事件、标题、CTA 文案,或两次展示之间的间隔)。
选择合适的方式
您有三种方式可以借助 OneSignal 增长推送订阅者规模。大多数 iOS 应用应把临时通知与应用内软提示结合使用;大多数 Android 应用应从软提示入手。| 方式 | 平台 | 工作原理 | 使用场景 |
|---|---|---|---|
| 应用内软提示(推荐) | iOS、Android、华为 | 配置一条带有 Push Permission Prompt 点击操作的 OneSignal 应用内消息。点击按钮会弹出系统提示,而关闭应用内消息不会消耗任何次数,因此稍后可以再次询问。 | 默认选择。无需发布新版本即可设计、排期、定向以及重新展示提示。 |
| 编程式提示 | iOS、Android、华为 | 在应用代码中调用 requestPermission() 或 optIn(),系统提示会立即出现。 | 由应用自身控制触发时机的自定义流程:偏好中心、个人资料页,或触发提示时机合适的应用内事件。 |
| 临时通知 | iOS | 在 OneSignal 仪表板中开启。用户会在通知中心静默收到通知,无需任何提示,并可通过点击 Keep 转化为完整订阅者。 | iOS 用户引导以及低摩擦触达。与软提示搭配可将静默订阅者转化为完整推送订阅者。 |

前提条件
- 一个 OneSignal 账户。
- 一个已安装 OneSignal SDK 并启用了
OneSignalInAppMessages包的移动应用。
设置应用内推送权限提示
移除任何自动权限提示
在开始之前,请确保您的应用没有在自动触发系统权限提示:
- 移除应用启动时调用的
requestPermission()或optIn()。 - 移除对
requestAuthorizationWithOptions的原生 iOS 调用,以及任何直接生成推送令牌的代码。 - 移除对
requestPermissions的 Android 调用,以及任何直接生成推送令牌的代码。
创建或编辑应用内消息
前往 Messages > In-App,然后执行以下任一操作:
将受众设置为 Show to all users。OneSignal 会根据 Push Permission Prompt 点击操作自动过滤这条消息,仅向未订阅推送的用户显示。
- 编辑默认的 Push Permission Prompt 模板,或
- 点击 New Message 创建您自己的消息。


自定义消息设计
添加 Push Permission Prompt 点击操作
向消息中的任意按钮或图像添加 Push Permission Prompt 点击操作。点击时会显示系统权限提示。

如果用户已经达到系统权限提示的最大拒绝次数(iOS 上一次,Android 上两次),点击操作会改为将他们引导到您应用的通知设置。这等同于在 SDK 中调用


requestPermission(fallbackToSettings: true)。带有 Push Permission Prompt 点击操作的应用内消息不会向已经允许通知的用户显示。
选择触发器
受众控制谁有资格看到消息,触发器控制它何时出现。目标是把提示触发在价值时刻:用户刚刚经历了值得收到通知的事情的那一刻。
触发器选项,大致按转化率从低到高排列:

- 应用打开时。 简单,但通常并非最佳。仅在应用价值可以在几秒内清晰展现时使用。
- 在设定的会话时长之后。 一个不错的默认选项。等用户探索过应用之后再询问。
- 在特定用户事件上。 转化率最佳。在高信号动作后触发,例如完成入门引导、收藏内容、关注话题或完成首次购买。
- 以编程方式,使用应用内消息触发器 SDK 方法。可完全控制时机与上下文,包括在提示前综合多个信号。

以编程方式显示权限提示
您可以使用requestPermission() 或 optIn() SDK 方法手动触发系统权限提示。这在以下自定义流程中非常有用:
- 偏好中心。
- 用户资料屏幕。
- 特定的应用内事件。
requestPermission() 传入 fallbackToSettings: true,这样已经拒绝过的用户会被重定向到应用的通知设置,而不是静默地什么都不做。
如果一个订阅已经在 SDK 层面通过
optOut() 退订(在订阅记录中显示为 notification_types: -2),仅调用 requestPermission() 不会改变订阅状态。请改用 optIn(),它会请求权限并清除退订状态。使用 iOS 临时通知
临时推送通知在 iOS 12 中引入。它们允许您在不显示权限提示的情况下将通知送达通知中心。用户会看到您应用发出的真实内容,并基于这一体验决定是保留、静音,还是关闭通知。 为什么它作为策略有效:- 没有会失败的系统提示。您可以在用户的第一次会话就开始触达他们,无需任何前置的选择加入决定。
- 用户基于真实价值而非假设性说明做决定。
- 之后您仍可以展示软提示,把临时用户转化为拥有横幅、声音以及锁屏提醒的完整推送订阅者。

跟踪推送权限和提示结果
- 使用应用内消息点击监听器跟踪用户在软提示中点击了哪个按钮。
- 使用应用内消息生命周期监听器跟踪展示次数与关闭(即用户看到但未点击软提示的情况)。
- 使用推送权限观察者跟踪系统权限提示本身的结果。
您可以将这些 SDK 事件转发到您选择的后端或分析工具。
常见问题
如果用户拒绝系统权限提示会发生什么?
在 iOS 上,拒绝系统权限提示会永久禁用您应用的推送通知,且提示无法再次显示。在 Android 上,用户还有一次机会(合计两次)。所有机会用完之后,用户必须在其设备的设置 > 通知中手动重新启用通知。Push Permission Prompt 点击操作以及requestPermission(fallbackToSettings: true) 都会通过将用户直接引导到通知设置来处理这种情况。
我可以自定义原生系统权限提示吗?
不可以。iOS 和 Android 上的系统权限提示由操作系统控制,无法自定义。您只能自定义软提示(在其之前显示的应用内消息)。使用软提示来说明通知的价值、设定预期,并提升在系统提示上获得”Allow”的可能性。我还能向使用临时通知的用户显示提示吗?
可以,而且您应当这样做。临时通知用户是软提示的最佳候选对象,因为他们已经真实地看到过您应用的通知。推荐的模式请参阅使用 iOS 临时通知。将软提示的时机安排在用户刚打开或与临时通知交互之后。如何重新提示之前拒绝了推送的用户?
一旦系统权限提示已用尽(iOS 上一次,Android 上两次),您就无法再次显示它。请改用requestPermission(fallbackToSettings: true) SDK 方法,或在应用内消息上使用 Push Permission Prompt 点击操作。两者都会打开您应用的通知设置,让用户可以手动启用通知。请搭配一条说明通知价值的应用内消息一起使用。
所有 Android 版本都需要系统权限提示吗?
不需要。仅 Android 13(API 级别 33)及以上版本需要。Android 13 引入了运行时通知权限,要求用户对推送通知给出明确同意。- 发布时间: 2022 年 8 月(Pixel 设备)。
- 目标 SDK 要求: 自 2023 年 8 月 31 日起,Google Play 上的所有新应用和更新必须以 API 级别 33 或更高版本为目标。
- 来源: Google 的通知权限开发者指南。
iOS 临时推送通知
在 iOS 12+ 上无需事先弹出权限提示即可将通知发送到通知中心。
移动 SDK 参考
requestPermission、optIn、权限观察者以及应用内消息点击监听器 API。网页推送权限提示
配置软提示、下拉式提示以及原生网页推送权限请求。
应用内消息设置
在应用中启用应用内消息,以便运行软提示。

