SlideShare a Scribd company logo
1 of 42
2.0 Roadmap Preview 
Open-Source RTB for Everyone 
Copyright © 2014 Datacratic Inc. All rights reserved.
Overview 
● About the RTBkit Project 
● How you can participate 
● RTBkit Today – 1.0 
● What’s New in 2.0 
● 2.0 Roadmap 
● Resources 
Copyright © 2014 Datacratic Inc. All rights reserved.
About the project
A Little History 
• RTBKit was created by machine-learning and digital 
marketing company Datacratic 
• Code base evolved from running RTB in production 
from 2011-present 
• Open sourced in Feb. 2013, with ongoing support from 
Datacratic 
• Apache-style governance started Jan. 2014 
Copyright © 2014 Datacratic Inc. All rights reserved.
Participation and Governance 
• Apache-style governance 
• BDNFL - Benevolent Dictator Not 
for Life 
• Councillors 
• Committers 
• Outside contributions welcome 
• Github pull request workflow -- 
committers review and merge 
• Contributor guidelines 
• Users can become Contributors 
• Contributors can become 
Committers -- currently two 
outside Committers 
Copyright © 2014 Datacratic Inc. All rights reserved.
Development Support 
Development Support 
● Getting Started Guide 
● Developer Tutorials 
● Working integration test system 
o mock Exchange and Ad Server 
o fixed-price Bidding Agent 
● Example Code 
● Documentation 
● Ubuntu AMI 
● Google Group support 
● Pull request review and support 
© Datacratic Inc. 2014 All Rights Reserved.
Support, Community, Adoption 
• Free support from the 
community and Datacratic 
• 250+ active developers 
• 35 committers, 11 outside of 
Datacratic 
• Users in 25+ countries 
• ~25 installations in prod: N. 
America, Germany, France, 
Russia, Argentina, China, 
India 
• Datacratic supports 
development, code review, 
governance and evolution 
• Participation and contributions 
from Rubicon Project 
Copyright © 2014 Datacratic Inc. All rights reserved.
Addresses the RTB Value Problem 
General/Technical Specific/Business 
Scale 
Speed 
SYSTEM SELECTION VALUE 
Distribution 
Show user an ad? 
What ad? 
What is it worth? 
Reliability What should I pay? 
Provided by RTBkit Customized by User 
Copyright © 2014 Datacratic Inc. All rights reserved.
RTB Technology Landscape 
System Pros Cons Degree of 
Difficulty 
Exchange / 
DSP UI 
Easy to get started ● Manual, hard to scale 
● Lack of control over bidding 
strategy and data 
Low 
Intermediate 
Hosted 
Bidding 
● More control over bidding 
strategy and use of data 
● Don't have to do Ops 
Strategy and use of data mediated by 
vendor and product features 
Medium 
● Core systems and 
integration problems solved 
● Benefit from community 
● Flexible customization 
● Flexible use of data 
● Requires significant development 
● Responsible for operations of a 
high-volume distributed system 
High 
Roll Your Own 
Bidder 
Full control of all aspects of the 
system 
Solve all the hard systems problems 
yourself first, then build the rest of the 
system you need. 
Highest 
Copyright © 2014 Datacratic Inc. All rights reserved.
1.0 Overview 
Copyright © 2014 Datacratic Inc. All rights reserved.
Architectural Overview 
RTBkit Core 
● Router 
● Banker 
● Post Auction Service 
● Service Monitor 
● Agent Configuration Service 
Plugins 
● Exchange Connectors 
● AdServer Connector 
● Bidding Agent 
● Augmenter 
● Logger 
Copyright © 2014 Datacratic Inc. All rights reserved.
Bidder Core Advantages 
● Core working bidder system 
● High-performance real-time components 
● Multiple data center support 
● Reliable global banker 
● Guaranteed response time to exchanges 
● High-performance parsing, routing, filtering, 
logging and monitoring 
● Arbitrary use of custom business logic and 
your data 
Copyright © 2014 Datacratic Inc. All rights reserved.
Inventory Integration 
● Ships with 9 Exchange Connectors 
o Rubicon Project 
o AdX 
o FBX 
o AppNexus 
o Nexage 
o MoPub 
o GumGum 
o BidSwitch 
● OpenRTB 2.1 compatible 
Copyright © 2014 Datacratic Inc. All rights reserved.
Bid Request Lifecycle 
RTBkit 
Router 
Exchange 
Connector 
Static 
Filters 
Dynamic 
Filters 
Augmenter 
Post 
Auction 
Service 
Ad Server 
Conversion 
Source 
Bidding 
Agents 
Ad Server 
Connector 
Exchanges 
Copyright © 2014 Datacratic Inc. All rights reserved.
RTBkit Data Flows 
Five asynchronous data 
flows flow through the 
Router: 
● Bid request processing 
● Banking updates 
● Event Matching 
● Notifying Bidding Agents 
of Events 
● Filtering and Bidding 
Agent configuration 
Router RTBkit 
Exchange 
Connector 
Static 
Filters 
Augmentation 
Loop 
Dynamic 
Filters 
Auction 
Loop 
Slave 
Banker 
Augmenter 
Bidding 
Agents 
Master 
Banker 
Agent 
Config 
Post 
Auction 
Service 
Exchanges 
Copyright © 2014 Datacratic Inc. All rights reserved.
Banker Responsibilities and Design 
Budget Management 
● Single source of truth for budget 
● Authorizes and caps spending 
Designed for Reliability 
● Designed for high-latency, low-bandwidth 
● Insulates banker state by using "shadow 
account" bookkeeping 
● Totals always go up -- you can always 
reason about the relative timing of entries 
● Updates global state once per minute 
● Atomic, idempotent persistence 
Currency Support 
● Strongly typed 64-bit int Currency, won't 
allow cross-currency conversions 
● Automatic scaling conversions (e.g. CPM to 
micro-dollars) 
Copyright © 2014 Datacratic Inc. All rights reserved.
Account Hierarchies & Spend Tracking 
● Spend accumulates from Children to Parents 
● Temporary bookkeeping for bids happens in 
shadow accounts in separate processes 
● Shadows sync once per second 
o Router shadow - tracks budget 
committed to pending bids 
o PAS shadow - tracks budget to debit on 
Wins and to credit on Losses 
Master Banker 
Budget 
A 
Spend 
A:B 
Spend 
A:C 
Shadow 
Spend 
A:B 
Shadow 
Spend 
A:C 
Router Slave Banker 
PAS Slave 
Banker 
Shadow 
Spend 
A:C 
Shadow 
Spend 
A:B 
Copyright © 2014 Datacratic Inc. All rights reserved.
Monitoring and Operations Tools 
● Extensive instrumentation 
● Lock-free, high-performance Carbon 
logging library, with tunable sampling 
rate, one-second granularity and useful 
aggregate functions 
● Can add any custom metrics 
● Operational dashboard included 
Copyright © 2014 Datacratic Inc. All rights reserved.
Filter Priorities and Performance 
Filter Priorities and Performance 
● Execution order optimized for performance 
● Broad, inexpensive filters run first 
● Expensive filters run later (or not at all!) 
● Only fast filters on real-time thread 
● Static filters support batch processing 
● Filter matching tests match and retrieves 
eligible creatives in one pass 
Creative 
Format 
Location 
Exchange 
Language 
Agent 
Exchange 
Location 
Language 
Host 
URL 
Agent 
Segments 
Hour of Week 
Fold Position 
User Partition 
Bid 
Request 
Bid 
RequBeisdt 
RequBeisdt 
Request 
Copyright © 2014 Datacratic Inc. All rights reserved.
Augmenter Implementation 
● Provides thread pool 
● Enforces 5ms timeout 
● Sync and async support 
● Ships with Redis Augmenter 
● Separate config for each Bidding Agent 
● Can subscribe to other RTBkit data streams 
to write data 
o e.g. - frequency cap Augmenter 
subscribes to PAS MATCHEDWINs 
Router 
Bid 
Request 
Wicked 
Fast DB TM 
Augmented 
Thread Pool 
Augmenter 
Impl. 
Augmenter 
Post 
Auction 
Service 
Data Sink 
Callback 
Bid 
Request 
Copyright © 2014 Datacratic Inc. All rights reserved.
Custom Bidding Agent Implementation 
● C++ or JavaScript 
● Programmatic configuration 
● Custom bidding logic based on 
o bid attributes 
o a custom Win Cost Model to adjust for 
desired margin and data costs 
Router 
Bid 1 Bid Request 
Response 
Custom Bidding ● Custom Pacing logic supported 
Agent 
Configuration 
Bidding Logic 
Win Cost Model 
Pacing 
Currency Helpers 
2 
3 
onWin 
onLoss 
onNoBudget 
onTooLate 
onDroppedBid 
onInvalidBid 
onImpression 
onClick 
onVisit 4 
Post 
Auction 
Service 
Copyright © 2014 Datacratic Inc. All rights reserved.
2.0 Roadmap Preview 
Copyright © 2014 Datacratic Inc. All rights reserved.
The Big Story in 2.0 … Plugins! 
● Why Plugins? We want to support 
an ecosystem of revenue 
opportunities on RTBkit. 
● Design supports this goal 
● Plugins identified by URL 
● Can have multiple versions 
● Support multiple RTBkit versions 
● Support multiple RTBkit 
installations 
● Requests can be authenticated 
● Vendors of public plugins can set 
up direct billing 
Copyright © 2014 Datacratic Inc. All rights reserved.
Public Plugin Ecosystem 
● Major goal of RTBkit 2.0 
● RTBkit users can leverage 
third-party Plugins 
● Public Plugin requirements: 
● Multitenant – one plugin can 
serve many RTBkit instances 
● Multi-location – one logical plugin 
can be deployed in multiple 
locations 
● Authentication and Security 
● Per-call metering for billing 
● Support multiple RTBkit versions 
Plugin 
RTBkit 
Plugin 
Plugin 
Plugin 
Plugin 
Plugin 
Plugin 
Plugin Plugin 
Plugin 
Plugin 
Plugin 
Plugin 
Plugin Plugin 
RTBkit 
RTBkit 
Plugin 
Plugin 
Copyright © 2014 Datacratic Inc. All rights reserved.
Plugins – Ecosystem Business Use Cases 
● RTBkit users benefit and Vendors 
benefit: 
● Bidder Plugins – campaign 
management and bidding logic 
● Bid Optimization 
● First-party Data in bidding logic 
● Per-bid bid price modifier 
● First-party Data for attribution 
● Third-party Data 
● Custom Attribution 
● Offline Analytics 
● Real-time Analytics 
● Real-time Audience Modeling 
Copyright © 2014 Datacratic Inc. All rights reserved.
Private Plugins 
● Live in same network as 
RTBkit or reachable across 
firewall 
● Simple Private Plugins 
● Single HTTP endpoint responding to 
Configuration and Plugin API calls 
● Configuration calls hardcoded 
● Scalable Private Plugins 
● Multiple Plugin Workers behind load 
balancer respond to Plugin API calls 
● Configuration calls hardcoded 
Copyright © 2014 Datacratic Inc. All rights reserved.
Public Plugins 
● Plugin providers can make 
Plugins available to multiple 
RTBkit installations 
● Provider gives clients 
authentication token and 
configures firewall 
● Configuration API in the public 
Internet is zone-aware and 
provides access to Plugin 
endpoints 
● Supports Plugin marketplace 
Copyright © 2014 Datacratic Inc. All rights reserved.
RTBkit 2.0 Plugin-based Architecture 
● All extension points redefined as 
passive HTTP plugins: 
● OO  Services 
● C++  Any Language You 
Want™ 
● Standard approaches to: 
● Configuration / Discovery 
● Deployment 
● Security 
● Compatibility 
● Public and Private 
● Even RTBkit core redefined as a 
family of APIs 
Copyright © 2014 Datacratic Inc. All rights reserved.
Plugin Endpoints – Config & Worker 
● Plugins expose /config endpoint 
● Configuration calls are HTTPS 
● Configuration brokers keys and 
accepts IPs to allow traffic from 
● Configuration uniquely identifies 
and versions a Plugin 
● RTBkit Core uses own 
Configuration Plugin to call 
available Plugins /config, retrieve 
their URLs 
● Plugins mark themselves as dead 
Plugin 
/conf /do_work 
Configuration Plugin 
RTBkit 
Copyright © 2014 Datacratic Inc. All rights reserved.
Plugin APIs 
● Configuration 
● Returns list of Live and Dead Plugins 
● Bidder 
● Receives stream of Bid Requests 
● Returns stream of Bid Responses 
● Multiple logical bidders behind one 
endpoint disambiguated with ext field 
● Analytics 
● Receives stream of data for use in 
offline reporting systems 
● Event Id 
● “Channel” for the type of Event 
● list of subscribed Plugins 
● Data 
● Plugin API implementation of 
Augmenter 
Bidder 
RTBkit 2.0 
Analytics Config 
Data 
Copyright © 2014 Datacratic Inc. All rights reserved.
Plugin Configurations 
● Plugins configure RTBkit 2.0 Core 
using Configurations 
● Id, Version, Type 
● URLs 
● Rate 
● Bidder Plugins 
● Is Banking 
● Pre-processing Subscriptions – such 
as Filtering 
● Data Plugin Bidder is using 
● Banking Plugins 
● Budget 
● Bid Rate 
● Analytics 
● Channels 
Bidder 
RTBkit 2.0 
Analytics Plugin X 
Banker 
Copyright © 2014 Datacratic Inc. All rights reserved.
Multi-Data Center Support & Routing 
● RTBkit instances know their 
location – tied to a region 
● By default only connect to 
Plugins in the same region 
● RTBkit ignores Plugins not 
responding to heartbeat calls 
● Standard list of locations used 
by RTBkit and Plugins 
● Timeouts and failures handled 
by type of Plugin 
West East 
Copyright © 2014 Datacratic Inc. All rights reserved.
RTBkit and Plugin Security 
● HTTPS only used when calling 
the Configuration API 
● All HTTP requests signed with 
a HMAC key returned by the 
Configuration API 
● Supports rejecting forged requests 
● RTBkit periodically calls 
Plugin Configuration endpoint 
to update IPs that will call it 
● Plugins should reverse proxy 
to reduce attack surface 
Copyright © 2014 Datacratic Inc. All rights reserved.
Packaging and Compatibility 
● Test suite to ensure: 
● Plugins compatible with RTBkit 2.0 
● Changes to RTBkit 2.0 compatible with 
connected Plugins 
● Plugins speak OpenRTB 2.2 
● RTBkit 2.0 package options: 
● Docker 
● Binary distribution of executables, 
headers, libs 
● Backwards compatible with 
RTBkit 1.0 – Router will 
support 1.0 or 2.0 interfaces 
via dependency injection 
Plugin 2 
Plugin 3 Plugin 1 
RTBkit 2.0 
Plugin 4 
Copyright © 2014 Datacratic Inc. All rights reserved.
RTBkit 2.0 Core APIs 
● Control Blocks 
● Pre-packaged sets of RTBkit services 
required to control an RTBkit 
installation 
● Lower scaling requirements 
● One required per data center 
● REST API 
● Worker Blocks 
● Pre-packaged set of RTBkit services 
that require high throughput and may 
need to be horizontally scaled 
● High scaling requirements 
● At least one per data center, but may 
deploy many for scaling or redundancy 
Copyright © 2014 Datacratic Inc. All rights reserved.
2.0 Roadmap and Progress 
Already Delivered in 2014 
● HTTP Bidding Agent APIs – 
Precursor to full 2.0 API 
Up Next – Q4 2014 
● First API open source code 
releases -- written in Go not C++ 
● RTBkit updates to be compatible 
with new APIs 
Up Next – Q1 2015 
● Data and Logger HTTP APIs for 
Data and Analytics Plugins 
© Datacratic Inc. 2014 All Rights Reserved.
RTBkit Resources 
Links 
● http://github.com/rtbkit 
● http://rtbkit.org 
● https://groups.google.com/a/rtbkit. 
org/forum/#!forum/discuss 
Developers Getting Started Guide 
● https://github.com/rtbkit/rtbkit/wiki/ 
Getting-Started 
Copyright © 2014 Datacratic Inc. All rights reserved.
RTBkit & Rubicon Project Deliver Scalable Ad 
Tech Infrastructure & Extensible Bidding Stack 
• Rubicon Project is a leading technology company automating the buying and selling of 
advertising. 
• Rubicon Project & RTBkit have combined forces to deliver a scalable ad tech infrastructure, and 
makes it easy for media buyers to deploy their own proprietary bidding stack with the open and 
extensible architecture of RTBkit. 
• The OpenDSP team is a contributor to the RTBkit open source project and active member of the 
RTBkit community. 
Join the Alpha Program 
There are limited seats available in the alpha program. Contact the OpenDSP team at 
opendsp@rubiconproject.com to get started.
About Datacratic 
Datacratic is an enterprise software 
company that develops machine learning 
and artificial intelligence technology, 
which enables real-time machine based 
decisioning to be deployed into 
a wide range of applications. 
Datacratic’s products are currently optimized for: 
• Data Management Platforms (DMPs) 
• Demand Side Platforms (DSPs) 
• Agency Trading Desks (ATDs) 
• E-Commerce web sites 
• Others in the real-time marketing ecosystem. 
Mark Weiss @marksweiss 
Head of Customer Solutions at Datacratic 
www.datacratic.com 
opensource.datacratic.com/ 
We're hiring! datacratic.com/site/careers 
Copyright © 2014 Datacratic Inc. All rights reserved.
Host a Meetup!
Copyright © 2014 Datacratic Inc. All rights reserved.
Q&A

