Skip to content

Fix: Purchase conversions firing without a value parameter (ecommerce)

finding google ads updated 2026.05.25 8 min read

The Purchase conversion is recording — but every event arrives with value=0 or no value at all. Smart Bidding sees the count, not the revenue. tROAS cannot run, and Maximize Conversion Value collapses to a flat per-conversion average.

Why this matters

A purchase conversion without value and currency is, from Smart Bidding's perspective, indistinguishable from a free signup. The auction model has no way to tell the difference between a $19 sticker order and a $1,900 cart — both contribute "1 conversion" identically. As a result, Maximize Conversion Value and tROAS either refuse to enable (Google blocks them when no value flows) or behave as expensive look-alikes of Maximize Conversions, allocating spend toward whatever drives the most events regardless of margin or order size [1][3].

The blast radius reaches further than the bid strategy. PMax asset-group reporting cannot rank creatives by revenue contribution, Shopping campaigns cannot separate high-AOV SKUs from low-AOV ones, and value-rules adjustments (Maximize Conversion Value with location/audience/device modifiers) have no base value to multiply against [4]. For multi-currency stores the gap is even sharper: without a currency parameter Google falls back to the account's billing currency, which silently corrupts the value signal whenever a Polish customer pays in PLN but the model sees USD [1].

This rule is distinct from primary_vs_secondary_conv_actions — that finding asks whether the right action is feeding the bidder; this one asks whether the action carries any revenue payload at all. An account can have the correct primary action selected and still fail this rule if the value parameter is hardcoded to 1.00 or omitted from the gtag/GA4 event [5].

How to verify the issue

  1. Open GoalsConversionsSummary. Find the Purchase action. Check the Conv. value column — if total value is zero or matches the conversion count multiplied by 1.00, value is not flowing.
  2. Open the action and read the Value field. Three possible states: Use the same value for each conversion (static — fails if you sell variable-price items), Use different values for each conversion (dynamic — what you want), Don't use a value (broken).
  3. Walk a live purchase in Chrome with Tag Assistant. Inspect the conversion event payload — confirm value is a number greater than zero and currency is a 3-letter ISO 4217 code matching the cart [5].
  4. In ToolsDiagnostics on the Purchase action, look for warning "Conversion value missing" or "Default conversion value used" — Google surfaces these explicitly when payloads arrive without a value.
  5. Verify in GA4 (if linked to Ads): ReportsMonetizationEcommerce purchases. If GA4 shows revenue but Ads shows zero, the value is present in the GA4 event but the imported conversion is misconfigured [7].

How to fix it

Total time: 30-90 minutes for the tag work, plus a 7-day stabilization window before tROAS can be retargeted. Touches dev/tagging surface, not just Ads UI.

  1. Decide the value semantics. Most accounts should pass net of tax and shipping because that is what Smart Bidding-against-margin needs. Google Analytics 4 documentation defines value as the sum of (price * quantity) across items, excluding tax and shipping [5]. Pick one definition and apply it consistently across all surfaces.
  2. Configure the conversion action for dynamic values. GoalsConversionsSummary → open the Purchase action → Edit settings. Under Value, select Use different values for each conversion. Set a sensible default (e.g., your AOV) so missing payloads do not zero out, but treat the default as a safety net, not a strategy.
  3. Fire the value in the tag. For gtag.js, the purchase event must include value, currency, and ideally transaction_id (for dedupe and refund handling):
    gtag('event', 'conversion', {
      'send_to': 'AW-XXXXXXXXX/YYYYYYYYY',
      'value': 99.99,
      'currency': 'USD',
      'transaction_id': 'order_12345'
    });
    
    For GTM, use the Google Ads Conversion Tracking tag and map the dataLayer's ecommerce.value and ecommerce.currency into the tag's value and currency fields [5].
  4. Pull the value dynamically from the order. A common mistake is hardcoding value: 99.99 into the success-page snippet. The success page must read the actual transaction total from the order context (server-rendered, dataLayer push, or Shopify/Magento order object) and inject the real number per purchase. If every order ships with the same value, the rule is still failing.
  5. Handle multi-currency. If the store sells in more than one currency, send the customer's transaction currency in the currency field — Google Ads converts to the account's reporting currency using daily exchange rates [1]. Do not pre-convert to USD on the client; that destroys traceability.
  6. Add refunds. When a customer refunds, upload a negative-value conversion via ToolsConversionsUploads with a CSV row carrying the same transaction_id and a negative value. Skipping refunds lets Smart Bidding optimize toward returns-heavy SKUs.
  7. Wait, then enable value-based bidding. Once a 30-day window contains at least two distinct non-zero values and 50-60+ valued conversions, switch the bid strategy from Maximize Conversions to Maximize Conversion Value [3][6]. Layer tROAS only after the unconstrained Max Conversion Value strategy has stabilized for 2-4 weeks — Google's documentation recommends 1-2 full conversion cycles before comparing target vs. actual ROAS [2].

