What you will learn in this article

How to optimize your user onboarding flow and the techniques to maximize your permission approval rates. 


With the release of the last OS versions (Android 10 & iOS 13), last fall, came its fair share of misunderstanding. Among many other updates, the location permission process suddenly became a lot more complex than it was before. 

While some might see it as a threat to all apps using location to power their service, at HEROW we see it as an opportunity. The time of massive data collection with no interest for the end-user is over. Now users only share their data with businesses whose service provides him/her with tangible value.

New steps to get a definite approval

Apple & Google released brand-new location permission processes for asking both foreground and background location permissions, adding the following steps

  • Google: introduction of the “while in use” option;

  • Apple:

    - Removal of the “always” option at first permission ask (only, “once”, “while in use” and “never” are now proposed);

    - Added a second system prompt triggered outside the app experience to ask whether the user wants to “keep only while in use” or switch to “Always”.

    - Recurring (3, 7, 14 days) pop up including a map of the last 24 hours location points collected, asking whether the user wants to go back to “while in use” or keep it to “always”.

How to best use these new processes

While you might think these recurring pings to your users might hurt your app, we believe quite the opposite!

These moments represent a huge opportunity to educate your users and make them aware of how your service works (why is location asked), what they have to gain from it (improved service). It’s also a great opportunity to build trust in regards to what you will exactly do with their data.

To do so, we recommend the use of Priming Pages. 

“What is this?!” - “Glad you asked!”

Priming pages are app-native pages triggered in relation to system permissions. Their objective is to explain why the system permission is going to be asked and educate the end-user on location.

Note: System permission can be linked to a particular answer at a preceding priming page. For instance, only trigger location if the user answered “yes” to the precedent page explaining why the location is used. 

Examples of potential priming pages


  • Replicate the OS system prompt layout to get an approval to your priming page as close as the system one.

  • Overlay your “yes” priming page action button over the system prompt.

  • Clearly state the value location service will provide to your users. 

How to customize OS location permission

In order to optimize your app’s location permission flow, you can execute a specific command to prevent the app from asking the location at the application start.

  • Android


To ask permission when a certain activity starts.

  • iOS

Create the following document


Add the following parameter as Boolean


Set the following value

 askLocationPermissionAtStart NO


Then, add the following commands

  • Objective-C

[locationManager requestAlwaysAuthorization];
  • Swift


You can now insert any priming page and trigger the location system permission only after the user gets to read it and approve it. 

Did this answer your question?