There is a growing market trend to deliver personalized and targeted advertising to consumers. In particular, location-based targeted advertising based on providing personalized promotions on a consumer’s location can be an extremely effective in influencing buying decisions.
Location-based targeted advertising is conceptually simple – while the customer is in the vicinity of the vendor’s store, sending a promotional message or discount coupon to the customer is likely to encourage the customer to make a purchase at the vendor’s store promptly, thus increasing revenue and improving the effectiveness of marketing campaigns. Given the pervasive nature of smart phones, the most obvious way to achieve this is to send a promotion to the potential customer’s smart phone when he or she is near the store.
Though conceptually simple and easy to explain, creating a solution for location-based targeted advertising presents several challenges. The primary challenge is the ability to deliver the promotion/discount coupon in a timely manner, in particular, before the potential customer walks away from the store. Operations such as detecting the proximity of a particular customer who is near the store, retrieving the customer record from the database, determining what promotions are likely to appeal to the customer, and delivering them to the customer’s smart phone need to be executed with very low latency.
Let’s look at the salient aspects of such a software application in some more detail. The phone number identifies the customer. When the customer’s smart phone is in the vicinity of the store (this can be determined by technologies such as Bluetooth, GPS, WiFi or other means), the software application needs to look up the customer record, determine what promotions are appropriate, and send a message to the smart phone. Such systems typically have an opt-in policy where customers can choose whether to receive location-based promotions. A merchant might have hundreds of thousands of opt-in subscribers interested in personalized, location-based promotional offers. Low latency lookup and response is the critical requirement of such a system. Concurrency is another important requirement for such an application, since there are likely to be several customers in the vicinity of the store at any given time.
The ability to manage large amounts of data (hundreds of thousands to millions of customer profiles) and high availability are other important attributes of such applications. Information about a customer, including demographic profile and purchase history is typically a few hundred kilobytes of data. For hundreds of thousands of customer profiles, this can quickly grow to tens to hundreds of gigabytes of data. In addition, for brick-and-mortar merchants who might have a few thousands stores across multiple locations, a cost-effective solution becomes an important consideration. Due to the high network latency associated with a centralized solution, it is desirable to maintain information about customer profiles and (predicted) purchasing preferences in each store.
Berkeley DB is an ideal database system for addressing these requirements. Berkeley DB is a lightweight, embeddable database with APIs for data manipulation as well as database administration.
Berkeley DB is designed to manage hundreds of gigabytes of data efficiently and reliably. Berkeley DB supports concurrent data manipulation because of its sophisticated fine-grained locking and multi-version concurrency features. Berkeley DB provides extremely low latency access to data – a customer profile record can be retrieved in less than 10 milliseconds on a commodity hardware platform.
Besides key-value based APIs like get_record(), put_record( ), Berkeley DB also supports a standard SQL API for manipulating data, which can be a significant convenience for the application developer. In the context of this scenario, the developer can easily specify a SQL query to retrieve the customer record as well as a list of potential product recommendations for that customer, determine the most suitable promotion and send a text message with a personalized recommendation to the customer’s smart phone in a timely manner. Such an application can be developed and deployed on a desktop-class machine in each store, with the capability to manage hundreds of gigabytes of information.
Berkeley DB also provides a wide range of indexing options including b-tree indexes, hash indexes, queue, recno and heap access methods for efficient data access. In this particular scenario, a hash index might be most appropriate, since the application is interested in accessing a specific record in the database (exact-match lookups).
Berkeley DB is also integrated with Database Mobile Server (a related Oracle product). Database Mobile Server enables each in-store repository to be synchronized with a central repository of all customers. Typically, the central repository is used to analyze the data and predict individual customer preferences using store-specific information as well as “global” information related to purchasing patterns and trends. After the analysis, the updated information can be “pushed” to the individual store repositories in order to provide better product recommendations to customers.
Berkeley DB is a mature, robust, database solution that has been used in a wide variety of data management applications, with over 200 million production deployments. Berkeley DB customers appreciate the reliability, performance, ease of use and flexibility of Berkeley DB as well as the ability to get commercial support for their applications. Berkeley DB is a solution you can rely on, for a wide variety of high performance, high availability, enterprise database applications.
Please see www.oracle.com/technetwork/database/berkeleydb/learnmore/BDBAdvertisingExample.zip
for a sample location-based personalized advertising application that illustrates many of the relevant features of Berkeley DB discussed in this paper.