Why use a push permission prompt?
To send push notifications that can appear as banners, show on the lock screen, play sounds, and more, your app must first get the user’s permission. On iOS, Android, Huawei, Amazon, and Web this involves displaying a system-level permission prompt.
This guide is for mobile app push subscribers. For web push, see Web Push Permission Prompts.
- iOS only allows the permission prompt once.
- Android allows it twice.
- After that, users must manually enable notifications in system settings.
requestPermission() SDK method, it’s critical to ask at the right moment and with proper context. Both Apple and Google strongly recommend explaining the value of your notifications first.
The best way to do that? Use a “soft prompt”—a custom in-app message that introduces the ask. If the user accepts, the system prompt appears. If they decline, nothing happens—no harm done.

Set up an in-app push permission prompt
Remove any automatic permission prompts
Before you begin, make sure your app isn’t already triggering the native push prompt automatically:
- Remove
requestPermission()oroptIn()methods if you’re calling them on app start. - Remove native iOS calls to
requestAuthorizationWithOptionsand any methods generating push tokens. - Remove Android calls to
requestPermissionsand any methods generating push tokens.
Create or edit the in-app message
Go to Messages > In-App, then either:
Set the audience to: Show to all users
Don’t worry—this type of in-app message is automatically shown only to users who haven’t subscribed to push.
- Edit the default Push Permission Prompt template, or
- Click New Message to create your own.


Customize the message design
Personalize the look, feel, and wording to fit your app. Keep it clear and helpful—let users know what kind of notifications they’ll get and why they’re valuable.See Design In-App Messages with Drag and Drop or Design in-app messages with HTML for details.

Add the push permission prompt click action
Add a Push Permission Prompt click action to any button or image in your message. When tapped, the system prompt is shown.

If a user has already denied permission, the button will direct them to your app’s notification settings instead.


In-app messages that have a “Push Permission Prompt” action will not be shown to users who have already allowed notifications.
Choose a trigger
The audience controls who is eligible to see the message. Triggers control when it’s shown.
You can trigger the message:

- On app open
- After a set amount of session time
- On a specific user event
- Programmatically (more control)

Schedule and frequency
You can control how often the message appears:
- Only once – Low chance of conversions
- Every time conditions are met – Too aggressive
- ✅ Multiple times – Recommended

Update your message and set it live. You can now monitor your stats and update the gap in between days as needed.
Programmatically show the required permission prompt
Developers: You can trigger the push permission prompt manually usingrequestPermission() or optIn() SDK methods.
This is great for custom flows, such as:
- A Preference center
- A user profile screen
- Specific in-app events
Track push permissions and prompt results
When using in-app messages to prompt for push, you can track click actions with the In-app message click listener. For cases where the in-app message displays but the user doesn’t click the button, you can listen for the In-app message lifecycle events. For tracking the results of the system-level permission prompt, you can listen for events with the Push permission listener.When using these SDK methods, you can send the events to your backend or analytics tool of choice.
FAQ
Can I still prompt users with provisional notifications?
Yes! In fact, if you use iOS provisional push notifications, it is recommended to still prompt users for push in this way but be strategic!When did Android start requiring permission prompts?
Android started requiring explicit user permission for push notifications with Android 13 (API level 33), which was:- Released: August 2022 (Pixel devices)
- Required for target SDK: As of August 31, 2023, all new apps and updates on Google Play must target API level 33 or higher.
- Source: Google’s developer guide on notification permissions