Apple’s iBeacon protocol introduced the concept of a beacon region. It’s important to remember that beacon-enabled apps can detect beacon regions as well as individual beacons.
As opposed to common understanding of regions, a beacon region is not defined by any geographic properties, like GPS data or latitude and longitude. Instead, it’s characterized by the same three values as beacons: UUID, Major and Minor (read more about them here). Therefore, the physical representation of a region is the range of all beacons in this region.
A beacon region can be defined in three ways:
- With only UUID: it consists of all beacons with a given UUID. For example: a region defined with default Estimote UUID would consist of all Estimote Beacons with unchanged UUID.
- With UUID and Major: it consists of all beacons using a specific combination of UUID and Major. For example: all Estimote Beacons with default UUID and Major set to 13579.
- With UUID, Major and Minor: it consists of only a single beacon (Estimote Cloud prevents having two beacons with the same IDs). For example, one with default Estimote UUID, Major set to 13579 and Minor set to 2468.
In Estimote SDK, beacon region is represented by the object CLBeaconRegion.
Region Monitoring and Ranging
There are two methods for mobile apps to detect and interact with regions and beacons within these regions. Monitoring allows to trigger notifications based on entering and exiting region, while Ranging measures proximity to beacons in this region. For a more detailed description of those two methods read:
Is there a limit to how many regions an app can be monitoring?
There is almost no limit to how many beacons can be included in a single region (technically, it’s over 4 billion). But it’s important to note that iOS sets a limit on how many regions an app can monitor at once: 20.