Notification Permission
Since Android 13 (API 33), apps must ask the user for the POST_NOTIFICATIONS runtime permission before showing notifications. On older versions the permission is granted automatically.
The Pulsate SDK already declares the permission in its manifest:
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />Requesting the permission
Section titled “Requesting the permission”Use the Activity Result API:
class MainFragment : Fragment() {
private val requestPermissions = registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { results -> // results[Manifest.permission.POST_NOTIFICATIONS] == true when granted }
private fun checkAndRequestPushPermission() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { val granted = ContextCompat.checkSelfPermission( requireContext(), Manifest.permission.POST_NOTIFICATIONS, ) == PackageManager.PERMISSION_GRANTED
if (!granted) { requestPermissions.launch(arrayOf(Manifest.permission.POST_NOTIFICATIONS)) } } }}Improving opt-in rates
Section titled “Improving opt-in rates”You get one automatic system prompt — make it count:
- Prime first. Show a short screen explaining why notifications are useful before triggering the system dialog. Google may also ask for a priming screen during app review.
- Ask in context. Request the permission when the user reaches a feature that benefits from it (order updates, new-message alerts), not on first launch.
- Ask incrementally. Request permissions one at a time as features become relevant.
- Remind strategically. If the user declines, wait several days or sessions before showing your own reminder that links to system settings.
- Ride positive moments. Ask right after a success — completed purchase, earned reward, finished onboarding.
- Explain data handling. Users grant more when they understand what you do (and don’t do) with the channel.