More Related Content

Similar to RTBkit 2.0 Roadmap Preview

Atmosphere Coffee Break - Scripting & Order Entry
Atmosphere Coffee Break - Scripting & Order EntryAtmosphere Coffee Break - Scripting & Order Entry
Atmosphere Coffee Break - Scripting & Order EntryIntelePeer
 
apidays LIVE New York 2021 - Microservice Authorization with Open Policy Agen...
apidays LIVE New York 2021 - Microservice Authorization with Open Policy Agen...apidays LIVE New York 2021 - Microservice Authorization with Open Policy Agen...
apidays LIVE New York 2021 - Microservice Authorization with Open Policy Agen...apidays
 
Atmosphere Scripting
Atmosphere ScriptingAtmosphere Scripting
Atmosphere ScriptingIntelePeer
 
WSO2Con EU 2015: API Management Strategies and Best Practices
WSO2Con EU 2015: API Management Strategies and Best PracticesWSO2Con EU 2015: API Management Strategies and Best Practices
WSO2Con EU 2015: API Management Strategies and Best PracticesWSO2
 
DevOps best practices in microservices | Walkingtree Technologies
DevOps best practices in microservices | Walkingtree TechnologiesDevOps best practices in microservices | Walkingtree Technologies
DevOps best practices in microservices | Walkingtree TechnologiesWalking Tree Technologies
 
