Real-Time Ad Impression Bids Using DynamoDB
Real-time bidding (RTB) allows advertisers and publishers to buy and sell online display ad inventory in an efficient, high-speed marketplace. RTB platforms solicit bid requests for each ad impression from multiple ad exchanges (or advertisers) and pick the highest bid. Auctions occur in real-time, while end-users wait for content to load in a browser or an application. The impact on end-user latencies places strict time constraints on the decision-making latency of bidding systems (or bidders) built by ad exchanges and advertisers to compete in the RTB marketplace.
RTB promises higher ad effectiveness and reach to advertisers, and optimal pricing of inventory and better fill-rates to publishers. To deliver on this promise, bidders must make intelligent decisions based on all available information, including cookie profiles, available inventory, price history, content, and context in a super-tight time-window. To achieve this, bidders need access to a data-store that offers extremely low latency and the ability to scale to massive transaction rates. Amazon DynamoDB is specifically designed to offer consistent low-latency performance at high scale, making it a great fit for RTB systems that need to quickly access information like cookie profile data. Bidders can also leverage DynamoDBs durable and fast writes to update dynamic information like ad counts (for particular ads) into the cookie profile without worrying about data availability and durability in the face of failures.
Latency, Latency, Latency…
Each ad served using RTB involves complex real-time interactions between content systems, ad servers, a real-time bidding platform, and multiple ad exchanges. The process has to complete under strict time constraints because it occurs while a user waits for content to load, and latency has a direct impact on end-user engagement. Typical bidder latency requirements are in the 50 to 150 ms range, to ensure that ad opportunities are not lost due to ad serving delays. Because separate companies own the bidders and the RTB platform, the systems hosting these services are typically in different data-centers. Assuming a latency requirement of 100 ms, network round-trip latency of 40 ms, and a buffer of 20 ms (to account for network jitter and queuing delays), the bidder has only 40 ms to decide on a bid indicating the ad to serve and the bid-price. Even if the application heavily optimizes computation and data access, the available time for individual data fetches and writes is on the order of single-digit milliseconds.
Here’s a graphical depiction of the ad serving time budget:
Reliability, Zero Touch Operations
In addition to raw speed, DynamoDB offers other advantages that make it a great fit for bidding systems. The elasticity of provisioned capacity allows reads and writes to be scaled up or down based on bid request rates and ad availability. Atomic increment and decrement operations allow accurate count of events (e.g. ad views per user for frequency capping). DynamoDBs flexible schema allows attributes to be added to a table when required. For example, adding an attribute like “sports_enthusiast” to a cookie-profile table on the fly. Moreover, customers can focus on building a bidder without having to deal with the operational aspects of running a large scale distributed datastore, like partitioning, repartitioning, setting up replication groups, cluster management. With DynamoDB, these things are done under the covers for them.
AdRoll: Building a 7 billion Impressions/Day Platform on DynamoDB
AdRoll, which was named by Inc. Magazine as the fastest-growing advertising company in 2012, uses DynamoDB for their retargeting platform. According to Valentino Volonghi, AdRolls chief architect We use DynamoDB to bid on more than 7 billion impressions per day on the Web and FBX. AdRolls bidding system accesses more than a billion cookie profiles stored in DynamoDB, and sees uniform low-latency response. In addition, the availability of DynamoDB in all AWS regions allows our lean team to meet the rigorous low latency demands of real-time bidding in countries across the world without having to worry about infrastructure management.
In a competitive world of real-time bidding, where a delayed bid results in revenue lost and unconsidered data can lead to over-bidding, the choice of the right data-store is critical. DynamoDB provides a high-speed, flexible, highly available data-store, which provides the ideal platform for building a bidding system.
If you’d like to build an ad serving system of your own, we recommend that you start out with our Ad Serving Reference Architecture:
— Prashant and Pravin
PS – The DynamoDB team is hiring for the following positions in Palo Alto: