Das neue digitale Schlachtfeld

iBeacon, Growth Hacking und der Einzelhandel
Kommentare

Suchmaschinenoptimierung (SEO), Webseitenanalyse und Contentmarketing sowie A/B-Tests sind die Tools eines Growth Hackers. Im Gegensatz zum herkömmlichen Mainstreammarketing machen vor allem niedrige Kosten und innovative Methoden das Growth Hacking aus. Einziges Ziel des Growth Hackings ist die reine Maximierung des Wachstums. Wir wollen uns das am neuen Trend iBeacon anschauen.

Wieder einmal schwappt ein neuer Trend in Sachen Marketing über den großen Teich zu uns herüber: Growth Hacking – so die neue Marketingphrase aus den USA. Geprägt wurde der Begriff von Sean Ellis, der für das Marketing von Start-ups wie Dropbox oder WordPress mitverantwortlich zeichnete. Seine Definition eines Growth Hackers: „Ein Growth Hacker ist eine Person, deren wahres Ziel im schnellen und unkonventionellen Wachstum liegt.“

Growth Hacking im Einzelhandel

Insbesondere in Bezug auf den stationären Einzelhandel wird der digitale Handel (E-Commerce) bislang meist als totbringender Feind gesehen, der dem stationären Einzelhandel Kundschaft und Umsatz streitig und das Leben zunehmend schwer macht. In der Vergangenheit wurde häufig das stationäre Angebot durch einfache Internetseiten, rudimentäre Onlineshops und spezielle Dienstleistungen ergänzt, um neue Kunden zu gewinnen beziehungsweise bestehende Kunden halten zu können. Doch das „Onlineding“ wird vom stationären Einzelhandel noch immer weitgehend getrennt behandelt.

Der stationäre Einzelhandel wird die Wachstumsstrategien des digitalen Handels annehmen müssen, wenn er weiterhin überleben will. Für einige Einzelhändler könnte das Growth Hacking daher kommen wie ein Phantasiesynonym für das klassische Onlinemarketing. Im Kern aber vertritt Growth Hacking die Idee, Marketing, Verkäufe, Design und Technologie nahtlos miteinander zu verknüpfen, um Systeme und Strategien zur Kundengewinnung und im Verkauf etablieren und vor allem messen zu können.
Die iBeacon-Technologie ist nicht die einzige Technologie, die das Verhältnis vom stationären Einzelhandel zum digitalen Handel zu verändern begonnen hat. Doch es ist noch ein weiter Weg, die Grenzen zwischen digitalem und stationärem Einzelhandel zu verwischen und die letzte Hürde in der Digitalisierung – den physischen Raum – zu überwinden, beziehungsweise einzubeziehen. Doch Fakt ist: iBeacon wird Bestandteil jeder Growth-Hacking-Strategie im Einzelhandel sein.

Apples neue Verkaufschefin ist der Meinung, dass es eine nahtlose Kundenerfahrung geben sollte, die die Grenzen zwischen stationärem Einzelhandel und dem digitalen Handel überbrückt bzw. den physischen Raum überwindet. Und für Angela Ahrendts sind es nicht die Gutscheine und die Verkaufsaktionen, die das Einkaufserlebnis prägen, sondern viel mehr die Mischung aus Storytelling, Service und der Verzahnung von physischem und digitalem Raum.

iBeacon – digitale Kundenansprache und Kundenbindung

Mittlerweile haben einige Softwareanbieter auch in Deutschland die vielfältigen Möglichkeiten der iBeacon-Technologie erkannt und wollen die von Apple in den letzten Monaten stark forcierte Technologie in den Einzelhandel bringen. Erstes Ziel der Systeme wird es sein, eine neue Art der digitalen Kundenansprache und Kundenbindung zu ermöglichen. Jeder Kunde, der ein bluetoothfähiges Smartphone besitzt und sich in der näheren Umgebung eines Geschäfts befindet, in der das Empfangen der kleinen Werbebotschaften möglich ist, kann dazu eingeladen werden, das Geschäft zu betreten oder mit dem Service zu interagieren. In den USA gibt es bereits einige Vorreiter wie Shopkick. Mit über 200 000 angebundenen Partnern ist Shopkick die am meist verbreitete Rewarding-App, die mit der iBeacon-Technologie ausgestattet ist. Die App aktiviert sich automatisch, sobald ein Nutzer das Geschäft betritt. Sofort bekommt er neue Angebote, Empfehlungen, angesagte Produkte oder weiterführende Produktinformationen auf das Gerät gepusht. Die Einzelhändler können Ort, Zeit und Inhalt der Nachrichten selbst bestimmen. Außerdem ist es möglich, den Standort des Kunden im Geschäft zu ermitteln.

