What gets tested
On every sampled product page, the check collects the currency statements of all sources: priceCurrency from the Product JSON-LD, currency from the view_item event and the currency sign on the visible price. Different codes across sources or pages yield "to review", as does a tracked event with a price but no currency. If no source states one at all, it stays a note.
Why it matters
Revenue without a currency is not an amount to a machine, just a number. GA4 drops such values, Google Shopping rejects offers without priceCurrency, and a USD leftover from a copied theme silently converts euro revenue into dollar reports. The damage stays invisible until someone compares totals.
Common causes
- The theme comes from a US marketplace and carries USD as the JSON-LD default.
- The dataLayer push fills price, but nobody wired the currency field.
- Multi-currency shops render the display currency but track the shop base currency.
- The JSON-LD states the symbol (€) instead of the ISO code (EUR).