Media buyers, agencies, and brands are being bombarded with sales pitches that promise great performance of mobile ad campaigns. Tech blogs are full of terms like “big data”, “location”, “audience targeting”, etc. The reality is that very few advertising technology companies can actually offer a reliable service that fulfills the promise of reaching the right audience on a mobile app. JiWire’s Location Graph is a patent-pending solution to the toughest problem in the mobile advertising industry: reaching the right audience at the right time, i.e. when the user is most receptive to a mobile ad, not necessarily simply within a geofence. The Location Graph combines JiWire’s first-party data — the “big data” — with our proprietary platform based on machine learning.
The mobile advertising landscape
Many mobile ad technology companies offer targeting “based on the location of the user”. The most common way to achieve this is to get the location from a mobile device. The problem with this method is that most app publishers choose not to collect this information for various reasons. A simple solution that many advertising companies use to solve this is to infer a location based on the IP address of the mobile device. This method offers DMA-level precision, at best. The next thing many ad companies do is create geofences around certain areas (like Walmart stores, for example) and target all people within these geofences. This method does not deliver great campaign performance because it lacks consideration of a user’s intent. JiWire’s Location Graph bridges location, behavior, and many other components, and is able to conjure the right ad in real time.
How does JiWire do it?
We realized that in order to achieve a high degree of successful targeting, we need to focus on certain behavioral dynamics to develop what we call “User Profiles”.
JiWire has a huge amount of the first-party data — dozens of pieces of information that come from billions of ad requests in our network. The first thing we do is supervise learning using samples that are labeled based on heuristic-driven rules about the association between locations and a certain user profile, e.g. mom, business traveler, etc. The features involved include statistics on a user’s Internet activities, device information, and location types. We then run various A/B tests on the positive training sets of data and further solidify the assertions in our algorithms.
Once we establish a high degree of confidence in our classification exercise, we then run various clustering-based data mining techniques to discover patterns that are potentially useful for user identification. In addition, we add more features like location-to-business category mapping, mobile app category, and mobile partners. All these elements may fall into relationships that are more common for some user profiles than others.
Another big part of our methodology is the fact that we see the same user/devices multiple times in our multi-billion ad impression footprint. This gives JiWire a unique ability to provide a multi-dimensional approach to establishing a connection between location and behavior. By tuning our algorithms on the known users, we can develop models that we can apply to the users we see for the first time. Here is a real example that illustrates some of the logic used to identify Moms for the Back to School campaigns for various Retail clients: Say, for instance, that we see ad requests from the same user when they were near a school in the morning on a weekday, then when they were at a nail salon during school hours, and then when they were in a toy store late in the afternoon. These behavior elements are highly indicative of the user’s likely being a Mom. We use the data associated with these kinds of users to come up with features and models, and then we apply these models to the users we see for the first time.
Finally, the machine learning process is like a living organism – we constantly feed it more data points, and this allows us to better optimize our algorithms. One example of data enhancement is incorporating click-through data into our algorithms. A user’s clicking of an ad indicates an intent, and we use this data to increase the confidence score for that user profile. Another way we enhance our data is by connecting JiWire’s proprietary data with 3rd party data providers. This allows us to enhance the number of features that can be considered in the machine learning process. After multiple test iterations to fine-tune and purify our algorithms, we achieve very tangible results that show much higher user engagement when applied to a campaign.
Performing real-time audience profiling in under 50ms!
The real beauty of the Location Graph platform is the fact that JiWire can apply all the great benefits of the machine learning in real-time! But before we touch on the real-time aspects of our ad platform, it’s important to understand that the majority of the work is happening offline and over the course of several days. A big part of benefiting from the “big data” is operationalizing it. It’s a non-trivial task to reduce the terabytes of data to smaller sets needed for the tools used in machine learning and to do it in a consistent way utilizing the latest campaign traffic. It’s also an extremely tedious process to operationalize the A/B testing and incorporation of the test results into the process of purifying algorithms. We have made significant progress in optimizing this process, but there is still a lot more to do. Our offline machine learning process is based on Hive (http://hive.apache.org) for data preparation, Weka (http://www.cs.waikato.ac.nz/ml/weka/) and Hadoop Mahout (http://mahout.apache.org) for machine learning activities such as classification and clustering, and R (http://www.r-project.org) and RMR (http://www.revolutionanalytics.com/products/r-for-apache-hadoop.php) for statistics analysis and data visualization.
After the offline machine learning activities are done and the Data Science team believes it has come up with the right models for our test or live campaigns, the team produces a custom Java library that encapsulates a serialized modeling logic. The ad platform team can easily plug this module into the ad stack. The new targeting rules then become a part of a live ad platform. Inside, the ad server stack is architected in a way that allows an ad request to split into dozens of tasks that execute in parallel, such as logging, looking up targeting parameters, and mediating between demand sources. Profile targeting becomes just one of these tasks and it can execute in parallel with its own rules for dependencies and timing in relation to other activities. All these tasks generally execute in under 50 milliseconds. In the end, the parent process puts all the pieces from this assembly line together and the ad is ready for delivery. This architecture allows us to horizontally scale our ad server platform powered by the ”big data”.
Disrupting the Industry
Of course, the complexity of this system is enormous if you consider the reality of the growing ad volume and increasing data size, so things are not always as easy as they may sound. But there is no question that we have a long and exciting road ahead for operationalizing and improving our ”big data” audience profiling platform. However, the industry has been disrupted and there is no looking back!
The Location Graph is revolutionary in the mobile advertising industry. We don’t need a user to enter a geofence around a Walmart store to know they are a mom, or wait until someone requests an ad from within a college campus to know they are a student. Utilizing machine learning based on our “big data”, we can qualify users based on the combination of their locations, historical data, and the “acts like X” behaviors to choose an ad with much higher relevance. This is far more powerful than simply geofencing stores or using app category as targeting criteria. This is the power of “big data” and the Location Graph!