1.3 Implementation considerations
The following optional features can be considered when implementing the Plot plugin. An overview of the support for these and other features can be seen here.
Location Services Permission dialog
Both for iOS and for Android, it is required to ask the user permission first before getting access to the location of the device. By default, the Plot plugin will automatically ask this permission after the initialization method has been called. Starting from plugin version 2.0.0(iOS)/2.1.0(Android) it is possible to disable this functionality and ask the permission yourself. This allows to pick a more logical time to show the opt-in dialog to the user.
The best results are achieved when you first prime the user that the location services permission will be asked. During this process you tell the user that the app wants to make use of the location of the phone and what advantages it brings for the user. When the user agrees to share their location, then you can show the opt-in dialog.
In Android, it is required to ask permission for location services starting from Marshmallow. In older versions the permission will be asked straight away when installing the app. When your app requests permission for the second time, the "Never ask again" checkbox is added to the dialog. If the user checks this, it will no longer be possible to directly ask the user to opt-in for location services. Therefore, it is important to not ask too often for this permission when the user hasn't granted it the first time. When a user changes their mind, he can change their permission settings in the Settings screen.
Starting from iOS 8 there is a distinction between asking permission for location services that can be used when the app is in use and permission for always access to location services. To achieve best results with the plugin, the always permission is required. Starting from iOS 11 the user always has the option to give the When in use permission, not just the Always permission. When a user changes their mind, he can change their permission settings in the Settings app. It is possible to first ask for When in use permission, which then later can be upgraded to Always permission. To get best results, we recommend explaining to the user why the Always permission is needed and what it brings for the user.
Find more about enabling/disabling the opt-in dialog in the Configuration file section.
To prevent sending too many notifications to a user, the Plot plugin provides a cooldown period. When the cooldown period is set on the plugin, Plot will make sure that at least this amount of time has elapsed between two notifications. This is useful when your application has a lot of location based notifications, but you want to prevent overwhelming your users with notifications. The default is to use no cooldown period.
Find more information about implementing the cooldown period please see the sections iOS reference and Android reference.
You can also set a cooldown period on a single notification, instead of for the entire plugin. This allows notifications to be received multiple times by a user, but not before the cooldown for that specific notification has passed.
Use a notification filter if you want to prevent notifications from being shown or modify notifications before they are shown. A notification filter is a method that is called before the notifications are shown to the user. This can be used to only show notifications that match with the interests of the user or to personalize the notification. On Android it is possible to send rich notifications, for example notifications with a large image. Rich notifications are also available on iOS. The notification filter feature isn't available on the Phonegap plugin and Appcelerator Titanium module.
If a notification is set to landing page, it will bypass the notification filter and just open the attached URI in full view as HTML page.
Find more information about implementing the notification filter please see the sections iOS Notification filtering, Android Notification filtering, Appcelerator Notification filtering and Phonegap Notification filtering.
A notification handler makes it possible to specify what should happen when the user taps on a notification sent by Plot. This for example allows directly opening a view in your app that shows more information about the subject that was shown in the notification.
When no notification handler is specified, it will treat the data attached to the notification as URI and that URI will be opened. If a notification is set to landing page, it will bypass the notification handler and just open the attached URI in full view as HTML page.
Find more information about custom notification handling please see the sections iOS Notification handling, Android Notification handling, Appcelerator Notification handling and Phonegap Notification handling.
A geotrigger handler makes it possible to define your own custom trigger when the device enters a geofence or gets in range of a iBeacon. You can filter geotriggers depending on your own logic, as you would in the notification filter. You can also use the geotrigger handler as a trigger for your own custom events in your app, for example to smoketest your notification filter.
When no geotrigger handler is specified, all geotriggers will be seen as handled by your app.
Find more information about custom geotrigger handling and implementation in the sections iOS Geotrigger handling, Android Geotrigger handling and Appcelerator Geotrigger handling. We have also blogged about it here.
Retrieve cached notification and geotriggers
It is possible to retrieve the list of notifications and geotriggers the Plot library is currently listening to. You can use this to show the user what is near him. This can also be used to see what Plot has loaded for debugging purposes.
For more information about this feature and its implementation, see section iOS Retrieve cached notifications, Android Retrieve cached notifications, Appcelerator Retrieve cached notifications and Phonegap Retrieve cached notifications.
Retrieve sent notifications and geotriggers
The plugin keeps a list of all the notifications and geotriggers that have been sent. You
can retrieve these separately from the plugin to use in your app, for example to show a list of all the interesting the locations the
user has passed since the last time he opened the app.
For more information about this feature and its implementation, see section iOS List sent notifications and geotriggers, Android List sent notifications and geotriggers, Appcelerator List sent notifications and geotriggers and PhoneGap List sent notifications and geotriggers.
Our QuickSync feature is an improved way to synchronise your app users' devices with our server. Our default synchronisation lets a device poll for new notifications or geofence every once in a while. This means that after create a notification it can take some time until you receive the notification when testing.
With Quicksync, this issue is resolved because after creating a notification it will get sent to all your users' devices immediately. In order to enable this feature some additional steps are needed, we have written an integration guide for iOS and one for Android.
More information about QuickSync can be found in our seperate blog post about this feature.
You can use the notification events to connect the plugin with your own analytics.
Our plugin provides notification events for every notification shown to the user, and for every time a notification is tapped.
For more information about this feature and its implementation, see section iOS notification events and Android notification events.
Advertising identifier for custom reporting
The Plot Plugin makes it possible to offer better targeted advertisements and improved segmentation by
using the user’s advertising identifier. This identifier can be used in custom reports, which we offer for Gold plans and up.
The advertising identifier can be set in the Plot Plugin from version 1.10.0 and up.
In Android this functionality is shipped as part of Google Play Services since version 4.0 and in iOS this is available since version 6.
It is possible for end-users, both on Android and iOS, to opt-out from the advertising identifier.
In Android the user this is done in the Google Settings app. In iOS this setting is available through the device settings.
Contact us for the possibilities and how to set the custom reporting up. For technical information about this feature's implementation, see iOS library reference and Android library reference.