QR Codes are dead — long live Bluetooth beacons!

QR codes were first created back in 1994. Yes, it’s a grandad. They haven’t had a massive adoption and are often met with a grumble and a mental boo when they appear.

Imagine you’re presenting your new project, you might want to share a link to some slides for the audience to reference later. But how do you do this? It’s strangely difficult to do efficiently. QR codes could help?

Hmm, let me fumble around for a few minutes while I find an app for that. Maybe you could use a URL shortener? That’s OK, but still, you have to type out a string of garble.

“OK, z, is that an a or an o? e, t, w, s, k”

It’s annoying but you get the idea. Surely there’s something better?

Enter Bluetooth beacons 🌈🌟

Low energy Bluetooth beacons let you receive links to information directly on your phone — these links can lead to a service or contextual piece of information, and will let you avoid QR codes and tiny URLs.

Imagine you unlock your phone, and the information you wanted appears without asking for it. Magic! 💫

But there’s an app for QR codes, right? 🙄

Yes, absolutely. But with an app, the flow can be tedious and brain sapping:

But why download an app when you could use a feature already on your phone? With a browser feature which is already installed using Google Chrome on most devices, the flow becomes:

If your audience already has the technology to receive this information, they will be far more likely use it.

Sharing a presentation seems like a mundane reason to use Bluetooth beacons, and they can be used for so many more interesting and helpful purposes. Since I work in the fashion business, it makes sense I start there.

Beacons and fashion? 👠

NET-A-PORTER and MR PORTER have always had a keen eye for customer care; concierge as a service comes with the products you buy. Use of Bluetooth beacons could mirror this kind of concierge service. However, context and timing are paramount. Trying to up-sell more products to a customer should be carefully thought out.

For example, imagine being told to buy more products when you’re already making your way out of a store with a purchase — this scenario will seem desperate and untimely, the notification will get swiped away without a second thought.

However, positive use cases could include:

  • A size guide when you stand next to products
  • An exclusive promotion if you walk past the store
  • Alteration services while in or near the fitting rooms
  • Store map if it’s a large space or department store
  • After care services list while at the counter or exit doors

Trust is hard to achieve and easy to lose. If beacons are used as another method of advertising (which may be inevitable) users will simply lose trust in beacons and may end up turning the physical-web service, or even their Bluetooth off.

Show me some code 💾

Recently we held an internal hackathon for the In-Season (current fashion season) team. It was a small hackathon lasting only 6 hours, so the hacks had to be small and lightning fast to develop. I worked with another developer to create a meeting room map solution for the new office using Bluetooth beacons. Although we had no physical beacons, we used a node.js library to create an Eddystone beacon (the protocol that creates a beacon) to broadcast directly from my MacBook.

Example Node Eddystone beacon code — https://github.com/don/node-eddystone-beacon

Here you can set the power of the signal — ‘txPowerLevel’ goes from -100 to +20dBm — dBm meaning the strength of the signal received over the length of a meter.

Because the advertising packet of a beacon is small, you’re limited to how many characters you can use. Use a service like goo.gl to shorten the URL. You also get some basic analytics around how many times the URL has been called for free. Don’t worry if the URL starts with ‘www.’ though because the Eddystone protocol replaces it with a single character — neat! ✨

The very essence of receiving a notification on your device without your permission can be scary. However, beacon notifications are passive by nature and will only appear if you opt-in to receive them and when you view your notifications list. If you swipe the notification away, it won’t appear on your device again.

All you need to do is enable the physical web option on your phone, which we’ll come to in a moment. The final product looked like this. A beacon referring to a local network URL is broadcast, which displays this web page.

Landing page — left. Meeting room map — right.

This is only a simple use of beacons but there are more elaborate possibilities:

  • Stop notifications on a bus or train
  • Bike rental services that could let you sign up on the spot
  • Home appliances could serve up an interactive tutorial
  • Pet collars that could provide you with the owner’s phone number
  • Machinery could display diagnostic information

How do I opt-in? 🙋

To use Bluetooth beacons you’ll need to have a browser capable of supporting the physical web. The latest versions of Chrome on Android and iOS both have support, although the setup steps are slightly different. This handy article has a guide on how to get going.

If you’re generating a beacon make sure your URL is using HTTPS. Or if you’re using a shortened HTTP URL, make sure it resolves to a HTTPS URL. You can use this URL validator to check that your URL is ready to be used.

Don’t be evil 👹

As mentioned before, trust is hard to achieve and easy to lose, so be mindful of how to use beacons. Avoid the urge to broadcast marketing material or your CV for example, as you’ll probably put people off receiving notifications.

Physical web beacons have the potential to improve the most mundane of daily experiences and deserve some careful consideration — it opens up a completely new opportunity to interact with users and bridges a gap in human computer interaction.

Further reading 📚

Exploring the Physical Web (Without Buying Beacons) — https://medium.com/@urish/exploring-the-physical-web-without-buying-beacons-efae51e36c2e#.jsbngjupw

Physical Web FAQs — https://github.com/google/physical-web/blob/master/documentation/introduction.md

Eddystone protocol — https://github.com/google/eddystone

Node package for Eddystone beacon — https://www.npmjs.com/package/eddystone-beacon