Beacons for Online Advertising an Approach Using a Plugin
Total Page:16
File Type:pdf, Size:1020Kb
DEGREE PROJECT IN COMPUTER ENGINEERING, FIRST CYCLE, 15 CREDITS STOCKHOLM, SWEDEN 2017 Beacons for online advertising An approach using a plugin ALBIN FRIEDNER ALEXANDER NIKALAYEU KTH ROYAL INSTITUTE OF TECHNOLOGY SCHOOL OF INFORMATION AND COMMUNICATION TECHNOLOGY Abstract Beacons are small devices that can broadcast messages using Bluetooth and other communication technologies using low power consumption. Beacons technology started to emerge lately and many companies has started to see opportunities. One usage of beacons is improving online advertising by using localized information. The most common way to consume beacons today, is by using a native application. This solution is viable in many cases, but not for online advertising. The reason for this is that users do not want to download a native application only for advertising. In this study, solutions for online advertising using beacons, are examined. The study is focused around a case study on implementing a plugin for Android applications. The plugin consists of a background service that listens for beacon messages, converts the beacon messages to geographic information and gathers user information. All that information is sent to a web service to later perform retargeting. This improves online advertisement, since localized advertisement can be displayed to the user. The results of the case study showed that the plugin is a viable solution for online advertising using beacons. The plugin could be integrated and launched from different Android applications in a simple way. Measurements of the RAM usage and battery consumption indicates that the plugin can run with no huge impact on the performance or battery of the phone. The purpose of the study is to present different ways of using beacons for online advertising. Keywords Beacons, Android, Plugins, Bluetooth, Retargeting, Physical Web Abstract Beacons är små enheter som kan sända ut meddelanden genom att använda Bluetooth eller andra kommunikationstekniker med låg energiförbrukning. Teknologin bakom Beacons började framträda nyligen och många företag har redan sett de möjligheter som finns med teknologin. Beacons kan bland annat användas till att förbättra digital reklam genom att använda lokaliserad information. Det vanligaste sättet att konsumera beacons är att använda en lokal applikation. Det sättet är användbart i många fall, men inte för digital reklam. Anledningen till det är att användare tenderar att inte vilja ladda ner applikationer endast för att få reklam. I den här studien undersöks lösningar för att använda beacons för digital reklam. Studien fokuserar kring en fallstudie om ett insticksprogram till applikationer för Android. Insticksprogrammet består av en bakgrundstjänst som lyssnar efter meddelande från beacons, konverterar meddelandet till geografisk information, samlar information om användaren och skickar informationen till en web service, som senare använder informationen för att ge användare anpassad reklam. Detta förbättrar reklamen, eftersom användarens position kan användas för att ge bättre anpassad reklam. Resultaten från fallstudien visar att insticksprogrammet är en genomförbar lösning för att använda beacons för digital reklam. Insticksprogrammet kan integreras och startas från en applikation i Android på ett enkelt sätt. Mätningar av insticksprogrammets RAM-användning och batterianvändning visar på att det kan köras utan att märkbart påverka telefonens prestanda eller batteri. Syftet med den här studien är att visa olika sätt som beacons kan användas för digital reklam. Nyckelord Beacons, Android, Insticksprogram, Bluetooth Table of Contents 1 INTRODUCTION 1 1.1 Background 1 1.2 Problem 2 1.3 Purpose 2 1.4 Delimitations 2 1.5 Outline 3 2 THEORETIC BACKGROUND 5 2.1 Beacons 5 2.1.1 Bluetooth technology 5 2.1.2 Power usage and range 6 2.1.3 Communication protocols 6 2.1.4 iBeacon 7 2.1.5 Eddystone 7 2.1.6 Estimote protocols and tools 9 2.1.6.1 Fleet management API 9 2.1.6.2 Here & Now 9 2.1.6.3 Nearable 9 2.1.6.4 Other protocols and tools 9 2.1.7 Common usages 10 2.2 Android 10 2.2.1 Android Applications 10 2.2.2 Estimote SDK for Android 11 2.2.2.1 Estimote Connection 11 2.2.2.2 Estimote Location 11 2.2.2.3 Estimote Telemetry 12 2.2.3 Plugins and libraries 12 2.3 Online advertising 12 2.4 Data Management Platform 13 2.5 Earlier work 13 2.6 Summary 14 2.7 Sources and related works 15 3 METHOD 17 3.1 Research methods 17 3.1.1 Qualitative and quantitative research methods 17 3.1.2 Inductive and deductive approach 17 3.1.3 Chosen research method 17 3.1.4 Process overview 17 3.2 Data collection methods 18 3.2.1 Company information 18 3.2.2 Literature study 18 3.3 Analysis process 19 3.4 Implementation process 20 3.5 Evaluation methods 21 3.5.1 Non-functional requirements 21 3.5.2 Functional requirements 22 3.6 Project method and software development tools 22 3.6.1 Project method 22 3.6.2 Development environment 23 4 ANALYSIS 25 4.1 Interpretation of Adoveo requirements 25 4.2 Experiments 26 4.2.1 Receiving beacon signals 26 4.2.2 Retrieve information from a webservice 29 4.2.3 Collecting user data 30 4.2.4 Building a library 31 4.2.5 Launching the plugin 32 4.2.6 Start the beacon service on phone boot 33 4.2.7 Beacon plugin with a notification task 34 4.2.8 Physical web and retargeting plugin 35 5 CASE STUDY: THE ADOVEO BEACON PLUGIN 37 5.1 Design 37 5.1.1 General idea 37 5.1.2 Choose which beacons to monitor 38 5.1.3 Store beacon information 39 5.1.4 Generic plugin 40 5.1.5 Division of packages 41 5.1.6 Thread pool for retargeting job 41 5.1.7 Check network before sending information 42 5.2 Implementation 42 5.2.1 Beacon representation 42 5.2.2 Beacon fetcher 44 5.2.3 Beacon storage 45 5.2.4 iBeacon manager 45 5.2.5 Retargeting implementation 46 5.2.6 Data management platform client 47 5.2.7 Plugin launcher 47 6 RESULTS OF THE CASE STUDY 49 6.1 Evaluation of functional requirements 49 6.2 Evaluation of non-functional requirements 49 6.2.1 Simplicity of integration 50 6.2.2 Launching procedure 50 6.2.3 Impact on performance 50 6.2.3.1 90 minutes controlled experiment 50 6.2.3.2 12 hours real-world environment 51 6.2.4 Impact on battery life 51 6.2.4.1 One hour controlled experiment 51 6.2.4.2 Eight hours empiric test 52 7 DISCUSSION 53 7.1 Discussion of the methods used 53 7.1.1 Data collection 53 7.1.2 Implementation 54 7.1.3 Evaluation 54 7.2 Discussion of the results 55 7.3 Comparison with other solutions 55 7.3.1 Application only 55 7.3.2 Plugin with notifications 56 7.3.3 Physical web and Estimote Here & Now 56 7.3.4 Physical web with retargeting plugin 56 7.4 Research sources 57 7.5 Sustainability 57 7.6 Ethics 58 7.7 Contribution 58 7.8 Future research 58 9 REFERENCES 59 LIST OF ABBREVIATIONS AND CONCEPTS 5G The fifth generation of mobile networks. Android A mobile operating system based on Linux. Android SDK API Level A specific version of the Android platform which defines what functionality is available in the system. Android Studio An integrated development environment (IDE), used for developing Android applications. API Application Programming Interface specifies how applications can communicate and use a specific software by an interface. Beacons Low-power, low-cost devices that transmits information using Bluetooth Low Energy. Bluetooth Low Energy (BLE) Technology for wireless communication that uses low energy. Also known as Bluetooth Smart. Eclipse An integrated development environment (IDE), used primary for developing applications in Java. Estimote Cloud A collection of services provided by Estimote and includes a web dashboard, beacons management, authentication and security and much more GATT Generic Attributes defines a hierarchical data structure that is used for connecting devices that uses Bluetooth Low Energy. Gradle An open source system for automating the build and associated processes for a software. GPS A navigation system that makes use of satellites in order to define the location of a device. iBeacons A protocol developed by Apple and is used in beacons. ID Identification, usually a number, is used for distinguishing different objects or subjects. Integrated Development Environment (IDE) A software application that provides tools for software development. A few examples of tools are a code editor and a code compiler that converts human readable code to machine code. Internet of Things (IoT) Everyday objects that can be connected and exchange data through Internet iOS A mobile operating system, used on mobile devices manufactured by Apple. IP-address Identifier for a node in a TCP/IP network used for identifying and locating the node. Java An object-oriented programming language developed by Sun Microsystems. Linux An open-source operating system based on Unix. MB Megabytes is one million bytes and is an entity for digital space measurement SDK Software Development Kit is a set of tools that can be used to develop applications for specific operating systems, platforms, frameworks etc. Source code A collection of instructions, data and comments that is written in a programming language TDD Test Driven Development is a software development process where tests for a functionality are written before the source code is written. Unit test A test for testing a specific component of an application Unix A collection of operating systems that Linux and Mac OSX are based on.