Charles sonigo - Demuxed 2018 - How to be data-driven when you aren't Netflix...
Charles sonigo - Demuxed 2018 - How to be data-driven when you aren't Netflix...Charles sonigo - Demuxed 2018 - How to be data-driven when you aren't Netflix...
Charles sonigo - Demuxed 2018 - How to be data-driven when you aren't Netflix...Charles Sonigo
 
Fintech Primitives - Wealth Management - MF Pro - Distributor
Fintech Primitives - Wealth Management - MF Pro - DistributorFintech Primitives - Wealth Management - MF Pro - Distributor
Fintech Primitives - Wealth Management - MF Pro - DistributorJainendra Sinha
 
Big Data - Hadoop and MapReduce for QA and testing by Aditya Garg
Big Data - Hadoop and MapReduce for QA and testing by Aditya GargBig Data - Hadoop and MapReduce for QA and testing by Aditya Garg
Big Data - Hadoop and MapReduce for QA and testing by Aditya GargQA or the Highway
 
Modern messaging with RabbitMQ, Spring Cloud and Reactor
Modern messaging with RabbitMQ, Spring Cloud and ReactorModern messaging with RabbitMQ, Spring Cloud and Reactor
Modern messaging with RabbitMQ, Spring Cloud and Reactoracogoluegnes
 
WSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIsWSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIsWSO2
 
Why Collaborate? Graham Nicholls, Extrada Inc.
Why Collaborate? Graham Nicholls, Extrada Inc.Why Collaborate? Graham Nicholls, Extrada Inc.
Why Collaborate? Graham Nicholls, Extrada Inc.mfrancis
 
Using IBM DataPower for rapid security and application integration with an op...
Using IBM DataPower for rapid security and application integration with an op...Using IBM DataPower for rapid security and application integration with an op...
Using IBM DataPower for rapid security and application integration with an op...Gennadiy Civil
 
Advanced technologies and techniques for debugging HPC applications
Advanced technologies and techniques for debugging HPC applicationsAdvanced technologies and techniques for debugging HPC applications
Advanced technologies and techniques for debugging HPC applicationsRogue Wave Software
 
How to Build An AI Based Customer Data Platform: Learn the design patterns fo...
How to Build An AI Based Customer Data Platform: Learn the design patterns fo...How to Build An AI Based Customer Data Platform: Learn the design patterns fo...
How to Build An AI Based Customer Data Platform: Learn the design patterns fo...TigerGraph
 
Open Sourcing GemFire - Apache Geode
Open Sourcing GemFire - Apache GeodeOpen Sourcing GemFire - Apache Geode
Open Sourcing GemFire - Apache GeodeApache Geode
 
An Introduction to Apache Geode (incubating)
An Introduction to Apache Geode (incubating)An Introduction to Apache Geode (incubating)
An Introduction to Apache Geode (incubating)Anthony Baker
 
Anypoint DataGraph - Consume & Re-use your APIs faster | MuleSoft Mysore Meet...
Anypoint DataGraph - Consume & Re-use your APIs faster | MuleSoft Mysore Meet...Anypoint DataGraph - Consume & Re-use your APIs faster | MuleSoft Mysore Meet...
Anypoint DataGraph - Consume & Re-use your APIs faster | MuleSoft Mysore Meet...MysoreMuleSoftMeetup
 
Gcp intro-20160721
Gcp intro-20160721Gcp intro-20160721
Gcp intro-20160721Haeseung Lee
 

Similar to RTBkit 2.0 Roadmap Preview (20)

Atmosphere Coffee Break - Scripting & Order Entry
Atmosphere Coffee Break - Scripting & Order EntryAtmosphere Coffee Break - Scripting & Order Entry
Atmosphere Coffee Break - Scripting & Order Entry
 
Business Technology Brief
Business Technology BriefBusiness Technology Brief
Business Technology Brief
 
apidays LIVE New York 2021 - Microservice Authorization with Open Policy Agen...
apidays LIVE New York 2021 - Microservice Authorization with Open Policy Agen...apidays LIVE New York 2021 - Microservice Authorization with Open Policy Agen...
apidays LIVE New York 2021 - Microservice Authorization with Open Policy Agen...
 
Atmosphere Scripting
Atmosphere ScriptingAtmosphere Scripting
Atmosphere Scripting
 
WSO2Con EU 2015: API Management Strategies and Best Practices
WSO2Con EU 2015: API Management Strategies and Best PracticesWSO2Con EU 2015: API Management Strategies and Best Practices
WSO2Con EU 2015: API Management Strategies and Best Practices
 
DevOps best practices in microservices | Walkingtree Technologies
DevOps best practices in microservices | Walkingtree TechnologiesDevOps best practices in microservices | Walkingtree Technologies
DevOps best practices in microservices | Walkingtree Technologies
 
Charles sonigo - Demuxed 2018 - How to be data-driven when you aren't Netflix...
Charles sonigo - Demuxed 2018 - How to be data-driven when you aren't Netflix...Charles sonigo - Demuxed 2018 - How to be data-driven when you aren't Netflix...
Charles sonigo - Demuxed 2018 - How to be data-driven when you aren't Netflix...
 
Fintech Primitives - Wealth Management - MF Pro - Distributor
Fintech Primitives - Wealth Management - MF Pro - DistributorFintech Primitives - Wealth Management - MF Pro - Distributor
Fintech Primitives - Wealth Management - MF Pro - Distributor
 
Big Data - Hadoop and MapReduce for QA and testing by Aditya Garg
Big Data - Hadoop and MapReduce for QA and testing by Aditya GargBig Data - Hadoop and MapReduce for QA and testing by Aditya Garg
Big Data - Hadoop and MapReduce for QA and testing by Aditya Garg
 
