Purchase Conversions with Zero Value
Your Google Ads purchase action is set to "Don't use a value" (or fixed at zero). To Smart Bidding, every order looks identical. A $10 sale and a $1,000 sale weigh the same. If you're running Target ROAS or Maximize Conversion Value, the algorithm has no revenue signal to optimise against, and it falls back to chasing the cheapest conversions it can find.
Why It Matters
Value-based bidding is the entire point of running Target ROAS or Maximize Conversion Value. It lets Google trade conversions for revenue: skip the $10 customer, win the $1,000 customer, even if the $10 customer was easier to acquire. The strategy stops working the moment conversion value goes to zero. Without a value, Smart Bidding can't prioritise high-revenue traffic because it can't see which traffic is high-revenue. It defaults to count optimisation, spending to maximise the number of conversions regardless of what each one is worth. Budget shifts toward whatever campaign cranks out cheap conversions — usually branded search or remarketing — at the expense of upper-funnel campaigns that are actually driving the high-value buyers. The Google Ads side of the fix is one setting. The hard part is upstream. Value has to flow from the site to the dataLayer, from the dataLayer to the GTM tag, from the GTM tag to Google Ads. If any link in that chain is broken, fixing the Google Ads setting only exposes the next broken link. Audits commonly find this in roughly a third of e-commerce accounts, which is the single most common preventable cause of underperforming Target ROAS campaigns.
How To Fix It
- In Google Ads, open Tools & Settings → Measurement → Conversions and select each flagged action.
- Under Value, switch from "Don't use a value" or "Use the same value" to "Use different values for each conversion."
- Open the GTM tag that fires this conversion. It needs to pass a value parameter, typically `{{DLV - ecommerce.value}}` from a Data Layer Variable. If the value parameter is empty or hardcoded, fix `missing-datalayer-variables` and `ecommerce-datalayer-structure` first.
- Set a default value in Google Ads as a fallback for the rare case where the dataLayer value cannot be resolved (typically the rolling average order value).
- Wait 7 days, then check Google Ads → Conversions for non-zero values on the flagged actions. If you still see zeros, the upstream pipeline is broken, not Google Ads.
Example
Google Ads conversion value setting: Use different values for each conversion
GTM value parameter: {{DLV - ecommerce.value}}This account has Google Ads purchase or sale conversion actions configured with no revenue value. Per Google's value-based-bidding documentation, automated strategies such as Target ROAS and Maximize Conversion Value require non-zero per-conversion values to optimise toward revenue rather than volume. Zero-value purchases collapse these strategies into count-based optimisation, biasing spend toward low-revenue traffic. Fix: switch the action to "Use different values for each conversion," confirm the value parameter flows from GTM, and verify non-zero reported values within one reporting cycle. Source: support.google.com/google-ads/answer/13064107.
Drop this paragraph into your client deliverable. Sources back to the canonical platform documentation linked below.
References
Audit your own files for this check
AdLint runs this check (and 177 others) against your GTM, Google Ads, Meta, TikTok, LinkedIn, Pinterest, Twitter/X, and Snapchat exports. Everything stays in your browser. No uploads, no accounts.
Run a free audit