跳到内容

Push Permission Status 标签

Push Permission Status 是一个默认标签,用于存储设备上推送通知权限的状态。您可以用它构建可触达性细分,区分简单的开/关标志无法区分的用户,例如仍可请求权限的用户和已经拒绝的用户。

Push Permission Status 的值

Anchor link to

该标签是 String 类型的标签,为每个应用中的每台设备存储以下值之一。每个平台只上报其中的一部分。请参阅各平台上报的值。

值
含义
not_determined用户尚未回应权限提示,因此应用仍可请求权限
granted_explicit用户在权限提示中允许了通知
granted_default通知已被允许,但不是通过回应 Pushwoosh SDK 的权限提示。仅限 Android
provisional通知被临时授权(provisional)。通知会静默进入通知中心,没有提醒、声音或横幅。仅限 iOS
ephemeral通知在有限时间内被允许,例如用于 App Clip。仅限 iOS
denied用户关闭了通知,无论是在提示中还是之后在设备或浏览器设置中
unsupported浏览器无法接收 Web 推送通知。仅限 Web

在 tvOS 和 macOS 上,以及 SDK 版本低于以下版本的设备上,该标签没有值:

平台最低 SDK 版本
iOS7.2.10
Android6.17.0
Web3.95.0

标签何时更新

Anchor link to

SDK 会在以下时刻上报当前状态:

  • 每次打开应用时。
  • 设备注册推送通知时。
  • 用户回应权限提示之后立即上报。

如果用户在设备或浏览器设置中更改权限,标签会稍后更新,具体取决于平台:

平台标签何时更新
iOS下次打开应用时
Android下次打开应用或应用回到前台时
Web:基于 Chromium 的浏览器和 Firefox浏览器报告更改后立即更新
Web:Safari下次加载页面时

当请求不包含状态时(例如来自较旧的 SDK 版本),标签会保留其最后一个值。

各平台上报的值

Anchor link to

每个平台都通过自己的系统 API 读取权限,因此不同平台的值集合有所不同。

iOS SDK 将应用的系统授权状态直接映射到该标签。

iOS 授权状态Push Permission Status
Not determinednot_determined
Authorizedgranted_explicit
Provisionalprovisional
Ephemeralephemeral
Denieddenied

Android 13 及更高版本要求用户在权限提示中允许通知。更早的版本在安装后默认允许通知,因此 Android SDK 会区分明确的回应和默认授权:

  • granted_explicit:在 Android 13 或更高版本上,且应用的目标版本为 Android 13(API 级别 33)或更高时,用户在 Pushwoosh SDK 显示的权限提示中允许了通知。
  • granted_default:通过其他任何方式允许了通知。包括 Android 12 及更早版本、目标 API 级别低于 33 的应用、SDK 首次检查时权限已被允许的情况,以及通过您自己的提示或系统设置允许的权限。
  • not_determined:在 Android 13 及更高版本上,通知处于关闭状态,且用户尚未回应提示,包括用户未做选择就关闭了提示的情况。
  • denied:用户拒绝了提示,或通知之前被允许后又被关闭。在 Android 12 及更早版本上,任何关闭了通知的设备都会上报 denied。

浏览器只有在用户点击允许后才会允许通知,因此 Web 设备永远不会上报 granted_default。

浏览器权限Push Permission Status
尚未询问(default)not_determined
已允许(granted)granted_explicit
已阻止(denied)denied
浏览器不支持 Web 推送unsupported

构建可触达性细分

Anchor link to

在一个 Push Permission Status 筛选条件中,使用 为以下之一 运算符组合多个值,即可按触达方式定位用户。详细了解如何按标签构建细分。

细分筛选条件使用方式
能看到推送提醒的用户为以下之一 granted_explicit、granted_default发送时效性强的推送通知
仅静默送达为以下之一 provisional、ephemeral预期可见度较低,并邀请这些用户允许完整通知
仍可请求权限的用户为以下之一 not_determined在推送权限提示前显示应用内消息
已拒绝的用户为以下之一 denied通过电子邮件、短信或应用内消息触达他们,或运行选择退出恢复弹窗
不支持 Web 推送的浏览器为以下之一 unsupported为这些 Web 用户使用其他渠道

要查找尚未上报该标签的设备,请使用 未设置 运算符。这些设备运行的是较旧的 SDK 版本,因此请改用 Push Alerts Enabled 来定位它们。关于两个标签的区别,请参阅 Push Permission Status 与 Push Alerts Enabled。

Push Permission Status 与 Push Alerts Enabled

Anchor link to

这两个标签回答的是不同的问题:

  • Push Alerts Enabled(Boolean):此设备现在能否显示推送提醒?
  • Push Permission Status(String):权限处于什么状态?它能区分 Push Alerts Enabled 都上报为 false 的状态,例如从未询问和已拒绝。

下表比较了两个标签如何上报常见状态。

Push Alerts EnabledPush Permission Status
类型BooleanString
从未请求过权限falsenot_determined
拒绝了权限falsedenied
iOS 上的临时授权或限时权限取决于提醒、声音和角标设置provisional 或 ephemeral
明确授权或默认授权设备显示提醒时为 truegranted_explicit 或 granted_default
使用较旧 SDK 版本的设备所有 SDK 版本都会上报未设置

根据您需要回答的问题选择标签:

  • 如需快速统计所有 SDK 版本中已选择接收通知的用户数,请使用 Push Alerts Enabled。
  • 当下一步取决于用户无法触达的原因时,请使用 Push Permission Status。例如,向从未被询问过的用户请求权限,不打扰已拒绝的用户。