My app has an API which stores a list of all beacons intended to be monitored from the app. What I’d like to do is on app launch update the list of beacons to monitor for and ask ios to let me know if any 20 of them are in range (due to the 20 limit on monitoring).
The 2 possible scenarios I have in my head are:
1, I say here are 1000 beacon UUID’s, let me know if any 20 of those are currently in range
2, I can only ask to monitor 20 beacons at once and any asked to be monitored after that are just ignored
If the latter scenario is true, then my next question would be do you think it is feasible to get the users location, send that to the api and return the 20 nearest beacons to that location for monitoring then when the user moves rinse and repeat?
We are currently designing something similar as kind of a project at university.
The scenario is as follows:
A museum with 3 levels, each level shows 15 exhibits. When entering a region (exhibit), the mobile app should show additional information about the exhibit. Since there are 45 exhibits in total, we cannot just monitor all of them - so what would be a good strategy?
We were thinking about placing a beacon at the staircase and as soon as the user passes by this particular beacon, some kind of API tells the app which beacons to monitor. But how to decide which direction (up or down) the user is walking? Or should we better place one beacon on each end of the stair?
In the foreground, you can use ranging to detect which beacon is the closest, and show additional information based on that. (Check out the Proximity Content template on https://cloud.estimote.com/#/apps for that.)
In the background, you probably don’t want to show a notification for each single exhibit? 45 notifications sounds like a lot, I’m not sure many users would find this helpful. They either really want the extra information, and then keep the app open and the phone in hand. Or they don’t, the phone in their bag/pocket, and I think you should respect that. I’d suggest just a few notifications encouraging them to open the app, but 45 seems like an overkill.
Thanks for your reply - this already clarified some things.
I got some follow-up questions in my mind:
can I - when ranging - still read the minor and major value in order to distinguish between beacons?
If I want that at the first exhibit the user should get a push (informing him about additional content) but not for the other 44 - how could I handle this? I do not know which exhibit the visitor will look first.
If I want to greet the customer and tell goodbye … should I have several additional beacons all with same UUID, major, minor all over the museaum, or should I more put one on each entrance/exit and do this welcome/goodby programmatically?
can I - when ranging - still read the minor and major value in order to distinguish between beacons?
Yup! You can start ranging for your UUID, and you will still get the majors/minors of all the beacons in range.
If I want that at the first exhibit the user should get a push (informing him about additional content) but not for the other 44 - how could I handle this? I do not know which exhibit the visitor will look first.
Start monitoring for the UUID, but don’t provide the major and minor. This way, you will get an enter event the first time you enter range of a matching beacon, which will be any beacon with your UUID.
If I want to greet the customer and tell goodbye … should I have several additional beacons all with same UUID, major, minor all over the museaum, or should I more put one on each entrance/exit and do this welcome/goodby programmatically?
For the greeting, I’d put a beacon at the entrance. Detecting when somebody exits the museum is more tricky though—e.g., if they go to the restroom, they will end up out of range of beacons, and thus could get a “false exit”. I’d probably use a regular, GPS geo-fence for the exit message. It’d mean that the exit message might be slightly delayed (up to a few minutes after the user exits the museum), but should be much more reliable.