valrune/data
all work
value-based bidding with bqml

Value-based bidding: teach the bidder what a lead is worth

Most accounts bid as if every lead were equal, and they are not. This build put a BigQuery ML model between the CRM and Google Ads: every lead gets a modeled value the moment it arrives, and the bidder optimizes toward predicted revenue instead of raw lead counts.

stack:bqml · logistic regression · google ads
focus:value-based bidding
scope:enterprise + smb
+38.4%[ revenue lift from vbb ]smb contractor
11[ bqml models shipped ]enterprise
~1,100[ feature categories learned ]enterprise
33x[ top vs bottom decile ]enterprise

What value-based bidding actually does

Value-based bidding sits on top of the identity and attribution builds. Identity resolution plugs the dark spots in the data, so a paid touch that led to revenue is not lost just because the visitor was anonymous when they clicked. With the journey reconnected, the model can score each lead by the revenue it is likely to produce, so conversions carry weights that reflect their real value.

Most accounts bid on one of three weak signals: a flat conversion value, a count of CRM milestones, or a web event like a form fill. Value-based bidding replaces those with a modeled prediction of value, and where the data supports it, predicted lifetime value. The model is trained with BQML against business reality, the actual outcomes recorded in the warehouse, so the bidder optimizes toward revenue and LTV directly. The goal is to find which kind of customer is most likely to produce the most value, so the platform can bid for more of them.

Reading model health: ROC-AUC and the metrics around it

Before a model's output can feed a bidder, its health has to be established. ROC-AUC stands for the area under the receiver operating characteristic curve. It measures how well the model ranks a random converter above a random non-converter, on a scale from 0.5 (no better than a coin flip) to 1.0 (perfect ranking). As a rough guide, 0.5 is useless, 0.7 to 0.8 is useful, above 0.8 is strong, and a suspiciously high 0.99 usually signals a leak in the features.

AUC alone is not enough. Precision asks, of the leads the model flags as likely, how many actually convert, which protects the bidder from chasing false positives. Recall asks how many of the true converters the model catches. F1 balances the two. The model for this business lands at 0.78 ROC-AUC, 0.70 precision, and 0.75 F1, tuned so the values reaching Google are ones the auction can trust.

Reaching that output is not a single query. It took building the identity and attribution layers underneath, engineering roughly 1,100 feature categories, training and evaluating eleven model versions, and wiring the scored values back out through offline conversions and value rules. The headline number is one line; the pipeline behind it is the work.

The dimensions the model resolved on

The model resolved each lead on many dimensions, including lead source, the specific content a lead arrived through, campaign, industry, territory, business size, engagement and behavioral signals, account firmographics, and funnel stage. Those dimensions are what let it separate a high-value customer profile from a low-value one before sales ever makes contact.

The lift chart: actual conversion by modeled decile

Leads ranked into ten deciles by modeled probability, then checked against what actually happened. Decile 1 converts at 1%, decile 10 at 32.2%, a 33x spread the bidder can finally see. The line is the modeled value per lead, indexed to the bottom decile = 100.

metric: actual conversion rate + modeled value index per decile · source: bqml evaluation tables

A lift chart is the plain-language test of whether a model is worth deploying. If the top decile did not convert far better than the bottom, the model would be noise and bidding on its values would waste money. Here the ranking holds cleanly from decile to decile, which is what makes the modeled values safe to send to Google.

[ what the model learned ]

Content beats demographics

Across roughly 1,100 learned feature categories, the strongest signal was the content a lead arrived through. Source-detail and campaign features carry two orders of magnitude more learned weight than firmographic fields like customer segment. The industry weights also re-ranked the target market, since several segments convert at multiples the sales team would not have guessed.

Learned weight by feature family

Total absolute weight per feature family. The content a lead touched (red) dominates; the fields most lead-scoring folklore is built on barely register.

metric: Σ |log-odds weight| per family · source: ml.weights

Industry conversion odds vs baseline

Odds multipliers the model assigned by industry. Agriculture and forestry at 14.7x (yellow), a segment nobody was prioritizing before the model priced it.

metric: odds multiplier per industry · source: ml.weights
[ shipping the value signal ]

The model for the enterprise, and the SMB export

The model for this business is a BQML logistic regression trained on resolved journeys from the identity layer. It scores each lead's probability of becoming an opportunity, then multiplies that probability by segment-level value to produce a price the bidder can use. The same principle runs at SMB scale for a home-services contractor, where booked-job revenue is exported back to Google as conversion value. Both charts below are indexed so the shape of the value signal is comparable across the two builds.

Enterprise: modeled value by decile, indexed

Modeled value per lead, indexed to the bottom decile at 100. The top decile is priced at nearly 8x the bottom, which is the spread Smart Bidding gets to act on.

metric: modeled value per decile, indexed · source: bqml scoring tables

SMB: value export, indexed

Booked-job revenue exported to Google as conversion value, indexed to pre-build = 100. The value signal reaching the bidder rose to 5.5x.

metric: conversion value reaching google, indexed · source: warehouse export pipeline

On average, advertisers that switch from a Target CPA to a Target ROAS bid strategy can see 14% more conversion value at a similar return on ad spend

· google ads help, google internal data, 2021
+38.4%[ revenue lift from vbb ]smb contractor
11[ bqml models shipped ]enterprise
~1,100[ feature categories learned ]enterprise
33x[ top vs bottom decile ]enterprise