user.entered_beacon
user.exited_beacon
Radar.trackOnce()
with beacons = true
or Radar.startTracking()
with trackingOptions.beacons = true
, depending on your use case. Radar will generate an entry event on the first location update within range of a beacon.
user.entered_geofence
events after you import geofences, Radar will generate user.entered_beacon
events after you import beacons.
To range beacons, the user must grant location permissions. On Android, the user must also grant the required Bluetooth permissions. If the user grants foreground location permissions, you can range nearby beacons in the foreground by calling Radar.trackOnce(desiredAccuracy, beacons, completionHandler:)
with beacons = true
. If the user grants background location permissions, you can monitor beacons in the background by calling Radar.startTracking()
with trackingOptions.beacons = true
. See the SDK reference for more information.
Beacon entry and exit events are sent to the SDK, to webhooks, and to integrations just like geofence entry and exit events.
coordinates
specified for each beacon. The SDK will then range nearby beacons based on uuid
, major
, and minor
for iBeacon or uid
and instance
for Eddystone.
Alternatively, the SDK can range beacons based on uuid
or uid
only, regardless of the coordinates
specified for each beacon. To enable this, set iBeacon UUIDs and/or Eddystone UIDs
on the Settings page, under Beacons. On iOS, you must also enable the Location updates background mode.
store-register
), external ID (an external ID for the beacon that maps to your internal database, e.g., 123-1
), description (a display name for the beacon, e.g., Store 123 - Register 1
).
You also specify the identifiers used to range the beacon, including uuid
, major
, and minor
for iBeacon or uid
and instance
for Eddystone, as well as an approximate latitude and longitude used to sync nearby beacons (within 1 kilometer) to the SDK.
Beacons should be uniquely referenced by tag and external ID, assigned by you when a beacon is created. To disable or rotate identifiers for a beacon, re-import the beacon with the same tag and external ID.
description
(string, required): A display name for the beacon.tag
(string, optional): A group for the beacon.externalId
(string, optional): An external ID for the beacon that maps to your internal database.type
(string, required): The type of beacon, one of ibeacon
(supported on iOS and Android) or eddystone
(supported on Android only).uuid
(string, required for ibeacon
): For iBeacons, the UUID of the beacon.major
(string, required for ibeacon
): For iBeacons, the major ID of the beacon.minor
(string, required for ibeacon
): For iBeacons, the minor ID of the beacon.uid
(string, required for eddystone
): For Eddystone beacons, the UID of the beacon.instance
(string, required for eddystone
): For Eddystone beacons, the instance ID of the beacon.coordinates
(array, required): The approximate location of the beacon, used to sync nearby beacons (within 1 kilometer) to the SDK. A JSON string in the format [longitude,latitude]
. Note that longitude comes before latitude, a GeoJSON convention.enabled
(boolean, required): If true, the beacon will generate events. If false, the beacon will not generate events.metadata
(dictionary, optional): A set of custom key-value pairs for the beacon. A JSON string representing a dictionary with up to 16 keys and values of type string, boolean, or number./api/v1/beacons
, or upsert a beacon based on tag and external ID via PUT /api/v1/beacons/:tag/:externalId
.
For example, to upsert a beacon within a store via the API: