iOS: iBeacons

How to integrate Carnival and iBeacons

What are iBeacons

iBeacons are small signal generators that advertise their location via Bluetooth. An Android or iOS Device may look for these signals and then receive updates about proximity to the beacon.

As a developer, you can collect this data, process it and then send it to Marigold for creating audiences, and triggering automated messages.


iBeacon vs Beacon

iBeacon is beacon technology that is owned by Apple. The name "iBeacon" has become synonymous with beacon technology in general, as it is widely used.

Data from iBeacons

The Beacon protocol has several key attributes, including:

  • UUID: A unique, hexadecimal identifier for the device
  • Major: A non-negative integer
  • Minor: A non-negative integer
  • RSSI: A decibel value of signal strength from the beacon

This data is then translated into something more usable by either iOS or a 3rd Party Beacon SDK such as Estimote, Gimbal or Kontakt. On iOS, you can use Core Location OR a 3rd party SDK from your beacon provider. On Android, it's easiest to use a 3rd party library.

Understanding Major and Minor

Regular beacon devices have three attributes – a UUID, Major and Minor. Apple recommends using one UUID for all your beacons, and differentiating locations hierarchically with major and minor versions.


A sample from "Getting started with iBeacons" from Apple

Getting the actual data via your provider's SDK is dependent on the SDK implementation, so refer to their documentation for instructions.

On iOS Devices, you can use the CoreLocation API, which you can read about on Ray Wenderlich.