Das Bekleidungsunternehmen Burberry geht einen ähnlichen Weg: Im vergangenen Jahr führte Burberry ein System ein, das es Burberry-Partnern in allen 330 Läden, in denen Burberry seine Produkte vertreibt, ermöglicht, mit nur einem Fingertipp sämtliche Informationen über die Kunden auf www.burberry.com und auch in den einzelnen Geschäften abzurufen. So können die Mitarbeiter des Geschäfts ganz gezielt und mit nur wenigen Klicks auf das Kaufverhalten der Kunden reagieren und den bestmöglichen Service anbieten.

Kein Offline mehr

Die Kundenströme und Interaktionen werden in Zukunft noch einfacher messbar sein. An jedem Regal können digitale Displays mit Werbung, Produktinformationen und Gutscheinautomaten angebracht werden, die die Kaufentscheidung der Kunden positiv beeinflussen können. Tragen die Kunden selbst Beacons in ihren Taschen, wird jedes Geschäft und jedes Café für kurze Zeit zu einem sozialen Netzwerk für die Kunden. Jedes Mal wenn ein Kunde das Ladenlokal verlässt, bietet iBeacon die Möglichkeit, zu eruieren, warum der Einkaufswagen leer ist. Zudem können Empfehlungen ausgesprochen und die Kunden nach ihrer Zufriedenheit befragt werden.

Interaktion auf eine neue Art und Weise

Es gibt drei Möglichkeiten, wie durch iBeacon auf neue Art und Weise mit dem Kunden interagiert werden kann:

1. Einkaufsverhalten: Kunden werden in der Lage sein, Echtzeitinformationen, Vergleichspreiskalkulation, Preisnachlässe und andere nützliche, auf sie zugeschnittene Daten zu sammeln, wenn sie durch einen Laden gehen und/oder nach besonderen Sachen suchen. Es ist unumgänglich, gut getimte, und für den Kunden nützliche Informationen zu liefern, um die Kaufentscheidung zu beeinflussen, zu beschleunigen und zu vereinfachen.
2. Micro Location: Digitaler Inhalt wird eng mit der physischen Welt verknüpft. Die Technologie ist äußerst präzise und kann die Position des Kunden im Laden genau erfassen. Während sich dieser in einem Raum bewegt, in dem das Empfangen der Werbenachrichten möglich ist, erhält er personalisierte Angebote und kann so in Ruhe und ganz bequem shoppen.
3. Verpflichtung: Anstatt nur für Webbrowser oder mobile Nutzer angepasste Informationen zur Verfügung zu stellen, werden Verkäufer darüber nachdenken müssen, nützliche, relevante Informationen für all ihre Kunden zur Verfügung zu stellen. Ob bei der Arbeit, im Stadtpark oder zu Hause – Verkäufer werden in Zukunft die Möglichkeit haben, so viele nützliche Daten in Echtzeit abzurufen wie nie zuvor.

Die iBeacon-Technologie clever eingesetzt, bietet also die Möglichkeit, die Barriere zwischen On- und Offlinehandel zu überwinden und den physischen mit dem digitalen Raum zu verschmelzen.

Den Kunden nicht penetrieren, sondern verlocken

Um mit Beacons arbeiten und Nachrichten an Smartphones schicken zu können, muss der Kunde die aktuelle Version der App des Verkäufers, der Marke oder des jeweiligen Unternehmens herunterladen. Ohne die App kann der Beacon nicht kommunizieren. iBeacon sollte jedoch weniger als eine Pushtechnologie, sondern eher zur „Verlockung“ des Kunden gesehen und eingesetzt werden. iBeacon ist nicht die Antwort, schlechtes Marketing wieder wett zu machen, sondern vielmehr Teil einer größeren Benutzererfahrung und ein Mittel, um Einkaufserlebnisse zu kreieren. Doch trotz des Einsatzes neuer Technologien, die die Kundenbindung erhöhen können, sollte nicht vergessen werden, dass auch weiterhin der persönliche Kundenkontakt im Einzelhandel ein wichtiges Verkaufsinstrument ist. Sie müssen auch weiterhin um Ihre Kunden werben, sie verführen und neue Einkaufserlebnisse schaffen.

