Full Answer
The corruption mechanism is straightforward but its impact is often invisible until someone compares GA4 revenue totals against WooCommerce order exports and finds they do not match.
When a WooCommerce store uses a currency switcher plugin, the storefront displays prices in the visitor's detected or selected currency. A product priced at USD 100 might display as EUR 92, GBP 79, or AUD 155 depending on the visitor. When the tracking script fires the purchase event, it reads the price from the DOM — which shows the display currency value, not the base currency value.
GA4 receives these purchase events and sums the revenue figures without currency normalisation. A USD 100 order, a EUR 92 order, and an AUD 155 order all get added together as if they were the same currency — producing a total of 347 in GA4's revenue column. The actual revenue in the store's base currency might be USD 300. The 15.7% inflation comes entirely from the currency mixing.
The problem compounds over time. Exchange rates fluctuate daily, so the same product viewed on different days generates different tracked values. Monthly revenue in GA4 becomes a moving target that does not correspond to any real financial figure.
The fix requires tracking the base currency value rather than the display currency value. Server-side tracking implementations that read order data from WooCommerce's database — where the base currency amount is the canonical record — bypass the frontend display currency entirely. The tracked revenue then matches WooCommerce's order records, and GA4 reporting becomes financially meaningful.