Modern messaging with RabbitMQ, Spring Cloud and Reactor
Modern messaging with RabbitMQ, Spring Cloud and ReactorModern messaging with RabbitMQ, Spring Cloud and Reactor
Modern messaging with RabbitMQ, Spring Cloud and Reactor
 
WSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIsWSO2- OSC Korea - Accelerating Digital Businesses with APIs
WSO2- OSC Korea - Accelerating Digital Businesses with APIs
 
Why Collaborate? Graham Nicholls, Extrada Inc.
Why Collaborate? Graham Nicholls, Extrada Inc.Why Collaborate? Graham Nicholls, Extrada Inc.
Why Collaborate? Graham Nicholls, Extrada Inc.
 
Using IBM DataPower for rapid security and application integration with an op...
Using IBM DataPower for rapid security and application integration with an op...Using IBM DataPower for rapid security and application integration with an op...
Using IBM DataPower for rapid security and application integration with an op...
 
Advanced technologies and techniques for debugging HPC applications
Advanced technologies and techniques for debugging HPC applicationsAdvanced technologies and techniques for debugging HPC applications
Advanced technologies and techniques for debugging HPC applications
 
How to Build An AI Based Customer Data Platform: Learn the design patterns fo...
How to Build An AI Based Customer Data Platform: Learn the design patterns fo...How to Build An AI Based Customer Data Platform: Learn the design patterns fo...
How to Build An AI Based Customer Data Platform: Learn the design patterns fo...
 
Open Sourcing GemFire - Apache Geode
Open Sourcing GemFire - Apache GeodeOpen Sourcing GemFire - Apache Geode
Open Sourcing GemFire - Apache Geode
 
An Introduction to Apache Geode (incubating)
An Introduction to Apache Geode (incubating)An Introduction to Apache Geode (incubating)
An Introduction to Apache Geode (incubating)
 
Anypoint DataGraph - Consume & Re-use your APIs faster | MuleSoft Mysore Meet...
Anypoint DataGraph - Consume & Re-use your APIs faster | MuleSoft Mysore Meet...Anypoint DataGraph - Consume & Re-use your APIs faster | MuleSoft Mysore Meet...
Anypoint DataGraph - Consume & Re-use your APIs faster | MuleSoft Mysore Meet...
 
Gcp intro-20160721
Gcp intro-20160721Gcp intro-20160721
Gcp intro-20160721
 
Webinar IoT Cloud Platforms and Middleware for Rapid Application Development
Webinar IoT Cloud Platforms and Middleware for Rapid Application DevelopmentWebinar IoT Cloud Platforms and Middleware for Rapid Application Development
Webinar IoT Cloud Platforms and Middleware for Rapid Application Development
 

Recently uploaded

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Recently uploaded (20)

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