Checkliste: Digitale Möglichkeiten für Einzelhändler
• Bieten Sie On- und Offlinetools an, um den Kunden beim Download der App zu unterstützen.
• E-Mails und andere Reminder helfen, um Kunden anzulocken.
• GPS-gesteuerte und andere Geotechnologien helfen dabei, das Geschäft auffindbar zu machen.
• Wechseln Sie die Art und Weise der Mitteilungen an Ihre Kunden, um verschiedene Kunden anzusprechen, sie immer wieder aufmerksam zu machen und zu überraschen.
• Sorgen Sie für eine breite Bluetooth-LE-Abdeckung, um auf vorhandene Beacons hinzuweisen.
• Stellen Sie Beacons und anderen Technologien für die Nachrichtenübermittlung, Änderungs- und Updatemitteilungen zusammen.
• Richten Sie ein Backend-System für das Contentmanagement ein.
• Integrieren und implementieren Sie ihr CRM-System, soziale Netzwerke und APIs.
• Führen Sie auf Basis der gewonnenen Daten regelmäßige Zufriedenheitsanalysen durch, um auf das Kundenverhalten reagieren zu können.

Growth Hacking im Einzelhandel – Das erwartet uns

Viele der Empfehlungen aus der Checkliste kommen direkt aus dem Growth-Hacking-Lehrbuch. Häufig von den Bedürfnissen kleiner Unternehmen und Start-ups mit geringen Ressourcen geleitet, gibt es einige Säulen des Growth Hacking, die sich auch auf die Kundenakquise, Kundenbindung, Monetisierung und Werbung im physischen Raum anwenden lassen. Für Einzelhändler erweitert iBeacon den Interaktionsraum über das aktuelle Ladensystem, den Eingangsbereich und das Regal hinaus. Für den iBeacon-Entwickler gilt es, herauszufinden, inwieweit das Growth-Hacking-System Teil des Geschäfts- und Erfolgskonzepts sein soll und wie die Beacons im Ladenlokal platziert werden. Um einen Überblick über die Growth-Hacking-Strategien mit iBeacon und damit verbundenen Technologien zu erhalten, stellen wir fünf Wege vor, die in den Einzelhandel über kurz oder lang ihren Einzug halten werden.

Virale Inhalte auf digitalen Displays: Online ist es leicht, sich zu mitzuteilen. Offline häufig weniger. Sicher, jemand kann ein Foto eines Schaufensters aufnehmen und es bei Instagram oder Facebook posten. Über Displays, Beacons und Bluetooth LE werden Pin- oder Like-Funktionen nun direkt vor Ort im Geschäft und an den Regalen bereitgestellt, sodass auch Kunden, die nicht über die neue Technologie verfügen, ihre Zufriedenheit oder Unzufriedenheit umgehend mitteilen und/oder andere, potenzielle Kunden aufmerksam machen können.

Kundenanimation: Eine Twitter-Anzeige, eine Anzeige von Facebook oder Instagram sowie eine Google-AdWords-Kampagne – jede von ihnen kann zu einem lokalen Berührungspunkt werden und den Kunden dazu animieren, den Laden zu betreten. Selbst Mobile Games, in denen Partner integriert sind, können als Kanal genutzt werden und dazu animieren, bspw. einen Gutschein einzulösen.

Zufriedenheits- und Servicestrategien am Point of Sale: Der physische Raum wird als Zufriedenheits- und Servicekanal neu entdeckt. Haben Sie Produktinformationen bekommen, die für Ihre Kunden interessant sein könnten? Vielleicht ein Video, das zeigt, wie Plasmabildschirme hergestellt werden oder ein Dokument, das die Nachhaltigkeit der Fischerei in Bezug auf die von Ihnen angebotenen Produkte bestätigt? Zeigen Sie es! In der physischen Welt kann hohe Kundenzufriedenheit durch auf den Kunden abgestimmten und angepassten Service und zusätzliche Informationen geschaffen werden.

E-Mail- und Push-Marketing: Beinhaltet Ihre iBeacon-Strategie eine E-Mail-Ankündigung oder eine automatische App-Aktualisierung? Beinhalten die E-Mails sämtliche, für den Kunden relevante Informationen und können Sie diese E-Mails auch direkt am Point of Sale an den Kunden schicken? Denn noch immer sind E-Mails eine der besten Möglichkeiten, digital zu kommunizieren und diese digitale Kommunikation zu organisieren. Ein Link in einer Beacon-App ist ein sehr einfacher Weg, um schnell an sämtliche relevanten Informationen zu gelangen.

A/B Testing und Analyse: Und der letzte, aber vielleicht auch wichtigste Punkt ist, den Erfolg zu messen: Während es bislang nur selten möglich war, die Qualität des stationären Marketings und der Produktplatzierung in Echtzeit zu überprüfen, ist dies mit iBeacon und anderen Technologien nun möglich. Diese kann genutzt werden, um das Einkaufsverhalten der Kunden präzise zu testen, zu analysieren und so best- und schnellstmöglich darauf reagieren zu können.

