How to get better Location Services opt-ins

Joel Oliveira
Joel Oliveira
Aug 17 2020
Posted in Best Practices

Letting users know what they are missing out

How to get better Location Services opt-ins

In the last couple of years both iOS and Android have been focusing on improving privacy controls for location services and the way apps can leverage the user's location became more strict. This led to a considerable decrease in the amount of devices eligible for location-based messaging for most of our customers.

This year's biggest iOS and Android releases are no exception and new changes are on their way. More than ever, you need to adjust your strategy and embrace these changes in order to keep using location-based messages as a powerful contextual marketing channel.

For many apps, obtaining the users' location when they are using the app is more than enough and for both iOS and Android, Notificare provides a pretty simple way of achieving this. You can then use this to provide users with location-aware maps, a list of your nearest stores or any location powered functionality that makes sense for your app.

Things get a bit more complicated whenever you need access to user's location on the background, which is the case when you want to leverage technologies like Geofencing and Beacon monitoring. For these features to work flawlessly, you'll need to request access to the user's location at all times in order to collect their last known location while they are on the move allowing your app to constantly monitor geo-zones. Because of that, users will be constantly reminded, by both platforms, that your app is collecting their location in the background which for more privacy-aware users can become a decisive moment for them to stop allowing your app to receive these updates.

This, of course, is something you cannot prevent and users are entitled to stop sharing their location with your app at any time. But for those apps that are providing real value, by offering exclusive discounts when users enter or leave a certain geographical area or when they are around beacons inside your stores, this can become problematic. When users disable location updates on the background they will no longer benefit from those campaigns you put in place to reward their loyalty. This is where this post will focus on how to re-engage with those users that do not provide access to their location or do not allow you to keep monitoring their visits to your geo-zones.

Regaining users trust

The only effective way to do this is by adding some detection mechanisms in your app using some helper methods bundled with our SDKs. These functionalities will allow you to better detect those users that disable location updates and at the same allow you to design better on-boarding screens where you can explain what they are missing out and how you'll use this privilege to provide real added value in exchange for access to their location at all times.

The way you do this differs a bit between platforms but the main concept is essentially the same. Basically when users open your app, you can perform these checks and for those users that you cannot provide a full location experience you will simply provide some extra user interface. Introducing such interactions can revamp your location opt-in rate up to 20%!

In Android

For Android apps, Notificare provides some helper methods to help you determine if users are eligible for Geofencing and Beacon monitoring. For example you can quickly figure out if a user permits your app to use background location by using:

if (!Notificare.shared().hasBackgroundLocationPermissionGranted()) {
    if (Notificare.shared().shouldShowBackgroundRequestPermissionRationale(this)) {
        //Show UI if no background location is granted

In iOS

For iOS apps, you will receive this state via an App Delegate method. You can then easily figure out what is the current state whenever your app is launched and act accordingly. These can also be retrieved at any time by accessing the device's model properties.

This means that whenever you start location updates or whenever users change these permissions via the device's settings the following delegate will be triggered:

func notificarePushLib(_ library: NotificarePushLib, didReceiveLocationServiceAuthorizationStatus status: NotificareGeoAuthorizationStatus) {

     if (NotificareGeoAuthorizationStatusAuthorizedAlways != status) {
        //Show UI if authorisation is not always

This delegate method is available in all versions of iOS that we support and you can already take advantage of it.

In iOS 14, Apple is yet introducing a new location option for users. They are given the possibility to not share a precise location with your app. When that is the case you will also not be able to harness Geofencing and Beacon monitoring. But you can also detect that, by implementing the following delegate:

func notificarePushLib(_ library: NotificarePushLib, didReceiveLocationServiceAccuracyAuthorization accuracy: NotificareGeoAccuracyAuthorization) {

     if (NotificareGeoAccuracyAuthorizationFull != accuracy) {
        //Show UI if accuracy is not full

It is also possible, at any point, to retrieve these states by looking into the device's model properties, for example you can easily determine if a device is not eligible for Geofencing and Beacon monitoring by performing this check:

if (NotificarePushLib.shared().myDevice().locationServicesAuthStatus == "always" ||
    NotificarePushLib.shared().myDevice().locationServicesAccuracyAuth != "full") {
    //Show UI if auth status is not always or accuracy is not full

Improved On-Boarding

Basically when you can detect these states, that make it impossible for you to use Geofencing and Beacon monitoring, you can improve your app by adding UI that reminds them what they are missing and how to quickly give you access to their location. A very effective way of doing this is by providing them with a new on-boarding screen where you can convince them of the advantages and a button that drives them directly to the device's settings:


If you are leveraging Geofencing and Beacon monitoring, you're probably seeing a considerable decrease in performance for your location based campaigns. With a small update to your app you can start regaining your users by showing them what they are missing. Combining this with other features of Notificare, like the Mobile Wallet, you can reward these users after a visit to your stores and justify the trust they put in you by sharing their location. As always, we remain available for any question you might have via our Support Channel.

Keep up-to-date with the latest news