Fixing Missing Currency or Value in Purchase Event

Fix Missing Currency & Value

Eliminate the #1 warning in Meta Events Manager. Master proper formatting for currency, value, and product contents.

Deploy CAPI Control Free
Quick Answer • Key Principle

In Meta Conversions API, every 'Purchase' event strictly mandates both the 'value' (numeric float, e.g. 89.50) and 'currency' (3-letter uppercase ISO 4217 code, e.g. 'USD') parameters inside the custom_data object. If either parameter is missing, null, or formatted as a string with currency symbols ('$89.50'), Meta degrades your ad account's Value Optimization bidding models.

1. The Number One Warning in Events Manager

In Meta Events Manager, the single most common diagnostic warning across all ad accounts is: 'Purchase event is missing value or currency parameter'.

When this warning appears, Meta's Value Optimization (VO) algorithm is disabled for that ad set. The platform cannot calculate ROAS and reverts to basic conversion volume bidding, treating an $800 luxury order identically to a $10 phone case and degrading advertising efficiency.

Core Failure Modes Identified
  • VO Bidding Disabled: Inability to run 'Maximize Value of Conversions' campaigns.
  • ROAS Columns Empty: Ads Manager displaying dashes (`-`) instead of calculated ROAS numbers.
  • Formatting Bugs: Developers accidentally placing `value` at the root payload instead of inside `custom_data`.

2. Comparative Analysis: Standard Tracking vs CAPI Control

The table below outlines the architectural and financial differences between passive conversion tracking and active signal governance:

Implementation AttemptWhy It FailsThe Correct Formatting
Currency with Symbol: '"currency": "$"'Not a valid ISO 4217 codeMust be 3 uppercase letters: `"currency": "USD"`
Value as String with Symbol: '"value": "$89.00"'Non-numeric string parsing errorMust be pure numeric float: `"value": 89.00`
Value at Root JSON LevelMeta only inspects `custom_data` objectMust nest inside `custom_data: { value, currency }`
Missing Currency CompletelyMeta cannot determine monetary denominationAlways supply standard base currency code

3. Correct custom_data Object Structure

Ensure your purchase event contains a clean, validated `custom_data` block:

// Correct custom_data Object in CAPI Payload
{
  "event_name": "Purchase",
  "custom_data": {
    "currency": "USD", // 3-letter ISO 4217 uppercase string
    "value": 149.95,   // Pure numeric float (NOT a string)
    "content_type": "product",
    "contents": [
      {
        "id": "SKU_7721",
        "quantity": 1,
        "item_price": 149.95
      }
    ]
  }
}
Implementation Roadmap

How to Deploy CAPI Control to Fix This Today

  1. Step 1: Open Meta Events Manager > Diagnostics and verify if the 'Missing value/currency' warning is active.
  2. Step 2: Inspect your backend payload formatter to ensure `value` is parsed with `parseFloat()`.
  3. Step 3: Deploy CAPI Control to automatically validate and format custom_data objects.
  4. Step 4: Re-enable Value Optimization bidding in Meta Ads Manager.
Deploy CAPI Control Free in 2 Minutes →

Frequently Asked Questions

Can the conversion value be 0.00?

While technically accepted, Meta recommends passing a minimum value of 0.01 for Purchase events to avoid triggering algorithm warnings.

What happens if a customer pays in GBP but my ad account is in USD?

Pass `"currency": "GBP"` with the actual GBP amount. Meta's API handles real-time currency conversion into your ad account's base currency automatically.

Do ViewContent and AddToCart require value and currency?

They are optional for ViewContent and AddToCart, but highly recommended to help Meta evaluate mid-funnel intent.

Zero-Risk Deployment

Ready to steer Meta & Google toward your most profitable traffic?

Drop in CAPI Control in under 2 minutes. Transmit 100% of conversion signals free forever, or activate autonomous signal AI agents to get 3x better ad traffic.

Deploy Free CAPI Control →