iOS Push Permission and Reachability

Overview - Push Permission

Push notifications permission is an app-level permission that your app gets on a user's device. This permission is required to display push notifications on their notification trays. If this permission is turned off, the notifications that you send are not visible to the user; they are delivered to your app in their device in the background.


How Does Push Permission Work?

Apps are not automatically granted permission to send notifications. This means that users must provide explicit permission for apps to send them notifications, and they are opted-out by default.

Push notification permission in iOS requires apps to request permission from users before they can send notifications. When a user installs an app on a device with iOS, the app cannot send notifications until the user grants permission.

Apps can control when and where the prompt to grant permission is displayed to a user.

The Push permission pop-up is displayed on an iOS device for an app only once for users to grant the push permission.

  • If the user grants permission, the app can send notifications to the user.
  • If the user denies or ignores the permission, the app cannot send notifications to the user. After this, the user will not be prompted again unless the user reinstalls the app. However, they can still go to the app's notification settings and change the permission.

The Push notification permission on iOS devices is reset on every reinstall and clear data. However, this permission is retained on OS upgrades. When the user upgrades the device from an older iOS version to a higher iOS version:

  • If the app does not have permission in the older iOS, the app cannot send notifications until the user grants permission.
  • If the app had permission in the older iOS, the app can send notifications.

Tracking Push Permissions

To enable iOS to push notification Opt-in or Opt-out tracking, upgrade to MoEngage Core SDK version after 17th April. MoEngage SDK tracks the device's opt-in status by default. The opt-in status of the user’s devices is tracked by the “Reachability Push iOS” user attribute.

This attribute may have the following values:

Value Description
201 - Reachable and opted in This applies to all users with a valid push token and are opted-in from at least one iOS device.
202 - Not reachable due to opt-out This applies to all users who have opted out from all their iOS devices where they had a valid push token.
200 - Reachable and opt-in status unknown This applies to users who are on older MoEngage SDK versions where push permission status is not tracked and have a valid push token.




After upgrading your MoEngage SDK on iOS devices, you may see a change in iOS or Web total reachable user count and sent count as opted-out users are no longer considered reachable. Rest assured, your delivery rates and campaign interactions such as click counts and conversion counts will remain unaffected.

You can query the Reachability Push iOS attribute using a segmentation query to get counts of each of these users independently by navigating to Segment > Create Segment on the MoEngage Dashboard.

Tracking Changes in Push Permission

The following are the events for iOS Push reachability:

Name Description Platform
Subscribed to Push Tracked when a user subscribes to Push Notifications. iOS
Unsubscribed to Push Tracked when a user directly unsubscribes from Push Notifications. iOS

Opt-In Method

iOS Push permission uses the "Two Step Opt-In" method to obtain opt-ins from users:

A double opt-in or a two-step opt-in involves asking the user's permission in two steps. You set the context first in the first step and then take the user to the notification settings to enable push notifications from your app. The prerequisite and campaign setup for the two-step opt-in method are discussed below.

Prerequisite for two-step opt-in

Integrate In-app notifications in MoEngage SDK 12.6.00 and above and InApp version 6.5.0 or above, refer to the release notes for compatible version of the core SDK.

Pre-permission messages

Using In-app notifications, you can create pre-permission messages that can give the context to the user on why they should allow Push notifications for your app. Since you cannot trigger the iOS native push prompt if the user explicitly denies permission, they must go to the app's notification settings and change the permission.

Campaign set-up for showing the two-step opt-in prompt


  • Request notification permission
    If the user is eligible, this action triggers the iOS native notification permission. If the user has already declined the prompt, they will be directed to the application notification settings screen manually where they can manage notification permission.
  • Navigate to Notification Settings
    This action takes the user to the application notification settings screen, where the user can manage notification permission.


Unless there is a specific use case to filter out a segment of users, we recommend using “All users” as the segmentation condition. If users have enabled Push notifications permission for your app on their device, they will be not be shown the pre-permission in-app message (Supported only is SDK version above XX.)


Campaigns with the above actions are automatically set to Critical-functional priority, which prioritizes them over other campaigns with the same trigger condition.

Minimum delay

You can choose to add a minimum delay to nudge the users every few days instead of asking them for permission in every session.



Was this article helpful?
0 out of 0 found this helpful

How can we improve this article?