CS8803 Advanced Internet Application Development Project Report Location Based Advertisements Rushabh Shah rushabh@gatech.edu Praveen Krishnaiah praveen.krishnaiah@gatech.edu Naren Chainani naren.chainani@gatech.edu Jatin Kumar jatin.kumar@gatech.edu 1. Introduction In the last decade, mobile phones have penetrated our lives more than what we could have imagined and have become an indispensable part of our life. Mobile phones have assumed responsibilities much higher than the traditional use of calling/receiving calls. Today mobile phones also work as organizers, entertainment devices providing audio/visual entertainment and offer internet connectivity. With more powerful hardware and software being packed into the mobile handset, mobile phones are going to offer more services. Recently, the addition of GPS functionality into mobile phones has opened an entire new dimension of applications called Location Based Services possible. After years of hype, mobile Location Based Services (LBS) are finally gaining traction among wireless subscribers. This growth is driven on the supply side by WCDMA and GSM handsets increasingly joining the many CDMA-based devices that incorporate GPS capabilities; and on the demand side by surging consumer interest in personal navigation functionality. According to a new report from ABI Research, LBS revenue is forecast to reach an annual global total of $13.3 billion by 2013, up from an estimated $515 million during 2007. 2. Motivation Research [1] shows that LBS in general are not powerful to generate billions of dollars by itself in revenues. It is the applications that use LBS that are going to drive the generation of the revenues. The success of LBS thus depends on the applications that exploit the location of the user to provide some innovative application. We have shown one such application that has a potential to help users use their mobiles to do something useful and at the same time generating large revenues for the businesses involved. Location Based Advertisement System is a LBS application that we feel is beneficial for both the mobile phone user as well as the retailer who wishes to advertise their product. Our system is aimed to minimize the privacy intrusion of the user that could deter the user from using the application and provide the user with incentive to use the application. 3. System Architecture Figure 1: High Level 3-Tier Architecture of the Application Figure 2: The System Architecture showing the different components The system mainly consists of the following components: a) Company front end: The company front end consists of the webpage that the company representative can see on the website. The company can enter its company address and its point on the map will be located using Google Map API. The company can enter the product advertisement and the keywords that he wishes to display to the client. Currently we support only text advertisements but this can be extended to images /animations that we have do not currently support at the moment. Also, we can have a RSS feed from the company that will update the advertisement, which may be required as the deals/product information may change frequently. b) The application server: The application server is a WAMP application server that communicated between the company frontend the MySQL database. It is responsible for receiving the data from the website and updating the MySQL database. c) The MySQL database: This database contains the information about the company advertisement, keywords, location details in the form of latitude/longitude etc. d) The client side: The client side is Google Android. Our application will run as an application on Android. a. User preference module: This module receives the advertisement from the application server and filters the advertisements that reach the client. The user preference module ranks different advertisements based on user preferences based on heuristics such as age/sex /occupation of the clients. Currently the user preference module is a static module that determines the advertisement rank for that user based on some fixed attributes. However, it can be implemented as a learning module using some machine learning algorithms that track the user preferences over a period of time. The main advantage of this module is that it filters the advertisements to the user, shows him the advertisements that are relevant to him. This is important so that the user is not spammed with unwanted advertisements. b. The display module: Along with the Google map API, the display module displays the advertisements that have been filtered by the user preference module. Note that we are not storing the user location anywhere in the system but in the local cache on the user device. This is important to preserve the privacy of the user. 4. Database Figure 3: Database schema for the system 5. Commercial Viability Target Audience: As mentioned in Section 2, this application is aimed at both the consumers (mobile phone users) and retailers (companies who wish to advertise their products). The difference between existing advertising systems and our system is that our system allows personalized advertisements where the personalization is based on the location of the person as well his preferences. Advantages to users: Clients are sent location specific information about the products of their liking at the time they want it. This personalization reduces the chances of spam as the advertisements are going to be filtered according to the user location and preference. Advantages to retailers: Retailers are assured of a targeted audience who is more inclined to buy the product. This is a great incentive for retailers who want to advertise their products to customers .This system allows them to advertise their products when the customers are in their vicinity and hence more likely to see the advertisement and buy the product. 6. The Location based advertisement system in action Figure 4: The welcome screen of the application Figure 2 shows the welcome screen the user will see when he opens the application. By default, we display certain ads based on the last few searches of the user. For privacy concerns as of now these ads are hard coded. The location shown in the map is around BayShore Fwy in California US. This is the default gps trace given in android. Figure 5: Result for a camera query The user is interested in buying a camera, so he enters the keyword and hits GO. The keyword “camera” along with the current location of the user is sent to the server as an http request. The server queries the database to see if there are any companies around this area which sell cameras registered in the system. A match is found in the database and the “Best-Buy” store is displayed to the user. We will return to the client’s perspective later. Let us take a step back here and take a look at the company side of the application. To demonstrate a use case let us search of camera in find business around BayShore Fwy, in Google maps. Figure 4 shows this result. Figure 6: Google maps result for camera around BayShore Fwy, California “Best Buy” is already on our system, to compete Keeble & Shuchat Photography (K & S) wants to join our system. So the K&S Photography company representative visits our website shown in figure 5. Figure 7: Advertisement registration website Figure 5 shows the advertisement registration site. A K&S representative enters the store location and hits “Search Location”. The latitude and longitude of the store are found out. Then the advertisement that has to be displayed to the users is entered along with the related keywords. Once this information is submitted, the ad along with the store location and keyword is added to the database. Figure 8: Recently added K&S ad is displayed to the user Now returning to our user who is on BayShore Fwy is still looking for cameras. The client system does a continual query (CQ) since the location of the user is constantly changing. The client sends a query to the server after the location of the user has changed by a specified limit or a certain time has expired since the last request. This way any new search results are updated without the user doing anything. Figure 9: View when the user clicks on an advertisement Now that the list of ads related to the location and preference is displayed in a list, the user click on an ad that interests him. On clicking, the ad is displayed to the user and the direction from the user’s current location to the store location is given with the approximate distance and driving time. Figure 10: Multiple preference results The system is also capable to displaying ads for multiple user preference. 7. Issues and concerns 5.1. Technical challenges The main challenge for this application is the availability of GPS enabled handsets. For this application to be commercialized, we require a large user base. GPS enabled phones have arrived in the market, but they are still quite less in numbers. The main deterrent to increase in the number of phones is the cost of phones. Though eventually the cost of such phones is going to go down, the main question is when? This system has been designed for the Android OS only. If we want to target a larger user base, we would have to extend this application on other systems as well such as Windows mobile, Symbian, Linux etc. Current system uses updates to/fro to the server from the phone which can be costly. Hence, minimization of network traffic between the server and the phone is a challenge. This can be achieved using intelligent caching of information along with delayed updates depending on the usage of the phone. The advertisements sent to the user depend on the location of the server combined wit h certain fixed heuristics. However, for a large scale system, we would require a user preference module that would analyze the user preferences based on the selection of his advertisement over a period of time. The user preference module would then help in filtering out unwanted advertisements to the user as well as giving the advertisements to the user which may be of interest to him. Hence the user preference module will help improve the personalization of the system. 5.2. Privacy concerns The main privacy concern is that the location of the user will be recorded by a third party (the application server). Unauthorized use of this information can be privacy breach for user. For this problem, we suggest that the service be trusted by the end user as a service that preserves his privacy. We have ways that can verify the authenticity of a service, but the end user must trust the service for guarding its privacy, once the user has authenticated the service. 8. Future work The future work on this project deals with mainly solving the issues that have been mentioned in the technical challenges section. Apart from these technical challenges, this system can also be adapted to be used for a number of different applications. Some of these applications are 1) Spatial alarms: Users can subscribe to specific events, like research talks, recruitment events, etc in the university campus, in specific buildings. On passing close by to these registered buildings, the latest alerts are sent to the user’s mobile. For eg: User A has registered for event “Free Food” in Klaus building. Whenever user A is around Klaus, and there exists free food somewhere in Klaus,” the location, and the type of food“, alert is sent to the user’s mobile phone. 2) Friend finder: Different users can register to the friend finder service. When friends are close in a certain range, alerts are sent to the user’s phones alerting them the presence of their friends. These are some examples of applications that use a very similar infrastructure and design to our system. Some modification in the database schema and the user interface would be sufficient for converting our application to the above mentioned applications. 9. Conclusion: We have developed a location based service that has a huge commercial potential .The design of this system is such that it can be extended to many applications .We have tried to take care of the user privacy and the user preferences as well. There are a lot of extensions that can be made to the existing system and which have been suggested in this report. This project was interesting because it gave us experience to develop location based services for mobile devices. It was particularly interesting because it gave us a chance to work on the Google Android platform which in our opinion is going to be a very powerful platform once it is released for mobile devices. It was a good learning experience because we understood as to what goes into making a commercial application. The continual query lecture in the class was very helpful and gave us valuable directions for the development of this project. References [1] http://www.wirelessdevnet.com/features/williams_lbs01/