Aufmacherbild: Online Marketing Signpost Shows Blogs Websites Social Media And Email Lists von Shutterstock / Urheberrecht: Stuart Miles

[ header = Seite 2: Konventionen werden öfter gebrochen als zuvor ]

Konventionen werden öfter gebrochen als zuvor

iBeacon wird in naher Zukunft ein starker Bestandteil jeder Growth-Hacking-Strategie, die im Einzelhandel zum Einsatz kommt, sein. Konventionen werden öfter gebrochen als zuvor und jeder Einzelhändler muss seine Marketingprofis noch stärker in die Pflicht nehmen als zuvor und fordern, sich mit den neuen Technologien auseinanderzusetzen. Die Einsatzmöglichkeiten sind vielfältig und es gilt zu prüfen, welche zum jeweiligen Händler passt. Wer jetzt am Ball bleibt, aber nicht blind agiert, dem werden auch neue Technologien nichts anhaben – im Gegenteil: Sie werden dabei helfen, neue Kunden zu gewinnen und bestehende Kunden langfristig zu halten.

…und die Technik dahinter?

Betrachten wir als Nächstes die Technologie und holen etwas weiter aus: Das große Thema, um das es geht, ist Bluetooth LE oder auch Bluetooth Smart. Das LE steht für Low Energy. Es wurde ursprünglich 2006 von Nokia konzipiert und 2010 in die Bluetooth-Standardspezifikation mit der Version 4.0 aufgenommen. Apple unterstützt Bluetooth 4.0 seit iOS 6, und auch neuere Android-Geräte haben einen Bluetooth-4.0-Chip eingebaut. Es gibt aus heutiger Sicht drei markante Merkmale von Bluetooth LE (im Folgenden mit BLE abgekürzt):

1. Im Vergleich zu der vorherigen Version benötigen BLE-Chips wesentlich weniger Akkupower. Die meisten User schalten Bluetooth nur ein, wenn es einen akuten Anwendungsfall gibt, da sonst der Akkuverbrauch rapide ansteigt. Durch das Design der neuen Chips wird dieser Akkuverbrauch auf ein Minimum reduziert. Der alte Standard war verbindungsorientiert, d. h. nachdem eine Verbindung aufgebaut ist, bleibt sie bestehen – auch wenn keine Daten fließen. Für BLE sind einige weitreichende Verbesserungen eingeführt worden: schnelle Transaktionen < 3 ms von Anfang der Verbindung bis Übertragung von Daten, Broadcasting, max. 15 mA Verbrauch, Stern-Topologie, 128 Bit AES-Verschlüsselung – um nur einige zu nennen.
2. Aktuelle Bluetoothverbindungen sind relativ kompliziert aufzubauen. Mit BLE wird dies für gewisse Anwendungsfälle extrem vereinfacht. Auch ohne, dass eine Benutzerinteraktion stattfinden muss. Aktuell muss man das andere Device suchen, auf „Verbinden“ klicken, evt. Securityparameter übergeben usw.
3. BLE gibt einige Profile aus den Bereichen Health, Temperatur, Proximity usw. vor. Profile sind Charakteristiken oder Datenschemata, die standardmäßig von der Spezifikation vorgegeben werden. Das heißt, es gibt Hardware, die z. B. per Sensor die Temperatur misst und per Temperatur Profile aussendet. Unterstützende Applikationen können wiederum diese Daten auslesen und verarbeiten. Neben diesen Standardprofilen hält die Spezifikation auch ein generisches Profil bereit, um eigene Profile zu erstellen. Das heißt, die Technologie ist erweiterbar. Was das alles genau bedeutet und welche Auswirkung BLE haben wird, ist vielleicht noch nicht ganz klar. Wir werden jedoch auf einige Use Cases zu sprechen kommen, die es verdeutlichen werden.

Es muss aber auch bemerkt werden, dass BLE nicht unbedingt für die Datenübertragung vorgesehen ist. Die maximale Übertragungsrate von 1 Mbps ist für diesen Anwendungsfall nicht sehr geeignet und schon gar nicht für das Streaming. Das Design ist darauf ausgerichtet, kleine Datenmengen zu übertragen und das sehr effizient im Sinne von Geschwindigkeit und wenig Batterieverbrauch. Das Einsatzgebiet „Internet of Things“ ist also ganz klar im Fokus. Ganz vereinfacht kann man das so ausdrücken: Dinge haben Daten – Web Services wollen diese Daten. Und BLE liefert die Technologie, um diese beiden Welten zu verbinden. Wie erwähnt, unterstützt Apple BLE seit iOS 6 mit dem Core-Bluetooth-API. Seit iOS 7 ist das API jedoch erweitert worden um die so genannte iBeacon-Technologie. iBeacon ist dabei der Begriff für einige zusammengefasste Konzepte. BLE nutzt das GATT-Profil zum Datenaustausch. GATT ist dabei wiederum ein Framework für den Austausch von Daten. Es beschreibt Client- und Serverrollen, Attribute, Deskriptoren usw. Damit ein Hersteller ein eigenes BLE-Profil implementieren kann, nutzt er GATT als Basis. iBeacon ist also ein BLE-Profil von Apple. Es ähnelt dem schon standardmäßig vorhandenen Proximity Profile des BLE-Standards und erweitert es um einige Punkte.