RTBkit 2.0 Roadmap Preview

  • 1. 2.0 Roadmap Preview Open-Source RTB for Everyone Copyright © 2014 Datacratic Inc. All rights reserved.
  • 2. Overview ● About the RTBkit Project ● How you can participate ● RTBkit Today – 1.0 ● What’s New in 2.0 ● 2.0 Roadmap ● Resources Copyright © 2014 Datacratic Inc. All rights reserved.
  • 4. A Little History • RTBKit was created by machine-learning and digital marketing company Datacratic • Code base evolved from running RTB in production from 2011-present • Open sourced in Feb. 2013, with ongoing support from Datacratic • Apache-style governance started Jan. 2014 Copyright © 2014 Datacratic Inc. All rights reserved.
  • 5. Participation and Governance • Apache-style governance • BDNFL - Benevolent Dictator Not for Life • Councillors • Committers • Outside contributions welcome • Github pull request workflow -- committers review and merge • Contributor guidelines • Users can become Contributors • Contributors can become Committers -- currently two outside Committers Copyright © 2014 Datacratic Inc. All rights reserved.
  • 6. Development Support Development Support ● Getting Started Guide ● Developer Tutorials ● Working integration test system o mock Exchange and Ad Server o fixed-price Bidding Agent ● Example Code ● Documentation ● Ubuntu AMI ● Google Group support ● Pull request review and support © Datacratic Inc. 2014 All Rights Reserved.
  • 7. Support, Community, Adoption • Free support from the community and Datacratic • 250+ active developers • 35 committers, 11 outside of Datacratic • Users in 25+ countries • ~25 installations in prod: N. America, Germany, France, Russia, Argentina, China, India • Datacratic supports development, code review, governance and evolution • Participation and contributions from Rubicon Project Copyright © 2014 Datacratic Inc. All rights reserved.
  • 8. Addresses the RTB Value Problem General/Technical Specific/Business Scale Speed SYSTEM SELECTION VALUE Distribution Show user an ad? What ad? What is it worth? Reliability What should I pay? Provided by RTBkit Customized by User Copyright © 2014 Datacratic Inc. All rights reserved.
  • 9. RTB Technology Landscape System Pros Cons Degree of Difficulty Exchange / DSP UI Easy to get started ● Manual, hard to scale ● Lack of control over bidding strategy and data Low Intermediate Hosted Bidding ● More control over bidding strategy and use of data ● Don't have to do Ops Strategy and use of data mediated by vendor and product features Medium ● Core systems and integration problems solved ● Benefit from community ● Flexible customization ● Flexible use of data ● Requires significant development ● Responsible for operations of a high-volume distributed system High Roll Your Own Bidder Full control of all aspects of the system Solve all the hard systems problems yourself first, then build the rest of the system you need. Highest Copyright © 2014 Datacratic Inc. All rights reserved.
  • 10. 1.0 Overview Copyright © 2014 Datacratic Inc. All rights reserved.
  • 11. Architectural Overview RTBkit Core ● Router ● Banker ● Post Auction Service ● Service Monitor ● Agent Configuration Service Plugins ● Exchange Connectors ● AdServer Connector ● Bidding Agent ● Augmenter ● Logger Copyright © 2014 Datacratic Inc. All rights reserved.
  • 12. Bidder Core Advantages ● Core working bidder system ● High-performance real-time components ● Multiple data center support ● Reliable global banker ● Guaranteed response time to exchanges ● High-performance parsing, routing, filtering, logging and monitoring ● Arbitrary use of custom business logic and your data Copyright © 2014 Datacratic Inc. All rights reserved.
  • 13. Inventory Integration ● Ships with 9 Exchange Connectors o Rubicon Project o AdX o FBX o AppNexus o Nexage o MoPub o GumGum o BidSwitch ● OpenRTB 2.1 compatible Copyright © 2014 Datacratic Inc. All rights reserved.
  • 14. Bid Request Lifecycle RTBkit Router Exchange Connector Static Filters Dynamic Filters Augmenter Post Auction Service Ad Server Conversion Source Bidding Agents Ad Server Connector Exchanges Copyright © 2014 Datacratic Inc. All rights reserved.
  • 15. RTBkit Data Flows Five asynchronous data flows flow through the Router: ● Bid request processing ● Banking updates ● Event Matching ● Notifying Bidding Agents of Events ● Filtering and Bidding Agent configuration Router RTBkit Exchange Connector Static Filters Augmentation Loop Dynamic Filters Auction Loop Slave Banker Augmenter Bidding Agents Master Banker Agent Config Post Auction Service Exchanges Copyright © 2014 Datacratic Inc. All rights reserved.
  • 16. Banker Responsibilities and Design Budget Management ● Single source of truth for budget ● Authorizes and caps spending Designed for Reliability ● Designed for high-latency, low-bandwidth ● Insulates banker state by using "shadow account" bookkeeping ● Totals always go up -- you can always reason about the relative timing of entries ● Updates global state once per minute ● Atomic, idempotent persistence Currency Support ● Strongly typed 64-bit int Currency, won't allow cross-currency conversions ● Automatic scaling conversions (e.g. CPM to micro-dollars) Copyright © 2014 Datacratic Inc. All rights reserved.
  • 17. Account Hierarchies & Spend Tracking ● Spend accumulates from Children to Parents ● Temporary bookkeeping for bids happens in shadow accounts in separate processes ● Shadows sync once per second o Router shadow - tracks budget committed to pending bids o PAS shadow - tracks budget to debit on Wins and to credit on Losses Master Banker Budget A Spend A:B Spend A:C Shadow Spend A:B Shadow Spend A:C Router Slave Banker PAS Slave Banker Shadow Spend A:C Shadow Spend A:B Copyright © 2014 Datacratic Inc. All rights reserved.
  • 18. Monitoring and Operations Tools ● Extensive instrumentation ● Lock-free, high-performance Carbon logging library, with tunable sampling rate, one-second granularity and useful aggregate functions ● Can add any custom metrics ● Operational dashboard included Copyright © 2014 Datacratic Inc. All rights reserved.
  • 19. Filter Priorities and Performance Filter Priorities and Performance ● Execution order optimized for performance ● Broad, inexpensive filters run first ● Expensive filters run later (or not at all!) ● Only fast filters on real-time thread ● Static filters support batch processing ● Filter matching tests match and retrieves eligible creatives in one pass Creative Format Location Exchange Language Agent Exchange Location Language Host URL Agent Segments Hour of Week Fold Position User Partition Bid Request Bid RequBeisdt RequBeisdt Request Copyright © 2014 Datacratic Inc. All rights reserved.
  • 20. Augmenter Implementation ● Provides thread pool ● Enforces 5ms timeout ● Sync and async support ● Ships with Redis Augmenter ● Separate config for each Bidding Agent ● Can subscribe to other RTBkit data streams to write data o e.g. - frequency cap Augmenter subscribes to PAS MATCHEDWINs Router Bid Request Wicked Fast DB TM Augmented Thread Pool Augmenter Impl. Augmenter Post Auction Service Data Sink Callback Bid Request Copyright © 2014 Datacratic Inc. All rights reserved.
  • 21. Custom Bidding Agent Implementation ● C++ or JavaScript ● Programmatic configuration ● Custom bidding logic based on o bid attributes o a custom Win Cost Model to adjust for desired margin and data costs Router Bid 1 Bid Request Response Custom Bidding ● Custom Pacing logic supported Agent Configuration Bidding Logic Win Cost Model Pacing Currency Helpers 2 3 onWin onLoss onNoBudget onTooLate onDroppedBid onInvalidBid onImpression onClick onVisit 4 Post Auction Service Copyright © 2014 Datacratic Inc. All rights reserved.
  • 22. 2.0 Roadmap Preview Copyright © 2014 Datacratic Inc. All rights reserved.
  • 23. The Big Story in 2.0 … Plugins! ● Why Plugins? We want to support an ecosystem of revenue opportunities on RTBkit. ● Design supports this goal ● Plugins identified by URL ● Can have multiple versions ● Support multiple RTBkit versions ● Support multiple RTBkit installations ● Requests can be authenticated ● Vendors of public plugins can set up direct billing Copyright © 2014 Datacratic Inc. All rights reserved.
  • 24. Public Plugin Ecosystem ● Major goal of RTBkit 2.0 ● RTBkit users can leverage third-party Plugins ● Public Plugin requirements: ● Multitenant – one plugin can serve many RTBkit instances ● Multi-location – one logical plugin can be deployed in multiple locations ● Authentication and Security ● Per-call metering for billing ● Support multiple RTBkit versions Plugin RTBkit Plugin Plugin Plugin Plugin Plugin Plugin Plugin Plugin Plugin Plugin Plugin Plugin Plugin Plugin RTBkit RTBkit Plugin Plugin Copyright © 2014 Datacratic Inc. All rights reserved.
  • 25. Plugins – Ecosystem Business Use Cases ● RTBkit users benefit and Vendors benefit: ● Bidder Plugins – campaign management and bidding logic ● Bid Optimization ● First-party Data in bidding logic ● Per-bid bid price modifier ● First-party Data for attribution ● Third-party Data ● Custom Attribution ● Offline Analytics ● Real-time Analytics ● Real-time Audience Modeling Copyright © 2014 Datacratic Inc. All rights reserved.
  • 26. Private Plugins ● Live in same network as RTBkit or reachable across firewall ● Simple Private Plugins ● Single HTTP endpoint responding to Configuration and Plugin API calls ● Configuration calls hardcoded ● Scalable Private Plugins ● Multiple Plugin Workers behind load balancer respond to Plugin API calls ● Configuration calls hardcoded Copyright © 2014 Datacratic Inc. All rights reserved.
  • 27. Public Plugins ● Plugin providers can make Plugins available to multiple RTBkit installations ● Provider gives clients authentication token and configures firewall ● Configuration API in the public Internet is zone-aware and provides access to Plugin endpoints ● Supports Plugin marketplace Copyright © 2014 Datacratic Inc. All rights reserved.
  • 28. RTBkit 2.0 Plugin-based Architecture ● All extension points redefined as passive HTTP plugins: ● OO  Services ● C++  Any Language You Want™ ● Standard approaches to: ● Configuration / Discovery ● Deployment ● Security ● Compatibility ● Public and Private ● Even RTBkit core redefined as a family of APIs Copyright © 2014 Datacratic Inc. All rights reserved.
  • 29. Plugin Endpoints – Config & Worker ● Plugins expose /config endpoint ● Configuration calls are HTTPS ● Configuration brokers keys and accepts IPs to allow traffic from ● Configuration uniquely identifies and versions a Plugin ● RTBkit Core uses own Configuration Plugin to call available Plugins /config, retrieve their URLs ● Plugins mark themselves as dead Plugin /conf /do_work Configuration Plugin RTBkit Copyright © 2014 Datacratic Inc. All rights reserved.
  • 30. Plugin APIs ● Configuration ● Returns list of Live and Dead Plugins ● Bidder ● Receives stream of Bid Requests ● Returns stream of Bid Responses ● Multiple logical bidders behind one endpoint disambiguated with ext field ● Analytics ● Receives stream of data for use in offline reporting systems ● Event Id ● “Channel” for the type of Event ● list of subscribed Plugins ● Data ● Plugin API implementation of Augmenter Bidder RTBkit 2.0 Analytics Config Data Copyright © 2014 Datacratic Inc. All rights reserved.
  • 31. Plugin Configurations ● Plugins configure RTBkit 2.0 Core using Configurations ● Id, Version, Type ● URLs ● Rate ● Bidder Plugins ● Is Banking ● Pre-processing Subscriptions – such as Filtering ● Data Plugin Bidder is using ● Banking Plugins ● Budget ● Bid Rate ● Analytics ● Channels Bidder RTBkit 2.0 Analytics Plugin X Banker Copyright © 2014 Datacratic Inc. All rights reserved.
  • 32. Multi-Data Center Support & Routing ● RTBkit instances know their location – tied to a region ● By default only connect to Plugins in the same region ● RTBkit ignores Plugins not responding to heartbeat calls ● Standard list of locations used by RTBkit and Plugins ● Timeouts and failures handled by type of Plugin West East Copyright © 2014 Datacratic Inc. All rights reserved.
  • 33. RTBkit and Plugin Security ● HTTPS only used when calling the Configuration API ● All HTTP requests signed with a HMAC key returned by the Configuration API ● Supports rejecting forged requests ● RTBkit periodically calls Plugin Configuration endpoint to update IPs that will call it ● Plugins should reverse proxy to reduce attack surface Copyright © 2014 Datacratic Inc. All rights reserved.
  • 34. Packaging and Compatibility ● Test suite to ensure: ● Plugins compatible with RTBkit 2.0 ● Changes to RTBkit 2.0 compatible with connected Plugins ● Plugins speak OpenRTB 2.2 ● RTBkit 2.0 package options: ● Docker ● Binary distribution of executables, headers, libs ● Backwards compatible with RTBkit 1.0 – Router will support 1.0 or 2.0 interfaces via dependency injection Plugin 2 Plugin 3 Plugin 1 RTBkit 2.0 Plugin 4 Copyright © 2014 Datacratic Inc. All rights reserved.
  • 35. RTBkit 2.0 Core APIs ● Control Blocks ● Pre-packaged sets of RTBkit services required to control an RTBkit installation ● Lower scaling requirements ● One required per data center ● REST API ● Worker Blocks ● Pre-packaged set of RTBkit services that require high throughput and may need to be horizontally scaled ● High scaling requirements ● At least one per data center, but may deploy many for scaling or redundancy Copyright © 2014 Datacratic Inc. All rights reserved.
  • 36. 2.0 Roadmap and Progress Already Delivered in 2014 ● HTTP Bidding Agent APIs – Precursor to full 2.0 API Up Next – Q4 2014 ● First API open source code releases -- written in Go not C++ ● RTBkit updates to be compatible with new APIs Up Next – Q1 2015 ● Data and Logger HTTP APIs for Data and Analytics Plugins © Datacratic Inc. 2014 All Rights Reserved.
  • 37. RTBkit Resources Links ● http://github.com/rtbkit ● http://rtbkit.org ● https://groups.google.com/a/rtbkit. org/forum/#!forum/discuss Developers Getting Started Guide ● https://github.com/rtbkit/rtbkit/wiki/ Getting-Started Copyright © 2014 Datacratic Inc. All rights reserved.
  • 38. RTBkit & Rubicon Project Deliver Scalable Ad Tech Infrastructure & Extensible Bidding Stack • Rubicon Project is a leading technology company automating the buying and selling of advertising. • Rubicon Project & RTBkit have combined forces to deliver a scalable ad tech infrastructure, and makes it easy for media buyers to deploy their own proprietary bidding stack with the open and extensible architecture of RTBkit. • The OpenDSP team is a contributor to the RTBkit open source project and active member of the RTBkit community. Join the Alpha Program There are limited seats available in the alpha program. Contact the OpenDSP team at opendsp@rubiconproject.com to get started.
  • 39. About Datacratic Datacratic is an enterprise software company that develops machine learning and artificial intelligence technology, which enables real-time machine based decisioning to be deployed into a wide range of applications. Datacratic’s products are currently optimized for: • Data Management Platforms (DMPs) • Demand Side Platforms (DSPs) • Agency Trading Desks (ATDs) • E-Commerce web sites • Others in the real-time marketing ecosystem. Mark Weiss @marksweiss Head of Customer Solutions at Datacratic www.datacratic.com opensource.datacratic.com/ We're hiring! datacratic.com/site/careers Copyright © 2014 Datacratic Inc. All rights reserved.
  • 41. Copyright © 2014 Datacratic Inc. All rights reserved.
  • 42. Q&A

