🚀 Adaptive Budget Optimization for Multichannel Advertising Using Combinatorial Bandits (AAMAS 2025 - Extended Abstract)
Welcome to the Adaptive Budget Optimization repository! This project focuses on simulating long-running ad campaigns and implementing the TUCBMAE algorithm to optimize budget allocation efficiently. 📊📈
The code has been successfully tested on:
- 🖥 Ubuntu 20.04.2 LTS
This repository includes two real-world advertising datasets, each with three sub-campaigns run on the Google Ads platform:
- 📡 Attendance System
- 🌐 Internet Service Provider
🔹 Special thanks to Sony Biz Networks Corporation for providing this dataset from their services NURO Biz and AKASHI.
🔐 Privacy Note: Click and cost values have been randomly projected to maintain predictive power while ensuring that original values cannot be reconstructed. The Criteo dataset results are fully reproducible.
Follow these steps to set up the required environment:
conda create --name tucbmae python=3.8
conda activate tucbmae
python -m pip install -r requirements.txt
pip install -e .
Configure hyperparameters in configpolicy.py
. Key parameters include:
🔹 Simulation Parameters:
num_month
→ Number of months for simulation (e.g.,16
for AI Prediction,1
for Criteo).
🔹 Data Paths:
data_google
→ Path to Google campaign data (e.g.,data/attendance_campaign_data.csv
).data_smn
→ Path to another platform’s data.data_criterio
→ Path to Criteo dataset (e.g.,data/criterio_data_filtered.csv
).
🔹 Experiment Settings:
use_wandb
→ Enable logging results to Weights & Biases.baseline_name
→ UseGPUCBBaseline_Policy
(GP-based) orHuman
(manual allocation).exploration_strategy
→ Chooseucb
(UCB exploration) orts
(Thompson Sampling).adaptation_strategy
→ Select fromdiscounted_reward
,sliding_window
,no_change_detection
,mae_test
.use_psudo_conversion
→ Use pseudo conversions as reward ifTrue
, else use clicks.
🔹 Key Features:
- 📅 Episodes → Each episode represents one month of ad campaign simulation.
- 💰 Actions → Budget allocation for campaigns.
- 🎯 Rewards → Clicks or pseudo conversions.
- 📊 Observations → Performance data (cost, conversion rates, history, etc.).
- 🗃 Data Format:
date
,campaign_name
,cost
,click
,ctv
,vtv
(view-through conversions, if available).
- ⚙ Environment Configurations:
Tp = 20
(future window size & stationary days).change_threshold = 1
,budget_granularity = 500
.
🔹 Cost Control & Reward Modeling:
- 🏦 Monthly Budget Setting → Based on actual total costs consumed.
- 📈 Reward Function → Modeled as a function of cost vs. clicks or pseudo conversions.
- ⚠ Cost Control → Uses Google Ads-style budgeting rules.
python main.py
python eval_baseline.py
📜 For more details, refer to our research paper or reach out for assistance! ✉️