Catch the Mistakes That Make GA4 Drop Events or Lose Revenue
Paste a list of event names, a dataLayer.push or a gtag event call and this free GA4 event checker tests them against Google’s rules: name length and characters, reserved names, recommended events, required parameters, currency, value and the items array. Each event is marked green, yellow or red with the exact fix.
Paste event names or code. Results update as you type.
Your code is checked in your browser. It is not run and not sent anywhere.
The rules that decide whether GA4 accepts, drops or misreads an event.
40 characters at most, starting with a letter, using only letters, numbers and underscores.
Names and prefixes GA4 keeps for itself, such as session_start, first_visit, ga_ and firebase_.
Spots near-misses such as addToCart or order_complete and suggests the recommended name.
For example transaction_id, value, currency and items on purchase.
A value without a currency, a value sent as text, or a currency that is not a three-letter code.
Missing item_id and item_name, text prices, more than 200 items and old Universal Analytics field names.
More than 25 parameters, names over 40 characters and values over 100.
Warns when you send an event GA4 already collects, which can double count.
Three steps. Your code never leaves your browser.
A list of names from your tracking plan, or the dataLayer or gtag code from your site.
It pulls out each event and its parameters without running the code.
Every event shows what is wrong, why it matters and the corrected name or parameter.
Google Analytics 4 does not show an error when an event breaks its rules. It quietly drops the event, cuts the value or leaves revenue empty. You only notice weeks later when a report looks wrong. This GA4 event checker applies Google’s published rules before the event goes live.
Purchase and purchase are two events. Use lowercase.session_start, or the prefixes google_, ga_ and firebase_.Google publishes a list of recommended events such as purchase, add_to_cart, generate_lead and sign_up. Using the exact name and parameters fills GA4’s ecommerce and lead reports automatically and makes the events usable in Google Ads. A custom name such as order_complete works as an event but fills none of those reports.
A purchase needs transaction_id, value, currency and an items array. Three mistakes cause most missing revenue: value sent without currency, value sent as text, and items that still use the old Universal Analytics names id and name instead of item_id and item_name.
It checks what you paste. It cannot see whether the event really fires on your site, whether the values are correct, or whether custom parameters are registered as custom dimensions in GA4. If your code uses variables instead of fixed values, only the names can be checked. Confirm live behaviour in GA4 DebugView.
For standard GA4 properties, from Google’s documentation.
| Item | Limit | What happens if you exceed it |
|---|---|---|
| Event name | 40 characters | The event is not collected |
| Parameters per event | 25 | Extra parameters are dropped |
| Parameter name | 40 characters | The parameter is dropped |
| Parameter value | 100 characters | The value is cut short |
| Items per event | 200 | Extra items are dropped |
| Custom item parameters | 27 | Extra ones are dropped |
| Event-scoped custom dimensions | 50 per property | You cannot register more |
| User-scoped custom dimensions | 25 per property | You cannot register more |
| Custom metrics | 50 per property | You cannot register more |
Validate a dataLayer push before you ship it.
Review a tracking plan against GA4’s rules.
Audit a client’s event names in seconds.
Check event names before asking a developer to build them.
33 free tools for tracking, analytics, advertising and SEO. No login needed.
Build ready-to-paste dataLayer code for GA4 ecommerce and lead events.
Open the dataLayer generator →Turn your email, phone and address variables into correctly formatted, hashed values for each ad platform.
Open the hashing generator →Enter a product page to get Product schema and view_item and add_to_cart JavaScript built for that page.
Open the product script generator →Get GTM listener code for HubSpot, GoHighLevel, iframe and native forms that pushes a clean dataLayer event.
Open the listener generator →Hear from our clients. Loved by 600+ businesses worldwide.
“I had an excellent experience working with MD on my Google Ads account. Everything was set up perfectly and worked smoothly without any issues or troubleshooting needed. His expertise and attention to detail made the whole process effortless.”
“I worked with Niamul on multiple Google Analytics projects and was impressed by his expertise and precision. He has a strong grasp of tracking, reporting, and optimization, always ensuring accurate insights. He is proactive, reliable, and easy to collaborate with.”
“MD Niamul is extremely skilled. He fixed my Shopify, Google Analytics, and Google Ads conversion tracking perfectly. Everything works exactly as it should now, and he even added an extra data layer, which was very helpful. Outstanding service, fast delivery, and highly recommended.”
“Reliable, knowledgeable, and truly trustworthy. I’ve been working with Niamul for over a year, and he consistently delivers exceptional results across all analytics tasks. His expertise, communication, and commitment make him my go-to specialist for tracking, measurement, and data accuracy.”
“MD N delivered flawless Meta Pixel, CAPI, and server-side tracking. He understood our goals quickly, explained everything clearly, and ensured full transparency. Communication was smooth, updates were consistent, and the results improved our data accuracy and ad performance.”
Five-star reviews from businesses and agencies in the USA, Canada, UK and Australia.
Read All ReviewsYes. It runs in your browser with no login, and nothing you paste is sent anywhere.
A list of event names, one per line, or code: a dataLayer.push({...}) call, a gtag('event', ...) call, or a JSON object with an event name and parameters.
No. It reads the text and pulls out event names and parameters. If the code contains variables or functions it cannot read, it checks the names only and tells you.
Up to 40 characters, starting with a letter, using only letters, numbers and underscores. Names are case-sensitive, and some names and prefixes are reserved.
The most common causes are a purchase event with a value but no currency, a value sent as text, or a wrong event name such as Purchase or order_complete instead of purchase.
Recommended events use names and parameters defined by Google and fill GA4’s built-in reports. Custom events are any other names you choose. Both are collected.
GA4 collects those automatically. Sending them again from your own code can double count.
Up to 25 per event, with names up to 40 characters and text values up to 100 characters, on standard properties.
It means the events follow GA4’s rules. You still need to confirm they fire at the right moment with the right values, using GTM preview mode and GA4 DebugView.
I am MD Niamul, a conversion tracking and web analytics specialist and an official Stape partner. I build tracking plans, data layers and GA4 setups, then test every event so your reports and ad platforms get accurate data.