The permissions the Pulsate SDK requires and how they are requested.
The Pulsate SDK requires the following permissions:
- Push Notifications — used to send push notifications to users.
- Foreground and Background Location — used for geofencing. For geofencing to work, the user must grant Precise Location and Allow Always.
Priming screens improve opt-in rates
Before the system permission prompt appears, we recommend showing a priming screen or message explaining why the permission is needed and how it will be used. Priming screens can meaningfully increase opt-in rates, and Apple may ask you to include one during App Review.
How permissions are requested
startPulsateSessiondoes not trigger the permission promptsStarting a session does not automatically show the push or location prompts. Your app decides when each prompt appears, so you can show a priming screen immediately before it.
Push notifications
The SDK does not request notification permission on your behalf. Request notification authorization and register for remote notifications from your app, at the moment you choose:
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { granted, _ in
guard granted else { return }
DispatchQueue.main.async {
UIApplication.shared.registerForRemoteNotifications()
}
}
Show your push priming screen before this call. Once your app is registered, the SDK picks up the device token through the forwarded AppDelegate callbacks (see AppDelegate Configuration).
Location
The location prompt is shown when you call startLocation() on the manager — not at session start. Call it at the point you want to request location access (the SDK requests Always authorization):
pulsateManager.startLocation()
Show your location priming screen just before calling startLocation().
Info.plist location keys
Add the following keys to your app's Info.plist, each with a description of why location is used:
NSLocationWhenInUseUsageDescriptionNSLocationAlwaysAndWhenInUseUsageDescriptionNSLocationAlwaysUsageDescription
See Installing the iOS Pulsate SDK for details on configuring these keys.

