---
name: set-up-value-based-bidding
description: >-
  Configures bidding that optimizes conversion VALUE rather than conversion count: Maximize
  Conversion Value or Target ROAS on revenue data, profit-valued bidding once margin data flows
  into the conversion, and an experiment-first path for lead gen accounts importing real deal
  values. It verifies values are actually populating and accurate before anything else, sets
  conservative initial targets from trailing averages, adds guardrails (budget cap, CPC ceiling)
  around the risky revenue-to-profit transition, and manages the learning window. Use it when the
  objective is revenue or profit efficiency and value data exists. Not for count-based goals
  (set-up-conversion-based-bidding), the target math (calculate-bid-targets), building the profit
  feed itself (set-up-cart-data-and-profit-tracking), or CRM value imports
  (set-up-offline-conversion-tracking).
---
# Configure Value-Based Bidding (Max Conversion Value / tROAS / Profit-Valued)

## Purpose
Value bidding lets the algorithm prefer a 900 order over a 40 one, but only if the conversion
values it sees are real. This skill front-loads value verification, then configures the right
variant for the account's data (revenue, gross profit, or imported deal values), wraps the
riskiest transition, switching the optimization signal from revenue to profit, in explicit
guardrails, and runs the standard learning-period discipline afterward.

## When to run
- Strategy selection landed on Maximize Conversion Value or Target ROAS.
- An ecommerce campaign is moving from count-based (tCPA) to value-based optimization.
- Profit tracking just went live and the account should bid on margin instead of revenue.
- A lead gen account now imports deal values and wants to test value bidding against its tCPA
  baseline.

## When NOT to run
- The goal is conversion count -> set-up-conversion-based-bidding.
- No dynamic values in the conversion data, or every conversion carries the same value ->
  value bidding degenerates into volume bidding; stay on tCPA, and build value data first
  (set-up-cart-data-and-profit-tracking / set-up-offline-conversion-tracking).
- The ROAS/profit target number is unknown -> calculate-bid-targets.
- Still choosing among strategy families -> select-a-bidding-strategy.
- Campaigns too thin individually -> set-up-portfolio-bid-strategies (note tROAS wants 50+
  monthly conversions with varied values).

## Prerequisites
- A conversion action carrying dynamic values (revenue, gross profit, or imported deal values).
- Calculated ROAS or profit-per-spend target, plus breakeven, from calculate-bid-targets.
- For the profit path: profit tracking live with 100+ profit-valued conversions recorded.
- For the lead gen path: offline import running with 50+ value-carrying conversions and a stable
  tCPA baseline campaign.

## Procedure
1. **Session guardrail.** Call `gads_policy_guardrail` before the session's first write.
2. **Verify values exist.** `gads_list_conversion_actions` to locate the value-carrying action;
   then `gads_run_gaql_query` segmented by conversion action over the last 30 days: conversions,
   `metrics.conversions_value`, and value-per-conversion. Values of zero, or a suspiciously flat
   value-per-conversion, mean the value pass-through is broken or static, stop and fix tracking
   before any strategy work.
3. **HUMAN STEP (outside VigilDog).** Spot-check 10-20 recent conversions against backend
   truth (order totals, margin records, CRM deal values). More than ~5% divergence -> investigate
   tracking before proceeding; bidding on wrong values is worse than bidding on none.
4. **Point the campaign at the right action (write).** The primary action must match the intent:
   revenue action for ROAS bidding, profit action for profit bidding, imported-deal action for
   lead gen value bidding. Adjust the action's goal/primary configuration via
   `gads_update_conversion_action` and campaign goal settings as needed, preview
   (validate_only=true default), apply after user approval. A revenue action left primary under an
   intended profit setup silently optimizes the wrong thing.
5. **Fork by path.** Revenue -> step 6. Revenue-to-profit transition -> step 7. Lead gen deal
   values -> step 8.
6. **Revenue path (write).** New to value bidding or wide catalogs with variable order sizes:
   start Maximize Conversion Value with NO target for 2-4 weeks to learn the value distribution,
   then add the target at (or slightly below) the achieved average ROAS. Established history +
   validated target: apply tROAS directly, set at or slightly below the trailing 2-4 week average
   ROAS, never above it at launch. All via `gads_set_campaign_bidding_strategy`, previewed and
   user-approved. Continue at step 9.
