DV360 BidKit Pro
dv360-bidkit-pro is the enterprise extension for programmatic trading desks, media agencies, and algorithmic bidders running production campaigns on Google Display & Video 360.
Commercial License
Get instant access to pre-compiled native binary wheels (Linux, macOS, Windows) and commercial license keys:
What Pro Delivers
While the open-core dv360-bidkit handles grammar linting, basic rule compilation, and simulation, dv360-bidkit-pro provides the statistical algorithms and automated campaign packaging needed for enterprise-scale value bidding:
| Capability | Core (dv360-bidkit) | Pro (dv360-bidkit-pro) |
|---|---|---|
| AST Linter & Google 2026 DSL Validator | ✅ | ✅ |
Pre-Flight Local Simulator (No eval()) | ✅ | ✅ |
| Google S2 Training Readiness Standards | ✅ | ✅ |
| RuleSet Compiler & Simplifier | ✅ | ✅ |
| Active View Empirical Bayes Shrinkage | ❌ | ✅ |
Client Funnel Weighting (bidkit-pro weights) | ❌ | ✅ |
| Automated Ternary Outlier Capping | ❌ | ✅ |
| Impression-Weighted Rule Quantization | ❌ | ✅ |
| Multi-Objective Pareto Trade-Off Grids | ❌ | ✅ |
| Turnkey Campaign Bundle Export (8 artifacts) | ❌ | ✅ |
| Pre-Compiled Native C-Extensions (Cython) | ❌ | ✅ |
Commercial Value Analysis: €100,000 Monthly Spend Scenario
How does running custom bidding with DV360 BidKit translate into tangible operational and media performance? Below is an illustrative comparative analysis for an enterprise programmatic campaign spending €100,000/month:
| Dimension / Metric | Plain DV360 (Standard Bidding) | Open-Core (dv360-bidkit) | Enterprise Pro (dv360-bidkit-pro) |
|---|---|---|---|
| AST Linter & Platform Rejections | N/A (Standard DV360 CPA/CPC) | 0h turnaround (catches syntax & type errors locally) | 0h turnaround (validated before artifact packaging) |
| Script Engineering & QA Time | 10–15 hours manual Python scripting per campaign | 2–3 hours (automated compilation & local simulation) | < 30 minutes (end-to-end automated pipeline & CLI) |
| Outlier & Pacing Starvation Risk | High risk ( | Manual inspection required via diagnostic JSON | Automated 95th-percentile ternary capping eliminates starvation |
| Small-Sample Tail Noise Waste | Unprotected (long-tail domains get maximum bid weights) | Manual domain exclusions via policy.csv | Empirical Bayes shrinkage ( |
| Multi-Objective Funnel Optimization | Single Floodlight conversion event only | Manual proxy weights (risk of proxy domination) | Econometric mass balancing preserves 65% conversion mass |
| Pre-Flight Simulation & Safety | None (upload and wait for Google's model to train) | Deterministic AST simulation against historical CSVs | Turnkey 8-artifact campaign bundle with HTML audit report |
| Modeled Media Efficiency Uplift | Baseline (€100k gross media spend) | ~€3,000 – €5,000 in avoided misconfigurations + engineering time saved | ~€15,000 – €25,000 modeled value uplift (reduced tail waste + balanced pacing) |
Illustrative Scenario Model & Methodology Disclaimer
Media efficiency projections (~€15k–€25k) represent a modeled statistical counterfactual on a €100,000/month display/video campaign exhibiting typical publisher-tail noise and multi-step conversion funnels. Actual media uplift depends on campaign targeting, bid floors, inventory composition, and baseline conversion rates. Guaranteed software capabilities are strictly engineering and computational: 100% adherence to Google's 2026.1 AST specification, zero platform rejection turnaround delay, deterministic local evaluation without eval(), and reproducible mathematical shrinkage.
The 4 Custom Bidding Traps Solved by Pro
1. Small-Sample Winner's Curse (Publisher Noise)
- Problem: Long-tail domains with small impression counts (e.g.,
viewable impressions ) get assigned maximum bid multipliers by naive rules, burning budget on unverified tail traffic. - Pro Solution: Empirical Bayes shrinkage calibrates domain scores towards global baseline performance (
), pulling low-volume publishers toward the campaign mean while granting confidence only to statistically significant volume.
2. Proxy Domination in Multi-Objective Funnels
- Problem: When combining high-funnel proxies (e.g., Active View viewability or clicks) with low-funnel Floodlight conversions, high-frequency proxies generate
of total score mass, causing Google's ML model to ignore conversions completely. - Pro Solution:
bidkit-pro weightsenforces econometric transition caps () and mass balances proxy weights so the primary conversion retains of score mass.
3. Score Variance Inflation & Pacing Starvation
- Problem: Uncapped continuous Floodlight revenue values or extreme viewability durations cause
, which destabilizes DV360's daily budget pacing multipliers ( ) and causes bid starvation. - Pro Solution: Automated 95th-percentile ternary outlier capping compiles compliant
(cap if val > cap else val)expressions into the script.
4. Rule Budget Overflow
- Problem: Granular domain scoring easily exceeds DV360's script size and evaluation step limits.
- Pro Solution: Pro's impression-weighted quantization compresses thousands of domain rules into optimal discrete scoring tiers while minimizing distortion.
Pro Installation & Authentication
Step 1: Purchase & Download Bundle
- Purchase a license on Polar.sh.
- Download your license benefit:
dv360-bidkit-pro-0.1.0-all-wheels.zip.
Step 2: Install Platform Binary
Extract the zip and install the matching pre-compiled Cython wheel for your platform (Python 3.10–3.13 on Linux, macOS, or Windows):
unzip dv360-bidkit-pro-0.1.0-all-wheels.zip
pip install --find-links . dv360-bidkit-proStep 3: Authenticate
Authenticate your license using the BK_PRO_... key from your Polar receipt:
# Via CLI command:
bidkit-pro auth --key BK_PRO_your_license_key
# Or via environment variable:
export BIDKIT_PRO_API_KEY="BK_PRO_your_license_key"Pro validates your license with Polar.sh and stores a cryptographically signed 24-hour HMAC cache locally (~/.bidkit_license.cache), allowing offline and CI/CD operation without constant API pings.
Pro CLI Commands
bidkit-pro weights
Audits candidate proxy signals and computes mass-balanced optimal weights:
bidkit-pro weights \
--report dv360_performance.csv \
--mapping mapping.json \
--macro "conversions" \
--proxies "viewable_impressions,clicks" \
--out weights.jsonbidkit-pro build
Builds a complete, production-ready campaign bundle:
bidkit-pro build \
--report dv360_performance.csv \
--mapping mapping.json \
--config campaign.json \
--weights weights.json \
--policy policy.csv \
--out-dir ./output_bundleExported Artifacts in ./output_bundle:
script.py: Production DV360 Custom Bidding DSL script.rules.json: Compiled RuleSet schema.configuration.json: Full campaign configuration.calibration.csv: Empirical Bayes domain shrinkage parameters.diagnostics.json: Full pre-flight simulation and readiness report.audit.html: Visual self-contained HTML audit dashboard.targeting_block_request.csv: Domains requiring ad-serving blocks (if present in policy).manifest.json: Cryptographic SHA-256 build manifest with input hashes.