Universal Pixel Debugger

Guides

GA4 purchase sent with a value but no currency

Updated 2026-09-28

A GA4 purchase that sends a value but no currency has epn.value (or ep.value) in the request and neither cu nor ep.currency. Google's GA4 events reference says that when value is set, currency is required for revenue metrics to be computed accurately, so fix the tag rather than rely on reports. Universal Pixel Debugger shows the currency as Not observed in that case and never fills it in from the store or another network.

What the symptom looks like

Orders arrive in GA4, but their revenue looks wrong or does not appear the way you expect, while the ad platforms show amounts for the same orders. The same gap can affect other events that carry a value, such as add_to_cart or begin_checkout, and other networks' tags.

How to recognize it in the request

GA4 sends events to a /g/collect endpoint. The event name is in en, numeric event parameters are prefixed epn. and text parameters ep.. The currency usually travels as the top-level cu key rather than as an event parameter.

NetworkValue keyCurrency keyMissing currency looks like
GA4epn.value, then ep.valuecu, then ep.currencyen=purchase with epn.value and no cu or ep.currency
Meta Pixelcd[value]cd[currency]ev=Purchase with cd[value] and no cd[currency]
Google Adsvaluecurrency_code, cu or currencyvalue with none of the currency keys

Cases that look similar

Common causes to check

These are typical reasons a tag drops the currency. The request shows only the result, not which one applies.

Missing currency on other networks

The same problem appears outside GA4. On a live store, Google Ads CCM and view-through requests carried a value with no currency, while the main conversion request for the same action carried currency_code; those formats carry different fields by design, so the extension compares only requests of the same format (see Google Ads CCM and view-through requests). On another occasion, one Google Ads account received no currency for an event while a second account received USD. The extension reported that as Currency differs between destinations, listing nothing for the first account.

How to check with Universal Pixel Debugger

  1. On your own store, open the side panel with the toolbar icon, click Clear, then complete a test order or add a product to the cart.
  2. Wait a few seconds. A GA4 hit can arrive after the other networks.
  3. Click the purchase event in the GA4 lane or the timeline. Value shows its key, for example from epn.value. Currency shows from cu or from ep.currency when sent, and Not observed when not.
  4. Open the GA4 parameters checklist. A missing currency appears in the Not sent list under its keys, cu and ep.currency.
  5. If other networks sent the same order ID, expand the compare strip for that order. A summary such as Currency missing means some networks sent a currency and others did not; the expanded view shows how many observations lack it and the original values each destination received.
  6. Check the issues for Invalid currency format or Currency differs between destinations.

A value without a currency does not raise a separate issue on its own. Read the Currency line of each event that carries a value.

What to fix or ask your developer

The side panel shows what the browser sent. It cannot show how GA4 processed the hit, and events sent from a server, such as through the Measurement Protocol, never appear there.

Sources