iOS Features – Check-out
Point SDK can optionally track when a device leaves a Fence. This is known as ‘checking out’.
This enriches the analytics you will receive from Point SDK by recording a ‘dwell time’ against check-ins: the approximate number of minutes a device spent at a location.
The check-out feature also allows your app to be notified in real-time at the point when a device ‘checks out’ of a Fence that has previously been checked into.
For Fences, ‘check-out’ occurs as soon as the SDK confidently determines that the device is outside of a ‘checked in’ Fence area. The exact distance of travel is dependent on environmental conditions and the opportunity for battery conservation.
GEOLINE™ components and check-out
Having no area, GEOLINE™ components cannot be utilized for a check-out.
This has more of an impact should a ‘Percentage Crossed’ condition be applied to a Zone containing both Geofences and GEOLINE™; entailing that the device will provide a check-out after the percentage is crossed by checking in to a fence but not provide a check-out if the device finally checked into a GEOLINE™.
In summary, it is possible but not good practice to include GEOLINE™ components in a Zone that is to be utilized for checking out.
Check-out is enabled by Zone and the setting applies to all Fences within it.
In the Canvas web interface, enable Check-out from the options within any Zone settings overlay.
Check-out and minimum re-trigger time (MRT)
The minimum re-trigger time ensures that a Fence is not triggered continuously within a Zone; when check-out is enabled for a Zone, the minimum re-trigger time starts from the point of the ‘check-out’.
Check-out and Custom Actions
By default, enabling check-out for a Zone will have the effect of ‘dwell time’ being recorded against check-ins in your Zone’s Activity Log.
Most often, check-out will be used in conjunction with Custom Actions to drive richer app behaviour via callbacks.
If a Zone has a Custom Action and is selected as a check-out Zone, then the following methods within your implementation of BDPLocationDelegate are called depending on whether a Fence has been checked out of.
When to expect a check out callback
Note that the check-in callback, driven by the Custom Action, specifies a Boolean flag named willCheckOut which tells your app whether or not to expect a subsequent check-out callback.
Currently, this will be true for check-ins occurring in any Zone marked for check-out, except those triggered by crossing a GEOLINE™.
Use the willCheckOut flag when driving UI elements and other behaviours which rely on a later check-out callback.
Fence delegate callback
This method passes back:
- the name, description and geometry of the Fence checked out from
- which Zone the Fence belongs to, including:
- the name and description of the Zone
- the id of the Zone
- a reference to all the Fence information within that Zone
- the date and time at which the trigger occurred
- the number of minutes that the device has remained within the Fence
- the custom fields setup for the Zonen in Canvas web interface, refer to Canvas – What is custom data? for how to create and edit custom data fields in Canvas web interface
Interaction with the Enable / Disable zones feature
Note that if a Zone has already been ‘checked-in’ and is awaiting a ‘check-out’ event, then disabling the Zone at this point will not prevent the check-out callback from occurring.
If it is important to suppress check-out behaviours while a Zone is disabled by your application, we advise that you make use of the
isZoneDisabledByApplication: method as part of your check-out callback.