Editor's Notes

  1. Hello everyone and welcome to this Introduction to RTBkit. Here is a brief overview of what we're going to cover. [COVER THE BULLET POINTS] But before we begin, because this is a talk on a toolkit for building RTB systems I'm assuming most of you have some background in the domain and understand the basics of real-time bidding, or RTB. [JOKE] In case you wandered into the wrong room, let's take a very brief whirlwind tour of RTB. - There are publishers - They have ad slots they need to fill with ads - They broadcast descriptions of those ad units in a JSON form called a bid request to ad exchanges - The ad exchanges then forward the bid requests to interested bidders - Bidders respond within a specified time period with a bid response a specified format. The response includes a bid price and a URL for an ad server to serve an ad - The exchange awards the ad slot to the highest bidder, and calls that winning bidder's ad server to cause the ad to be served This is of course greatly simplified, but at least it provides a framework for what is happening for anyone in the audience new to this domain. RTBkit is an open-source software framework that provides a working core of one of these bidder systems.
  2. RTBkit was created by Datacratic, whom I work for, a company based in Montreal that provides machine-learning based products and services, with a focus right now on RTB and lookalike modeling for digital marketing. Datacratic sells optimization for real-time bidding, and starting about three years ago, began building a bidder to serve its customers. The company made the decision to open source RTBkit early last year and the project has been a public open source project since February 2013.
  3. Finally, we get to the core problem, value. After all, you are bidding, this is an auction, so the fundamental question you need to answer after you have decided that yes, indeed, you want to try and win the auction for the right to show this ad to this person, is how much is it worth to you to show this ad to this person. Again, this computation is the output of the calculation by your Bidding Agent. Notice in this diagram that System is orthogonal to Selection and Value. Again, this is an excellent frame for understanding the philosophy of RTBkit. Commoditize the system problem and provide you tools to address Selection and Value. Notice also that Selection and Value overlap. That's because the value of a particular ad is not independent of the context. Each bidder cares about all the campaigns they have running, the goals of those campaigns, how much budget they have left, how much time they have left to run. Each bidder has different data about the user being shown the ad. And each bidder might also have different business logic interacting with all the metadata of the ad, such as where the ad is running, the size of the ad slot etc. All of this plays into answering both the "What Ad?" and both Value questions. Each ad is worth something different to each bidder, which is why RTBkit provides Selection tools and a Bidding Agent framework but allows system builders to customize their Agent logic. As we will see later, this is also why Augmenters are a key part of the RTBkit design.
  4. Now let's start drilling into the design and architecture of RTBkit to show how it implements a solution to these problems. We're going to start at a high level and take a tour of each service and component in the system. You'll understand the responsibilities of each piece of the system, the data flows through the system and learn the rationale for some technology choices made. [COVER BULLETS ON CORE] [COVER BULLETS ON PLUGINS] [DISCUSS RATIONALE FOR CORE VS. PLUGINS]
  5. Now let's start drilling into the design and architecture of RTBkit to show how it implements a solution to these problems. We're going to start at a high level and take a tour of each service and component in the system. You'll understand the responsibilities of each piece of the system, the data flows through the system and learn the rationale for some technology choices made. [COVER BULLETS ON CORE] [COVER BULLETS ON PLUGINS] [DISCUSS RATIONALE FOR CORE VS. PLUGINS]
  6. [COVER BULLETS] - Mention Rubicon Project has been in the project since the start - Mention that Open RTB has been in the project since the start - Mention BidSwitch is a great choice because you get 30+ possible integrations with one business contact, filtering traffic, etc.
  7. Now let's envision this data flow as a linear sequence of events for the life cycle of a bid request, for the sake of clarity. We are also leaving out the banking bookkeeping in this view, because we will return to that in greater detail later in the talk. This view shows us RTBkit from the perspective of processing bid requests. We see two asynchronous "logical" data flows. In red, we see the pipeline processing of the bid request. The Exchange Connector parses the bid request, converts it into an internal bid request format, and passes the bid request to the router. Next, the router coordinates passing and receiving back the bid request through a series of filters. Static filters, Augmenter filters and dynamic filters are all matched against the bid request by the filtering subsystem. Any matches may result in the reducing the number of campaigns eligible to bid on the bid request, or actually eliminate all eligible campaigns, resulting in dropping the request. We will do a deeper dive on the filtering system a bit later in the talk. The Augmenter can apply filters, but it can also transform the bid request by adding fields to it. We'll discuss Augmenters in more detail later. They are the key to RTBkit users creating custom business logic for things like custom filtering based on bid attributes, use of custom segments, and use of your user data. Finally, if the bid request passes all filtering and there are still eligible campaigns, Bidding Agents representing each of these campaigns receive the bid request. Each sends a bid response back to the router. The router selects the highest bidder and returns this bid response to the Exchange Connector. The Connector builds a bid response in the correct format and response to the Exchange. At some point later, as we see in the blue data flow, Win messages come back from either the exchange -- if you are receiving server-to-server, verified win messages from the exchange -- or from the ad server, if you are implementing wins as a tag callback in your ad unit. Likewise, Click messages come from the ad server and your conversion messages might come from multiple different sources such as tag calls or bulk updates, depending on how you are gathering conversions. All of these are considered "ad server events" in RTBkit parlance. All are implemented as HTTP JSON POST calls to the AdServer Connector component, which collects these messages, logs them and pass them to the Post Auction Service for matching. The PAS matches wins to bid requests, and clicks and conversions to wins. It also notifies Bidding Agents of matched events, so they can potentially modify their bidding logic in response to the information that a certain bid won or resulted in a click or conversion and another did not. So this data flow supports multiple purposes: - logging events for later reporting - matching wins so campaign budgets in the banker can be adjusted properly - updating Bidding Agents with signal information about how successfully they are bidding
  8. Here we see that three other data flows are happening asynchronously. The flow of Win events from the Ad Server Connector, which isn't shown, into the Post Auction Service, allow the PAS to match wins to previous bids. This service also updates the Agents, so they know which campaigns have recorded Wins, Clicks and Conversions. Agents can use this data to influence their bidding decisions. In turn, this lets the Slave Banker update the Master to debit outstanding bids when matching wins are received in the Post Auction Service, or to redeem budget when Losses are inferred. Finally, a separate Agent Configuration Service periodically updates the filtering configurations available to the three layers of Filtering in RTBkit, Static, Augmenter and Dynamic Filters. We'll take a deeper dive on filtering in just a bit.
  9. TODO Notes here about tools for Selection Problem