Mit iBeacon werden aber auch einzelne Geräte bezeichnet, die das iBeacon-Profil unterstützen. Zum Beispiel kann jedes iOS-Device als iBeacon fungieren. Ich kann also auf einem iPad eine App laufen lassen, die das iPad als iBeacon konfiguriert. Dieses iPad sendet dann beispielsweise seine ID per Broadcast in die Umgebung. Mit einer anderen App auf meinem iPhone – das ebenfalls das iBeacon-Profil unterstützt – kann nun die Daten des iPads empfangen und verarbeiten. Das interessante dabei ist Folgendes: Ebenfalls seit iOS 6 gibt es GeoFences oder Regions. Ich definiere damit einen geographischen Bereich per Latitude/Longitude-Werten und einem Radius. Wenn ich mit meinem iPhone nun diesen Bereich betrete oder verlasse, kann ich als Entwickler von iOS eine Benachrichtigung verlangen, sodass meine App weiß, dass ich gerade in dieser Region bin oder diese Region verlassen habe. Diese GeoFences beruhen auf dem Significant Location Change des iOS-API und nutzen GPS, WIFI und Sendemasten-Triangulation. Der Genauigkeitsbereich liegt bei 70 bis 200 Metern. Apples Erinnerungen-App besitzt z. B. diese GeoFences-Funktion. Das Problem ist nicht nur die Ungenauigkeit sondern, dass GPS z. B. in geschlossenen Räumen nicht zur Verfügung steht. Aber Apple bietet genau diese Funktionalität nun seit iOS 7 auch als Bestandteil der iBeacon-Technologie an. Das heißt, ich kann nun Regions definieren, die auf die Entfernung (Proximity) zu einem iBeacon-Device beruhen. Das heißt, wenn wir in die Nähe eines iBeacons kommen oder uns von einem entfernen, löst das iPhone eine Benachrichtigung aus, auf die der Entwickler reagieren kann. Das Stichwort ist Region Monitoring. Wenn solch ein Event ausgelöst wird, also beispielsweise ich betrete den Bereich eines bestimmten iBeacons, kann ich nun die Entfernung zu diesem iBeacon ebenfalls herausbekommen. Dabei sieht das iBeacon-Profil drei bzw. vier Standardbereiche vor: immediate, near, far und unknown. Die App kann diese Bereiche abfragen und entsprechend darauf reagieren. Die Einsatzmöglichkeiten sind schier grenzenlos und wir gehen später noch detaillierter darauf ein.

Technische Herausforderungen

Wir haben mit der Grundtechnologie experimentiert und sie funktioniert. Ein Problem stellen jedoch Interferenzen dar. Da BLE auf dem Aussenden und Empfangen von Radiowellen beruht, können natürlich auch Interferenzen auftreten. Gerade in einem Elektronikfachmarkt kann das problematisch sein. Ausgeklügelte Apps können jedoch Peaks erkennen und z. B. durch Abweichungsalgorithmen relativ robuste Werte liefern. Wir wollen uns unter iOS ein Beispiel anschauen: Es ist im Moment relativ schwierig, an „echte“ iBeacon-Devices heranzukommen. Das rührt daher, dass Apple die Spezifikation noch nicht offen gelegt hat. Es gibt jedoch einige Firmen, die über Reverse Engineering das Protokoll entschlüsselt haben und schon iBeacon-Geräte verkaufen. Ob das mit Apples Policies vereinbar ist, können wir leider noch nicht sagen; man sollte also etwas Vorsicht walten lassen. Des Weiteren haben diese Geräte lange Lieferzeiten. Apple hat aber bereits angekündigt, die Spezifikation offen zu legen; es ist also nur eine Frage der Zeit. Wer mit der Technologie herum experimentieren will, hat mehrere Möglichkeiten.

Verwandlung eines iBeacons

