Online Budget Pacing and Business metrics on Flink
Online Budget Pacing and Business metrics on Flink Kévin Jacquemin, Gadi Miller
Budget Pacing 2 The Flink Controller Business Metrics
Budget Pacing
Advertiser gains access to inventory Display Opportunity 3 Display Opportunity 2 Display Opportunity 1 € Advertiser Budget Access to inventory • Criteo pays for each impression and bills the advertiser • Advertiser wants criteo to maximize the sales for a given Budget 4 Display Opportunities …
Display evaluation € Budget • • • Predict Inventory … 5 • …
Budget Pacing • • • € Predict Budget Inventory … 6 • … • Optimally spread the spend over a predefined period. • Sales Optimization with optimal spread of the spend will maximize the sales given a budget. • More precisely, every X minutes, we compute a bid multiplier known as the budget factor (BF): • If we are spending too fast, decrease BF • If we are spending too slowly, increase BF
Batching Pipeline 2. 5 h Bid request Kafka Hadoop Publisher Banner extraction +1 h Budget Pacing computation +1 h Bidder SQL replicas SQL primary +0, 5 h Paris – Hadoop Cluster ASIA – Local Datacenter 7 Total 5 h
Streaming Pipeline Bidder Kafka 5 min AS Kafka Streaming cluster +5 min Asia – Local Datacenter Bidder US Kafka Streaming cluster Kafka EU Kafka Streaming cluster America – Local Datacenter Flink on YARN Bidder Kafka +5 min 8 Europa – Local Datacenter Total 15 min Paris Datacenter Kafka cluster
Budget Pacing 9
Budget Pacing Budget factor calculation 10
The Flink Controller
Apache Flink Stateful distributed stream processing Apache Flink is an open source platform for distributed stream and batch data processing. The basic building blocks for Flink jobs are: • Sources • Streams • Operators • Sinks 12
Apache Flink Stateful distributed stream processing 13
Apache Flink Stateful distributed stream processing Tumbling Windows 14
Tumbling Windows 15
Apache Flink Stateful distributed stream processing Sliding Windows 16
Sliding windows 17
Flink Flow Graph 18
Business Metrics
Alerts on Business Metrics A low-hanging fruit 20
TAC and Rev. Ex. TAC alerts A low-hanging fruit 21
TAC and Rev. Ex. TAC alerts A low-hanging fruit 22
Thank you!
TAC and Rev. Ex. TAC alerts A low-hanging fruit Incident: we bid x 100 Correct bid price: x Highest competition bid: y 2 nd price auction: y ~ x 1 st price auction: 100 x 24
Apache Flink Stateful distributed stream processing Time 25
Apache Flink Stateful distributed stream processing Windows 26
- Slides: 26