What is a beacon region?

Follow

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.

Defining regions

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:

What are region Monitoring and Ranging?

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.

Was this article helpful?
1 out of 1 found this helpful

32 Comment(s)

  • Avatar
    Daniel

    Hi Wojtek,

    A couple of questions for you:
    Does this mean that only 20 different notifications can be triggered while the device is locked? Or can the beacons within the regions trigger different notifications nevertheless?
    Are there any limitations on the number of regions that can be monitored by Android?

    Thanks a lot,
    Daniel

  • Avatar
    Wojtek Borowicz

    Hi Daniel,

    The number of notifications is not affected by the number of regions. If you design a region to send a notification when someone enters it, the notification will be triggered each time this happens.

    As for Android: no, it doesn't have a limit for the regions to monitor.

    Cheers.

  • Avatar
    Daniel

    Hi Wojtek,

    Thanks for your reply! I think my first question was slightly unclear. I meant, whether this means, that only 20 different types of notifications can be triggered while locked, and equivalently whether for heat mapping purposes therefore only 20 zones can be defined (if customers keep their phones locked)?

  • Avatar
    Wojtek Borowicz

    Hi,

    When the phone is locked (so the app is killed or running in the background) then:
    - for each region you can have two types of notifications (enyer and exit events) so all in all: 40 :)
    - for heatmaps, you're right, if you want to base it on region monitoring.

    Cheers.

  • Avatar
    Daniel

    Great! Thanks for that!

  • Avatar
    Daniel

    Hi,

    Another question with regards to this:
    - Is there any such limitation on locked, region monitoring on windows phone?
    - You said this limitation applies to heatmapping, if i want to base it on region monitoring - what else would I base it on?

    Cheers!

  • Avatar
    Daniel

    Apologies, but here is another one:
    Can apps on iOS change the regions they monitor. I.e.: It detects I am in one of the 20 regions and that downloads 20 new regions within that for it to monitor?

  • Avatar
    Wojtek Borowicz

    Hi,

    As for WP, I don't have its Bluetooth stack works in the same way as iOS Core Location. When it comes to heatmapping, depending on your needs, you might also base it on ranging (https://community.estimote.com/hc/en-us/articles/203356607-What-are-region-Monitoring-and-Ranging-).

    Yes, dynamic regions are possible, but it's rather tricky and complex to use them.

    Cheers.

  • Avatar
    Daniel

    Hi Wojtek,

    thanks a lot for your swift response. With regards to heatmapping based on ranging, how would that work if people are (as we assume) most of the time not walking with their phone unlocked and our app open and active in the foreground?
    Is ranging during locked screen and/or app in background also disabled on Android?

    Cheers!

  • Avatar
    Wojtek Borowicz

    Hi Daniel,

    Ranging is designed to be used in the foreground (when the app is active), so yes, people would need to have their phones unlocked to gather data from ranging. It is possible to force ranging in the background, but we do not advise it: it has big impact on battery life.

    That's for iOS. On Android, you can only range in the foreground.

    Cheers.

  • Avatar
    Daniel

    Hi,

    Thanks a lot for all this!
    Does monitoring for a large number of regions (1000+ or 10000+) affect battery life significantly?

    Cheers!

  • Avatar
    Wojtek Borowicz

    Hi,

    iOS allows you to monitor for no more than 20 regions at the same time. But it does not have a significant impact on battery life.

    Cheers.

  • Avatar
    Daniel

    Hi Wojtek,

    I meant for Android - since there I could be monitoring 10000 regions at once. Can you give me any knowledge on what effect that would have?

    Cheers,
    Daniel

  • Avatar
    Wojtek Borowicz

    Hi,

    No, it does not impact battery life. The change between ranging and monitoring is significant in terms of battery performance, number of regions monitored has marginal meaning.

    Cheers.

  • Avatar
    Krish Raj

    Hi,

    I am trying to monitor multiple beacons. I know iOS allows only 20 beacon regions to be monitored. How can I configure different beacons (say 100 beacons with different major and minor values) for monitoring entry and exit(only 20 beacons in range at a given point of time). If we go for a single region, I guess I won't get an exit unless all the beacons in the region are outside. So how can I select my 20 beacons(regions) in my app?

    Cheers.

  • Avatar
    Wojtek Borowicz

    Hi Krish,

    You can try switching monitored regions dynamically, eg. based on GPS geofencing. So if you're in geofence A, you're monitoring for regions 1-20 (in your case, I assume, every region is a single beacon), in geofence B you're monitoring 21-40, etc. Dynamic monitoring, however, can be pretty tricky, so we're not advising this method.

    Cheers.

  • Avatar
    Matthew Warner

    Hello,
    I would like to control the boundary limits for regions within the SDK example, but I can't find any actual values. I notice the "far, near, and immediate", but where does it actually call out the distances or RSSI values that determine which 'zone' or 'region' the beacon is in?
    My goal is to be able to place beacons within a open space, and then control the regions by varying the power and also setting limits for the distances within the region. Example: If distance is < 2 meters then send notification...

    Thanks,
    Matt

  • Avatar
    Agnieszka Steczkiewicz

    Hi Matt,

    First of all - these 3 zones you mentioned: far, near, and immediate are static, so you can set notification for each of them but you cannot customize their range, eg. if you are 2 meters away from the beacon you can set a notification for 'near zone' but if you get closer and you are centemeters away you can set another notification for 'immidiate zone'. The process is based on RSSI. You can read more about zones here: https://community.estimote.com/hc/en-us/articles/201029223-Beacons-signal-characteristics-

    Then the user with an active app can get those notifications based on proximity to the beacon and the process is called ranging (more info here: https://community.estimote.com/hc/en-us/articles/203356607-What-are-region-Monitoring-and-Ranging-)

    Hope it helps.

  • Avatar
    Filipa Faria

    Are we able to delete a region from monitoring?
    Eg: I stoped having beacons in my office, and now i have new beacons added in my house and in my parents house... both with different UUID from the office. Can i remove the office region, so i can add 18 regions more?

    Thanks

  • Avatar
    Wojtek Borowicz

    Hi Filipa,

    Yes, it's up to you to define the regions. Sometimes you might even need to deactivate some of them to be able to activate others, if you want to have more than 20 regions in total and switch between them dynamically.

    Cheers.

  • Avatar
    Filipa Faria

    Am i able to get a list of all regions defined?

  • Avatar
    Wojtek Borowicz

    Currently there is no method for that in the SDK, but we're working on building a solution to make the dynamic region switching easier. It should be released in a few weeks.

    Cheers.

  • Avatar
    Karuna Kuchi

    Hi Wojtek, Had gone through the links and documentation as suggested. however, it could be a great help if the following queries are answered.

    Can i control one notification per a region (for example,my region is having a single beacon)? Only for the first time i enter the region will get a notification. from the second time onwards, i am not interested to see the push notification. Can this be done?

    Regards, Karuna

  • Avatar
    Wojtek Borowicz

    Hi Karuna,

    The simplest way to approach is to stop monitoring for beacons after the push notification is sent. But if you're building something more complex, you might want to put a flag somewhere in your code, e.g. "wasNotificationAlreadyShown", defaults to "NO". Then, add an "if (wasNotificationAlreadyShown == NO)" block around the code which is showing the notification. Finally, once the notification gets shown, change the value of this flag to "YES". The "if" statement will ensure the notification is not shown again.

    Cheers.

  • Avatar
    Karuna Kuchi

    Hi Wojtek, Thank you for the response. We are able to send the push notifications after monitoring beacon within a defined range...unlike earlier, the push notifications were coming continuously without time gap.

    Regards, Karuna

  • Avatar
    Karuna Kuchi

    Hi Wojtek,

    One more issue from iOS point of view.

    a) out of 3, we have changed the Beacon UUID for 2 using the iPhone after receiving the beacons from estimote.

    b) and now using our app we could recognize only the Beacon that is initially set. but not the other two beacons

    the iOS SDK defining the UUID as below

    #define ESTIMOTE_PROXIMITY_UUID [[NSUUID alloc] initWithUUIDString:@"B9407F30-F5F8-466E-AFF9-25556B57FE6D"]

    Please guide us so that our app recognizes all the 3 Beacon UUIDs dynamically...(like our android app) and sends the corresponding Push Notification.

    Regards, Karuna

  • Avatar
    LEO JIE HUI

    Is there a sample code for me to define the region by using the major and minor value with Swift development? This is because I want to do the didEnterRegion, once the user get into the region, it will detect based on my major or minor value then do some task.
    jefferyleo93@hotmail.com

  • Avatar
    Eric Nguyen

    Can you help me to understand the relationship between "region" and "zone"? Let's consider situation when there is only 1 beacon. So when a person's handset enters the beacon's "region", does that mean the handset reaches the Far "zone" (70m)? Also, when a handset exits the beacon's "region", does that mean the the handset goes beyond the Far "zone"?

  • Avatar
    Witek Socha

    Hi Eric,

    The example you've mentioned is quite good but not exact. Yes, when you enter a beacon's region then you've also entered a zone, but it doesn't mean it's a Far zone. You can change the range of a beacon so entering a region may also mean that you one a one meter away from a beacon if you set it that way.

    Zones are used for determining proximity.
    Regions are used for defining which beacons will trigger actions in an app.

    Best,

  • Avatar
    Eric Nguyen

    Thank you Witek, can you point me to the documentation on how to configure the radius e.g. 1m of a beacon region?

Estimote is
hiring!