-
Notifications
You must be signed in to change notification settings - Fork 406
What is RTBkit?
RTBkit is an open-source software package that takes much of the hard engineering work out of creating a Real-Time Bidder by breaking the problem down into well-defined components. Its open, service-oriented architecture can be used to assemble a bidder as simple or complex as desired. The RTBkit core connects to exchanges and routes bid requests and data through a configurable set of components which can be extended to implement a customized bidder.
- Exchange Connectors allow RTBkit-based bidders to plug into any source of bid-request (exchanges, SSP’s or pre-existing bidders)
- Bidding Agents are where bidding logic is implemented. Agents tell the RTBkit core which bid requests they want to receive (i.e. which targeting filters to apply) and they decide whether/how much to bid and with which ad tag.
- Augmenters are where data can be added to bid requests before the requests are filtered and dispatched to Agents. An Augmenter can add first or third party data to a bid request, or implement part of a bidding strategy such as clearing-price estimation, frequency capping, blacklisting/whitelist management etc.
- Data Loggers can subscribe to a stream of event notifications that they can use to create log files, feed reporting systems, feed data into optimization systems etc.
The RTBkit core is implemented as a set of C++ services which run on Linux and communicate with each other using ZeroMQ, and which expose a set of REST APIs for monitoring and configuration. It is highly optimized and can deal with 20,000 bid-requests per second on a single server. Service discovery is provided by Apache Zookeeper and basic reporting is via Graphite.
Bidding Agents can be implemented in C++ or Javascript at the moment while Augmenters and Data Loggers are supported only for C++, with support for Python, Java and other languages planned for the near future. RTBkit comes with C++ base classes for these components with hooks to implement custom logic.
- Getting Started
- Pull Request Guidelines
- Coding Standards
- Demo Stack
- How to compile static filters test
- RTBkit Binary Package
- Architecture
- Bid Request Lifecycle
- ZooKeeper Nodes
- Load Shedding
- Banker
- Post Auction Loop State Machine
- Post-Auction Loop Sharding
- ZMQ Endpoints