Zum einen kann man sich unter Linux mit einem BLE USB Dongle, dem BlueZ Bluetooth Stack und einigen Low-Level-Kommandozeilen behelfen, um ein iBeacon zu simulieren. Einfacher geht es jedoch, wenn man ein zweites iOS-Gerät besitzt (iPad oder iPhone) und dieses in ein iBeacon verwandelt. Die einzige „verlässliche“ Info zu dem Thema bot Apple selbst und zwar auf der WWDC 2013 in den Sessions „703 CoreBluetooth“ [1] und „307 CoreLocation“ [2]. Ebenfalls gibt es auf der Apple-Seite Beispielcode (ios_airlocate.zip), der die iBeacon-Technologie demonstriert. Wir wollen uns an dieser Stelle den Code und das Beispiel etwas genauer anschauen.

AirLocate

Nach dem Herunterladen des AirLocate-Beispielcodes sollte man zwei iOS-Geräte zur Hand haben, da man den Code nicht im Xcode-Simulator als iBeacon definieren kann. Hat man keine zwei iOS-Geräte zur Hand, kann man sich von [3] ein kostenloses Programm herunterladen, das in einer VirtualBox läuft. In unserem Versuch diente ein iPad 3 mit iOS 7 als iBeacon. Dazu startet man die App auf dem iPad (nachdem man es in Xcode kompiliert und auf dem Device geladen hat). Es präsentiert sich ein spartanisches Menü mit vier Menüpunkten (Abb. 1). Um ein Device als iBeacon zu konfigurieren, wählt man den letzten Menüpunkt: Configuration. Ein Klick auf „Enabled“ und „Save“ konfiguriert das Gerät bereits als iBeacon (Abb. 2).

Abb. 1: AirLocate

Abb. 2: AirLocate/Configure

Einfach ausgedrückt sendet dieses Device nun seine ID als iBeacon-Advertising-Paket in den Äther. In Code sieht das aus, wie in Listing 1 zu sehen.

if(_enabled)
{
  // We must construct a CLBeaconRegion that represents the payload we want the device to beacon.
  NSDictionary *peripheralData = nil;
  if(_uuid && _major && _minor)
  {
    CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:_uuid major:[_major shortValue] minor:[_minor shortValue] identifier:@"com.apple.AirLocate"];
    peripheralData = [region peripheralDataWithMeasuredPower:_power];
  }
  else if(_uuid && _major)
  {
    CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:_uuid major:[_major shortValue]  identifier:@"com.apple.AirLocate"];
    peripheralData = [region peripheralDataWithMeasuredPower:_power];
  }
  else if(_uuid)
  {
    CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:_uuid identifier:@"com.apple.AirLocate"];
    peripheralData = [region peripheralDataWithMeasuredPower:_power];
  }
  
  // The region's peripheral data contains the CoreBluetooth-specific data we need to advertise.
  if(peripheralData)
    {
    [_peripheralManager startAdvertising:peripheralData];
  }
}
else
{
  [_peripheralManager stopAdvertising];
}

Um ein Beacon zu definieren, müssen wir zuerst ein Objekt vom Typ CLBeaconRegion mit bestimmten Werten initialisieren und einen CBPeripheralManager mit startAdvertising dazu bringen, den Broadcast zu starten. Das ist soweit einfach. Kommen wir auf die Werte zum Initialisieren zu sprechen. Ein CLBeaconRegion kommt mit folgenden Werten:

ProximityUUID: Dies stellt die Haupt-ID des Beacons dar. Wie man anhand von Abbildung 2 sieht, kann man diese ID selbst angeben. Dabei handelt es sich um eine 32 Byte UUID. Man kann diese IDs mit dem Kommandozeilentool uuidgen unter Mac OS generieren. Diese ID sollte je nach Use Case eindeutig sein und bildet zusammen mit dem Major und Minor Value die eigentliche ID des Beacons. Zum Beispiel kann die UUID Ihre Firma oder App repräsentieren. Man kann die Kombination dieser drei Werte als eine Art Namespace verstehen.

Major: Der Major Value ist vom Typ NSNumber und kann (muss aber nicht) verwendet werden, um das iBeacon weiter einzugrenzen. Zum Beispiel kann es verwendet werden, um ein einzelnes Einzelhandelsgeschäft innerhalb Ihres Use Cases zu identifizieren.

Minor: Der Minor Value ist ebenfalls optional und vom Typ NSNumber. Er kann z. B. verwendet werden, um ein einzelnes iBeacon innerhalb des Einzelhandelsgeschäfts zu identifizieren.

Identifier: Dies ist ein interner String Identifier und spielt technisch keine Rolle.

Measured Power gibt die Signalstärke in Dezibel an. Je höher die Zahl, umso weiter reicht das Signal. Eine eindeutige Zuordnung von Signallautstärke zu Metern gibt es nicht. Es kommt auf die verwendete Hardware, insbesondere die verbauten Antennen an. Hier muss man etwas experimentieren, um eine für sich geeignete Zuordnung zu finden. Theoretisch sind Werte von wenigen Zentimetern bis 100 Meter möglich. Wenn alle gewünschten Werte definiert sind, startet man mit

_peripheralManager startAdvertising:peripheralData 

das Senden als iBeacon. Jetzt wird es erst spannend: Wir starten die App auf unserem zweiten iOS-Device (ein iPhone 4S). Man kann nun zwei Use Cases ausprobieren. Das Monitoring und das Ranging.

[ header = Seite 3: Monitoring ]

Monitoring

Beim Monitoring (Abb. 3) wird mithilfe des CoreLocation-Frameworks eine Region definiert, auf die „gehorcht“ werden soll. Betritt man mit dem iPhone nun diese Region oder verlässt sie, wird eine entsprechende delegate-Methode aufgerufen.

Abb. 3: AirLocate/Monitor

Das funktioniert so ähnlich wie beispielsweise GeoFences in der Apple-eigenen Reminder-App. Allerdings definiert man keine Geokoordinaten, sondern definiert die ProximityUUID zusammen mit den Major/Minor-Werten als Trigger. Dies ist in Listing 2 zu sehen.

if(_enabled)
{
  CLBeaconRegion *region = nil;
  if(_uuid && _major && _minor)
  {
    region = [[CLBeaconRegion alloc] initWithProximityUUID:_uuid major:[_major shortValue] minor:[_minor shortValue] identifier:@"com.apple.AirLocate"];
  }
  else if(_uuid && _major)
  {
    region = [[CLBeaconRegion alloc] initWithProximityUUID:_uuid major:[_major shortValue]  identifier:@"com.apple.AirLocate"];
  }
  else if(_uuid)
  {
    region = [[CLBeaconRegion alloc] initWithProximityUUID:_uuid identifier:@"com.apple.AirLocate"];
  }
  
  if(region)
  {
    region.notifyOnEntry = _notifyOnEntry;
    region.notifyOnExit = _notifyOnExit;
    region.notifyEntryStateOnDisplay = _notifyOnDisplay;
    
    [_locationManager startMonitoringForRegion:region];
  }
}

Die Region wird dabei wieder als CLBeaconRegion-Objekt definiert. Das „Horchen“ wird mit

_locationManager startMonitoringForRegion:region 

gestartet. Da wir beim Starten des iPads als iBeacon nur die ProximityUUID verwendet haben und keine Major/Minor-Werte, greift hier der Zweig:

else if(_uuid)

{
  region = [[CLBeaconRegion alloc] initWithProximityUUID:_uuid identifier:@"com.apple.AirLocate"];
}

Die UUID muss dabei dieselbe sein, wie beim Initialisieren als iBeacon. Hat man in den Settings aus Abbildung 3 die beiden Schalter Notify Entry und Notify Exit gesetzt, so wird beim Eintritt bzw. Austritt aus dem Sendebereich des iBeaons eine entsprechende Methode vom AppDelegate aufgerufen (Listing 3).

- (void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region
{
  // A user can transition in or out of a region while the application is not running.
  // When this happens CoreLocation will launch the application momentarily, call this delegate method
  // and we will let the user know via a local notification.
  UILocalNotification *notification = [[UILocalNotification alloc] init];
  
  if(state == CLRegionStateInside)
  {
    notification.alertBody = @"You're inside the region";
  }
  else if(state == CLRegionStateOutside)
  {
    notification.alertBody = @"You're outside the region";
  }
  else
  {
    return;
  }
  
  // If the application is in the foreground, it will get a callback to application:didReceiveLocalNotification:.
  // If its not, iOS will display the notification to the user.
  [[UIApplication sharedApplication] presentLocalNotificationNow:notification];
}

Der Status, also Eintritt/Austritt aus der Region, wird per Übergabeparameter in die Methode hereingereicht. Durch einen einfachen Check kann man auf den jeweiligen Status reagieren. Im Apple-Beispiel wird eine einfache Notification ausgelöst. Man könnte an dieser Stelle eine Serveranfrage starten und z. B. ein Coupon ausspielen. Falls die App im Vordergrund läuft, wird ein einfaches Alert in der Methode in Listing 4 ausgelöst.

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
  // If the application is in the foreground, we will notify the user of the region's state via an alert.
  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:notification.alertBody message:nil delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
  
; }