How to confirm the fix worked

Diagnostic checklist — run all six within 7 days of deploy

  • Tag Assistant shows value (numeric, non-zero) and currency (ISO 4217) on the live purchase event.
  • GoalsConversionsSummary shows Conv. value > 0 on the Purchase action within 24h.
  • Diagnostics clears the "Conversion value missing" warning.
  • Ads-reported revenue reconciles within ±5% of GA4 Monetization revenue over a 7-day window (drift indicates either an event-mapping mismatch or a tax/shipping inclusion disagreement) [7].
  • In a 30-day window the Purchase action records 2 or more distinct conversion values [2].
  • A refund test posts a negative-value upload that subtracts from the daily total in ToolsConversionsUploads.

If all six pass, the finding closes and the account becomes eligible for Value-Based Bidding — switch to Maximize Conversion Value first, then layer tROAS once the strategy has stabilized.

Methodology note. This rule sits at the seam between two failure modes Whitead handles separately. The first is "conversion tracking missing" — no tag firing at all — which is CRITICAL and gates everything. The second is "tracking exists but the value payload is empty" — what this rule catches — which is HIGH because Smart Bidding still records something, but optimizes against an impoverished signal. We treat the value-tracking gap as second priority after base tracking because it directly blocks the entire value-based bidding family: tROAS, Maximize Conversion Value, and value-rules adjustments all require the value parameter [3][4]. It also co-occurs with the primary-vs-secondary action finding (the wrong action selected) and with attribution model gaps (last-click ignoring upper-funnel touches that the value signal would otherwise weight). Fix-priority order is: base tag → value parameter → primary action → DDA attribution → bid strategy upgrade. Skip ahead to tROAS without value flowing and the strategy will either refuse to enable or behave like Maximize Conversions on a more expensive interface.

  • Conversion Tracking — base measurement; the value parameter rides on the same purchase event this article covers.
  • Value-Based Bidding — the bidding family this finding unblocks (Maximize Conversion Value, tROAS).
  • Smart Bidding — broader auction-time bidding context; value-aware strategies are a subset.
  • Data-Driven Attribution — the attribution model that, once value flows, weights touchpoints by predicted revenue contribution.

Sources

  1. Google Ads Help — Set up your web conversions. https://support.google.com/google-ads/answer/6095821 (accessed 2026-05-25)
  2. Google Ads Help — Value-based Bidding Best Practices. https://support.google.com/google-ads/answer/14792795 (accessed 2026-05-25)
  3. Google Ads Help — About Maximize conversion value bidding. https://support.google.com/google-ads/answer/7684216 (accessed 2026-05-25)
  4. Google Ads Help — About conversion value rules. https://support.google.com/google-ads/answer/10518330 (accessed 2026-05-25)
  5. Google Developers — gtag.js event reference (purchase: value, currency). https://developers.google.com/tag-platform/gtagjs/reference/events (accessed 2026-05-25)
  6. Google Ads Help — About Target ROAS bidding. https://support.google.com/google-ads/answer/6268637 (accessed 2026-05-25)
  7. Search Engine Land — Maximize Conversion Value: Google Ads bidding explained. https://searchengineland.com/maximize-conversion-value-google-ads-bidding-explained-453638 (2024)
  8. Optmyzr — Value-Based Bidding: What Is It, Best Practices & Pitfalls. https://www.optmyzr.com/blog/value-based-bidding-guide/ (accessed 2026-05-25)
// was this useful?
// anonymous · no personal data stored