Clarvivo

Free tool by Clarvivo · no login

Validate the ecommerce dataLayer your tags depend on

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.

window.dataLayer JSON

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.

Why this happens

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.

Next checks

These answer the questions this one tends to raise.

How this check works

So you can trust the result — and your developer can verify it.

  1. Paste a redacted dataLayer

    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.

  2. We find ecommerce events

    We identify GA4 ecommerce events in the array: purchase, add_to_cart, begin_checkout, view_item and the rest, including legacy Universal Analytics shapes.

  3. We validate the purchase fields

    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.

  4. We look for duplicate transaction IDs

    The same transaction ID appearing twice in one snapshot means the purchase was pushed twice, which is the first step toward double-counted revenue.

Common causes and fixes

Field names changed in a platform update
GA4 expects transaction_id, value, currency and items under ecommerce. If your platform renamed fields, map them in GTM or update the push.
Value sent as a formatted string
Values like "€49,99" or "1,299.00" aren't numbers. Send a plain number with a dot decimal separator.
Currency missing
Without currency, GA4 can't convert the value reliably. Send an ISO 4217 code such as USD, EUR or GBP with every purchase.
The purchase is pushed twice
Common in single-page checkouts and when both a theme and an app push purchase. Push once per order, or guard the push with a flag keyed to the transaction ID.
Previous ecommerce object not cleared
Google recommends pushing ecommerce: null before each ecommerce event so values from a previous event don't merge into the next one.

Frequently asked questions

How do I copy my dataLayer?
Open the confirmation page, open the browser console, run copy(JSON.stringify(window.dataLayer)) and paste the result here after removing emails, names and addresses.
Is my data sent to Google or stored?
No. Validation happens on the structure you paste, nothing is forwarded to any analytics or ad platform, and findings expire after 7 days.
Does it support Universal Analytics ecommerce?
It recognises common legacy field names such as transactionId, but GA4's schema is the reference.
Is a zero-value purchase always wrong?
Not always: free orders exist. But a zero value on every purchase usually means the value variable is broken.
What should I check next?
Run the Checkout Purchase Event Checker on the live confirmation page, and the Shopify vs GA4 Revenue tool to compare totals over a full period.

Make the payload as trustworthy as the order.

Clarvivo reconciles measured ecommerce events with payment truth so implementation errors surface before they shape decisions.

Connect ecommerce tracking to revenue

What this tool reads, and what it keeps