Ist die App im Hintergrund, wird eine Local Notification von iOS ausgelöst. Dies führt uns zu der Frage, ob die App laufen muss, um die Notification zu erhalten? Das ist etwas komplizierter zu beantworten und hat einige Abhängigkeiten. Zum einen funktioniert das Senden und Empfangen von Signalen auf Basis von Broadcast und Scan. Das heißt, ein Device sendet die Signale in bestimmten zeitlichen Intervallen und ein anderes Device scannt in zeitlich festgelegten Intervallen nach diesen Broadcast-Signalen. Apple gibt keine genaue Auskunft über diese Intervalle, sodass man auf eigene Tests angewiesen ist. Nach unseren Versuchen und einigen Recherchen scheint das API alle 15 Minuten einen Scan zu machen. Das scheint sich aber auch je nach Batteriestatus zu ändern und gilt nur für das Monitoring. Bei gleichzeitigem Einschalten der Ranging-Funktionalität ist dieses Intervall wesentlich kürzer und im Sekundenbereich – klingt auch logisch, denn für das Ranging braucht man nahezu Echtzeitdaten.

Aufmerksamen Lesern wird in Abbildung 3 noch das Setting Notify Entry Display aufgefallen sein. Dieses Setting hat mehrere Auswirkungen. Zum einen gibt es den Fall, dass man sich vielleicht schon im Range eines iBeacons befindet, wenn man die App startet. In diesem Fall wird, ohne dass dieses Setting gesetzt ist, kein Trigger ausgelöst. Die andere Auswirkung ist, dass wenn das iPhone in den sleep-Modus geht und wieder aufgeweckt wird, ohne das eingeschaltete Setting kein zeitnaher Trigger ausgelöst wird. Eine letzte Auswirkung, die uns aufgefallen ist: Unabhängig vom UIBackgroundModes steuert dieses Setting alleine für sich, ob ein Aufwecken der App und Notification ausgelöst wird. Das heißt, man kann den Background-Mode auch auf OFF stellen, trotzdem findet eine Notification statt. Laut Apple sollte, wenn einmal ein RegionMonitoring auf dem Device registriert worden ist, eine Notification auch dann stattfinden, wenn die App nicht einmal läuft – also weder im Vorder- noch im Hintergrund. Hierzu weckt iOS jede App, die sich auf dem jeweiligen iBeacon Region Monitoring registriert hat und gibt ihr fünf Sekunden Zeit, eine entsprechende Maßnahme zu ergreifen. Wir haben es jedoch nicht geschafft, das mit der AirLocate-App nachzustellen. Erst durch eine eigene Implementierung eines Beispiels konnte das Verhalten verifiziert werden. Wie schon erwähnt, verkürzt das Einschalten der Ranging Services mit

[_locationManager startRangingBeaconsInRegion:region];

das Scan-Zeitintervall.

Ranging

Abbildung 4 können Sie entnehmen, dass sich unser iBeacon (iPad) mit der UUID E2C56 … in dem Empfangsbereich unseres iPhones befindet. Der Bereich heißt hier Near und die ungefähre Meterangabe liegt bei ca. einem Meter.

Abb. 4: AirLocate/Ranging

Hat iOS Beacons im Empfangsbereich entdeckt, ruft es wie gewohnt eine delegate-Methode auf.

- (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region

Dabei werden alle gefundenen Beacons als ein Array geliefert:

(NSArray *)beacons

Eine Range kann im Prinzip vier verschiedene Status besitzen, die als Enum-Werte zum Abfragen zu Verfügung stehen.

CLProximityUnknown: Die Entfernung zum iBeacon kann nicht bestimmt werden.
CLProximityImmediate: Immediate bedeutet, das Device befindet sich in unmittelbarer Nähe zum iBeacon. Das sind wenige Zentimeter.
CLProximityNear: Das Device befindet sich in der Nähe des iBeacons. Das sind ca. 30 cm bis wenige Meter.
CLProximityFar: Das Device befindet sich mehr als vier Meter vom iBeacon entfernt.

Wie bereits erwähnt, hängen diese Werte von der verwendeten Signalstärke/Antenne etc. ab. Um alle iBeacons in der Nähe zu finden, kann man Filter verwenden, die mir aus der Liste aller gefundenen Beacons die ausspuckt, die den Status CLProximityNear haben:

NSArray *nearBeacons = [beacons filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"proximity = %d", CLProximityNear]];

Hat man ein CLBeacon-Objekt erst einmal an der Hand, kann man mit beacon.accuracy die ungefähre Meterzahl herauskriegen. Apples Dokumentation ist an dieser Stelle noch sehr spärlich. Man ist auf eigene Experimente angewiesen und auf Informationen in Suchmaschinen. Nichtsdestotrotz kann man mit dem verfügbaren Material und Development Kits von Drittherstellern bereits mit dem Experimentieren anfangen und so mit der Technologie Erfahrungen sammeln.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -