we're implementing an Estimote-Eddystone beacon scenario:
- User gets into a coffee shop, enters Beacon range (the shop's beacon has a coupon linked)
- Beacon triggers app, app sends BeaconID and some sort of ClientID to the server
- Server finds the campaign (coupon), checks the campaign as "delivered" for the ClientID and responds with campaign data
- Phone displays campaign data, user redeems coupon - everybody happy
The user sits then for 5 hours in the cafe. The Beacon would trigger the phone every 1 second, it would make a call to the server, server would not return the campaign, because it's marked as "delivered" or "redeemed". However, the phone keeps polling the server triggered by the Beacon 60 * 60 * 5 times until the client leaves.
What's best practise to avoid such a scenario?
Do you usually store BeaconIDs with some sort of status on the phone? This, however, takes battery life as well because the phone still has to do some checking every 1 second.
Thanks a lot,