Location permissions

When the device location technology is active, Inloco collects device sensor data ๐Ÿ“ถ in order to infer its presence in places such as stores, malls, parks, public squares, etc.

We do not collect data from visits to sensitive places such as religious temples, hospitals, political parties, places of adult entertainment and others that might be used to make sensitive inferences.

โ€‹๐Ÿ“ Why is the location permission important?

The location permission is essential in order to allow Inloco to provide value to the user. Once allowed, Inloco SDK can start detecting location points, which translate to push notifications or validated addresses. Users that don't accept the location permissions won't generate location data, thus not being able to receive benefits from Inloco features.

The Inloco SDK makes use of Apple's Visits Location Service, which requires the Always authorization. Not being able to acquire this authorization may greatly reduce the frequency of location-based features, such as pushes. More about the Visits Location Service can be found here.

The Inloco SDK checks the status of these permissions and changes its behavior accordingly. The SDK will work as usual when in the foreground.

โ€‹๐Ÿ‘ฎโ™‚ Asking for runtime permission

According to Nielsen Norman Group, world-reference in user experience research, it is easier for people to understand the context of the permission request when it is directly related to the action happening at that moment. For example, it makes more sense to ask for location permission when the person is searching for nearby stores than when they are just looking at the product catalog. The point is: always try to find out in which moment you should ask for permission and when the user will receive the benefits of that permission.

Keep in mind that, to maximize the power of Inloco's technology, as many users as possible must grant location permissions. The description of why background location is used must be clear and present direct value to the user. If the permission request is hidden or linked to a feature that does not give real value, the acceptance percentage will be small and fewer users will be able to benefit from Inloco services.

We recommend that the permissions are requested as shown in the iOS documentation. An example of how runtime permissions can be prompted is shown below.

To prepare your app for calling requestWhenInUseAuthorization() or requestAlwaysAuthorization(), you must add keys with purpose strings to your app's Info.plist file. The system displays your purpose strings in the authorization request dialogs. Configure the keys in Xcode with the following keys.

Key

Description

NSLocationWhenInUseUsageDescription

Your app requests When In Use authorization or Always authorization.

NSLocationAlwaysAndWhenInUseUsageDescription

Your app requests Always authorization.

NSLocationAlwaysUsageDescription

Your app supports iOS 10 and earlier and requests Always authorization.

โ€‹๐Ÿง Note: You must add the required keys to your appโ€™s Info.plist file. If a required key isnโ€™t present, authorization requests fail immediately.

Then, the authorization can be asked by calling the requestAlwaysAuthorization() method.

Swift
Objective-C
Swift
var locationManager = CLLocationManager()
locationManager.requestAlwaysAuthorization()
Objective-C
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
[locationManager requestAlwaysAuthorization];

Some examples of clear messages that show the benefits of accepting the location permissions are as follows:

"Receive personalized offers? To receive coupons and offers from our nearby stores, do you allow the app and our partner Inloco to have access to your location?"

โ€‹๐ŸŽTracking permission on iOS 14

Starting on iOS 14, users must provide permission for tracking. Since your application shares data with Inloco, it is necessary to request the user's authorization using the AppTrackingTransparency framework available on iOS 14.

The AppTrackingTransparency framework requires a purpose string in the system prompt that explains why youโ€™d like to track the user. This string is declared in the Info.plist of the application.

We recommend that you include the following texts according to your use case:

Use case

Purpose

Engaging users and influencing visits through push notifications

Share your location data with partner Inloco for receiving in-app coupons and offers from our near stores

Providing analysis on the user's physical behavior based on the device's behavioral data

Share your location data with partner Inloco for providing us with user physical behavior analysis

The code below shows how to prompt the user for tracking permission:

Swift
Objective-C
Swift
if #available(iOS 14.0, *) {
ATTrackingManager.requestTrackingAuthorization(withCompletionHandler: { status in
// check the status for information about the user's choice
})
}
Objective-C
if (@available(iOS 14.0, *)) {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
// check the status for information about the user's choice
}];
}
โ€‹

โ€‹๐Ÿง Note: The code above will display a dialog containing the string declared in the Info.plistfor the user to deny or accept. It must be placed in a convenient place within your app, possibly on the user's onboarding process of your application.