7. **Profit-transition path (writes, guardrails first).** Switching the optimization signal from
   revenue to profit makes the algorithm re-learn; guard it:
   a. Confirm 100+ profit-valued conversions and passed value validation (steps 2-3).
   b. Cap the daily budget at roughly the recent average daily spend so relearning cannot blow
      out costs.
   c. Add a CPC ceiling ~20-30% above the current average CPC, done via a portfolio strategy
      that carries a max-CPC limit (set-up-portfolio-bid-strategies builds it).
   d. Switch the primary action to the profit action (step 4 flow) and set the initial target:
      equivalent profit target ~= current ROAS target x average margin (400% ROAS at 40% margin
      -> ~160%); 100% is breakeven by construction. Growth-lean 100-150%, balanced 150-200%,
      profit-lean 200-300%.
   e. Watch 2-4 weeks via `gads_run_gaql_query`: CPCs +30% over historical -> tighten the
      ceiling; spend pushing the cap -> hold the cap; volume -40% -> loosen the target 10-20%;
      weekly value-accuracy check against backend. After stability: raise then remove the CPC
      ceiling, let budget expand if earned.
   Every write previewed and user-approved. Continue at step 9.
8. **Lead gen path (experiment, writes).** Never hard-switch a working tCPA lead campaign to
   tROAS, deal-value data is sparse and lagged. Instead `gads_create_experiment`: 50/50 split,
   experiment arm on tROAS with initial target = (average deal value / average CPA) x 100
   (2,000 average value at 200 CPA -> 1,000%), run 30+ days. Preview and get approval for the
   experiment writes. Judge on total conversion value first, CPA drift second, volume third, a
   modestly higher CPA is a win if total deal value rises. Value arm wins -> promote; ties or
   losses -> keep tCPA and re-test after more imports accumulate.
9. **HUMAN STEP (outside VigilDog).** Stakeholder brief: ~two conversion cycles of volatile
   ROAS/value numbers, no mid-learning changes, evaluation date fixed now.
10. **Learning window (read-only).** Daily anomaly checks via `gads_run_gaql_query`: values still
    populating, no extreme CPC spikes, spend within bounds. No target changes, no budget moves
    >10%, no structural edits.
11. **Post-learning loop.** Evaluate excluding learning + conversion-lag windows: actual vs
    target, total value vs growth goal. Adjust per Decision rules in 10-15% steps, one conversion
    cycle apart, each change previewed and approved. Cadence thereafter: weekly target-vs-actual
    and IS-lost reads; bi-weekly search-term/CPC anomaly scan; quarterly target revalidation
    against margins (calculate-bid-targets).

## Decision rules
- **Data gates:** tROAS wants 50+ conversions/month with genuinely varied values; profit
  switching wants 100+ profit-valued conversions; lead gen experiments want 50+ value imports.
  Identical values across conversions -> use tCPA, value bidding adds nothing.
- **Initial targets:** always at or slightly BELOW the trailing average ROAS (looser, since
  higher ROAS = stricter); aspirational launch targets choke volume and extend learning.
- **Profit-target conversion:** profit target ~= ROAS target x average gross margin; 100% =
  breakeven.
- **Post-learning matrix:** on target + value on goal -> hold. Actual >20% below target ->
  diagnose volume/tracking first, then move the target toward reality in 10-15% steps. Actual
  well above target -> loosen to buy volume. Value under goal with budget headroom -> loosen
  10-15%; without headroom -> budget first (allocate-budget-across-campaigns).
- **Change discipline:** 10-15% per target move, one conversion cycle between, >20% restarts
  learning.
- **Profit-switch worthiness:** only pays when margins vary meaningfully across products; flat
  margins make profit and revenue signals identical, skip the transition.

## Common failure modes
- **Bidding on broken values.** Zero/static/inflated values steer every auction wrong; steps 2-3
  are the foundation, not a formality.
- **Wrong primary action.** Revenue action primary under an intended profit setup (or vice
  versa) is invisible in dashboards and wrong in every auction.
- **Naked profit transitions.** Switching the value signal without budget/CPC guardrails invites
  CPC spikes while the model recalibrates.
- **Hard-switching lead gen to tROAS.** Sparse, lagged deal values give the algorithm too little
  to learn from; the experiment path exists to protect the proven baseline.
- **Aggressive launch tROAS.** A target above the trailing average strangles delivery on day
  one and gets value bidding falsely blamed.

## Related skills
- Before: select-a-bidding-strategy, calculate-bid-targets, set-up-cart-data-and-profit-tracking
  (profit values), set-up-offline-conversion-tracking (deal values),
  set-up-google-ads-conversion-tracking (base tracking).
- Alternative: set-up-conversion-based-bidding (count objectives).
- After: monitor-and-maintain-bid-strategy-health (recurring checks), scale-bids-and-budgets
  (target/budget iteration once stable), set-up-portfolio-bid-strategies (CPC-ceiling carrier or
  data pooling).
