Free tool by Clarvivo · no login
Paste a redacted JSON array from window.dataLayer to check purchase identifiers, values, currency, items, and repeat events before analytics turns them into bad revenue data.
Paste a redacted JSON array copied from window.dataLayer. We validate ecommerce event structure only; do not include customer information.
This tool answers: Does my ecommerce dataLayer contain the transaction, value, currency, and items GA4 needs?
Enable JavaScript to run the check — the diagnosis itself is free and needs no account.
GA4 ecommerce reporting is only as good as the dataLayer behind it. If the purchase push is missing a transaction_id, GA4 can't deduplicate repeats. If value isn't a number, revenue shows as zero. If currency is missing or wrong, totals are converted incorrectly or dropped. If items is empty, item-level reports are blank.
These problems are easy to introduce and hard to spot. A platform update changes a field name from transactionId to order_id. A value is passed as the string "49,99". A test environment sends a second purchase with the same ID. GA4 accepts most of this silently, and the damage only shows weeks later in reports that don't add up.
This validator checks the structure directly. Paste a redacted copy of window.dataLayer and it reports exactly which entries are missing what, before the data reaches GA4.
These answer the questions this one tends to raise.
So you can trust the result — and your developer can verify it.
Copy window.dataLayer from your browser console on a confirmation page (JSON.stringify(window.dataLayer)) and remove any customer data. Validation runs on the structure only.
We identify GA4 ecommerce events in the array: purchase, add_to_cart, begin_checkout, view_item and the rest, including legacy Universal Analytics shapes.
For each purchase we check transaction ID (transaction_id, transactionId, order_id or orderId), a finite numeric value, a currency code and a non-empty items array. Negative values and unexpected currencies are flagged.
The same transaction ID appearing twice in one snapshot means the purchase was pushed twice, which is the first step toward double-counted revenue.
Clarvivo reconciles measured ecommerce events with payment truth so implementation errors surface before they shape decisions.
Connect ecommerce tracking to revenue