Product managers · problem and fix
Product analytics missing events: why they disappear and how to find them on Mac
Product analytics missing events usually means the event is late, hidden, blocked, or rejected before it reaches your tool. Often the code is fine, and the data sits where you are not looking. This page shows how to sort each case on your Mac, what a gap costs your team, and which checks need no new software.
The short answer
- Check the clock first. Amplitude says new items can take about 24 hours to appear. A third-party guide says GA4 can take 24 to 48 hours.
- Then check hidden views. Mixpanel hides events that have not fired in 30 days from report dropdowns, but the raw data keeps them.
- Use a live view to see if the event leaves the app: GA4 DebugView, Mixpanel debug, or Safari Web Inspector on your Mac.
- Bring engineering in once you know the call leaves the app and gets dropped, rejected, or blocked.
- Keep a short event spec in Notion or Google Sheets so the next gap is easy to spot.
What missing analytics events costs you
A bad bet on the roadmap
If a feature looks like it failed, you may cut it. If it looks like it succeeded, you may build more on top of it. A missing event can push a decision in either direction. Teams rarely trace the decision back to tracking. Say the gap out loud before you act on the chart.
Experiments that read wrong
A test with missing exposure or goal events can show a winner that did not win. It can also hide one that did. Check that both the exposure and the goal events fire in every variant before you call a result. If one arm loses more events than the other, the comparison is unfair.
Hours lost in the wrong place
Teams often spend the first day arguing about the number. Engineers then chase code that works, while the real gap sits in the reporting setup. A short check of the live view separates the two problems before anyone opens a ticket.
Trust with engineering
Each vague report gets sent back with questions. Engineers learn that analytics bugs take long to pin down, so they reply later. A clear note with the event name, the state, and the evidence protects both sides of the work.
Silent gaps on mobile
Mobile data can arrive late or in batches. A gap on one day can look like a drop on the next. If you only check the web view, you may miss the problem for longer. Compare each platform separately when you review a release.
Why it happens
The SDK batches or drops the event
Mobile SDKs queue events before they send them. Amplitude's mobile SDKs batch by default at 30 seconds or 30 events. Mixpanel's iOS SDK flushes when the app goes to the background or every 60 seconds. If the user closes the app before the next flush, the queued events may not go out in time. Mixpanel recommends calling flush before key moments such as sign-up.
The schema rejects unplanned events
A tracking plan can block events you did not plan for. Amplitude says that if the tracking plan rejects unplanned events, it does not store the event or its properties. A typo in a new event name is one way this happens. Nothing in your app warns you when it does.
Ad blockers and consent choices
Browsers and users can stop analytics calls before they leave the page. Analytics Mania lists ad blockers and consent mode with analytics storage denied as causes of missing GA4 events. Google's DebugView help adds that events stay hidden in debug mode when the user has not consented to Analytics cookies.
An instrumentation limit or a wrong host
Amplitude says over-limit event types and properties cannot be queried. New events can run into its instrumentation limit. Mixpanel says events sent to the wrong data-residency host are not ingested. Both look like a silent gap from the report side, even though the app sent something.
The report hides the event
Some tools hide events from menus without deleting them. Mixpanel can hide events in Lexicon. Its report dropdowns hide events that have not fired in the last 30 days. Event properties unused for 28 days are hidden the same way. The data is still there, but the dropdown does not show it.
Renamed rules and long names
Analytics Mania lists Modify event rules and event names over 40 characters as causes of missing GA4 events. A rule that renames an event can make the name you expect hard to find. Check the rule list before you change the code, so you do not fix the wrong thing.
Filters and processing delay
Active Internal or Developer traffic filters in GA4 can remove test traffic from reports. Data can also take 24 to 48 hours to appear, according to a third-party guide. These two causes look the same on the day you ship. Check the filter status before you assume the event is gone.
How to fix it
These work with or without any app.
Check the live view before anything else
Turn on debug mode, then trigger the action on a test account. In GA4, debug_mode must be set to true for the test session, because Google says setting it to false does not turn debug mode off. Watch DebugView's Seconds stream, which shows the last 60 seconds. If the event appears there, the app sends it.
Wait out the normal delay
Give new events time before you decide they are gone. Amplitude says new items can take about 24 hours to appear. A third-party guide says 24 to 48 hours is normal for GA4. Write down the time you triggered the event, so you can compare it with the report later.
Trace the request in Safari
Turn on Show Develop menu in Safari's Advanced settings. Open Develop > Show Web Inspector, or press ⌥⌘I. Open the Network tab, trigger the action, and filter by the vendor name. A request that never appears means the page did not send it. Apple's guide also lists a JavaScript Console in the same Develop menu.
Inspect phone or desktop traffic with Proxyman
Proxyman is a native macOS app that captures and decrypts HTTP(S) requests. Its site says it is free to start, with no credit card needed. Use it on your own test devices to see whether a mobile event leaves the phone. Read its setup steps before you turn on HTTPS decryption, since that needs extra setup.
Use Mixpanel's own recovery steps
Mixpanel's debugging guide covers Lexicon and the event dropdowns. Before you assume an event is gone, fire it once. Mixpanel says firing one instance, or typing the exact name in the dropdown search, brings a hidden event back. Then check Lexicon for a hidden status.
Ask for a flush before key moments
Mixpanel recommends calling flush manually before key moments such as sign-up or app shutdown. Ask engineering to add that call to the sign-up path and the close path. Then compare the mobile count again after one test session on a real device.
Check consent and traffic filters
Look at your consent banner setting and the GA4 traffic filters. If consent is denied, DebugView hides events for that user. If an Internal or Developer filter is active, your test traffic can vanish from reports. Change the filter only if your team agrees.
Trim unused event types on purpose
If you hit an instrumentation limit, delete the event types you no longer use. Amplitude says hidden or blocked items still count toward the limit, but deleted items do not. Hiding an event does not free room. Keep a list of what you delete and why.
Keep names short and consistent
Long event names can cause misses in GA4. Analytics Mania lists names over 40 characters as one cause. Use a simple pattern such as object_action, and write it in a shared spec. Check each renamed event in the live view before you trust the report.
Test in a clean browser and on a phone
Ad blockers and privacy extensions can stop calls before they leave the page. Test once in a Safari window with content blockers turned off, then compare with your normal setup. Repeat the test on a phone for any event that fires in the app. A gap on one device only points to that device.
What a missing event looks like
A missing event shows up as a flat line where you expected a bump. A feature launches, people click the button, and the chart stays at zero. Or the web numbers look normal while your iOS app sends nothing. You usually notice when someone asks why the funnel dropped.
Missing events hurt in a quiet way. Nobody gets an error. The number is just lower than it should be, and people believe it. That is why the gap can run for weeks before anyone checks. Before you blame the code, sort the problem into one bucket: late, hidden, or never sent.

How to tell late, hidden, and never sent events apart
Start with the clock. Analytics tools take time to process data. Amplitude says new items can take about 24 hours to appear. A third-party guide, Analytics Mania, says waiting 24 to 48 hours for GA4 events is normal. If your event is newer than that window, wait before you dig.
- Late: the event was sent, and the tool has not processed it yet.
- Hidden: the event arrives, but the report, dropdown, or filter does not show it.
- Never sent: the app or browser never makes the call, or something blocks the call.
Each state has its own first check. Late needs patience and a time check. Hidden needs the raw data or the live debug view. Never sent needs a look at the network request while you trigger the action on a test device.
A worked example: a signup event that stops at a release
Say your team ships a new signup flow on a Tuesday. By Wednesday the dashboard shows signups near zero. The account table in your database keeps growing. That gap is your clue. The app creates accounts, so the app works. The event is the part that broke.
Next, open the live view and trigger signup on a test account. In GA4 that is DebugView. In Mixpanel, use the debug view in your test session. If the event shows up live but not in the report, you have a hidden or delayed problem. If it never shows up, the app is not sending it.
In a case like this, the release may have renamed the event. An event called signup_complete might have become sign_up_complete. Your saved report still filters on the old name, so it shows zero. That is a reporting fix, but you only know it after you see the new name in the live view.
Why the same gap looks different in each tool
Each tool hides gaps in a different place. The table below shows where to look first. Use it as a starting map, then check the vendor's docs for your plan and setup.
| Tool | Look here first | A blank view often means |
|---|---|---|
| Google Analytics 4 | DebugView, with debug_mode set to true | Consent denied, an active internal filter, or a name over 40 characters |
| Mixpanel | Lexicon and the debug view | Event hidden in Lexicon, no fire in 30 days, or a wrong data-residency host |
| Amplitude | Event list and the tracking plan | The schema rejected the event, or the instrumentation limit was reached |
| Mobile SDK | Flush settings and a test device | Events still queued when the app went to the background or closed |
What a silent gap costs your team
Start with time. A 2022 survey from Monte Carlo found that data professionals spend 40% of their time evaluating or checking data quality. Monte Carlo commissioned the survey, and it covers data problems in general, not only events. Treat it as a sign of the problem, not a measure of your team.
40%
of data professionals' time goes to evaluating or checking data quality, per a 2022 vendor survey
Data Engineers Spend Two Days Per Week Firefighting Bad Data75%
of survey respondents take four or more hours to detect a data quality incident
Data Engineers Spend Two Days Per Week Firefighting Bad Data3%
of companies' data meets basic quality standards, per a 2017 Harvard Business Review headline
Only 3% of Companies' Data Meets Basic Quality Standards30 to 50%
of users may lose events with client-side tracking, per Mixpanel's debugging guide
Debugging (Mixpanel docs)Treat the wider figures as warnings, not measurements of your app. None of these surveys measured missing analytics events directly. Your own live check tells you more than any industry average does.
Mistakes that waste the most time
A few habits cause most of the detours. Teams change a report before they check the code. They trust a dropdown that hides older events. They test once on the web and call the job done. Avoid these mistakes early.
- Renaming a report filter before you confirm what the app sends. You hide the real gap behind a new label.
- Trusting a dropdown without checking Lexicon or the raw data. Mixpanel hides events that have not fired in the last 30 days.
- Testing in a browser with ad blockers or denied consent. Calls can stop before they leave the page.
- Testing only on the web when the gap is on iOS or Android. Mobile SDKs batch events and send them later.
- Deleting event types to free room without a list. Amplitude says deleted items stop counting toward its limit, but hidden or blocked ones still count.
- Sending engineering a message that says events are broken. Name the event, the state, and the test you ran.
Mac tools to see what your app sends
You can see the request without buying anything. Safari has a built-in inspector. Go to Safari > Preferences, click Advanced, and tick Show Develop menu in menu bar. Apple's guide uses that path. Newer macOS versions may label the window Settings, so look for the Advanced tab.
Then go to Develop > Show Web Inspector, or press ⌥⌘I. Open the Network tab. Trigger the action, then type the vendor name in the filter box, such as mixpanel, collect, or amplitude. If no request appears, the page never sent the call. If a request appears but fails, check its status and response.
For phone apps or desktop apps, Proxyman is a native macOS app that captures and decrypts HTTP(S) requests. Its site says it is free to start, with no credit card needed. Decrypting HTTPS needs extra setup, so read its guide before you start. Test only on devices and traffic you are allowed to inspect.
Edge cases that catch experienced teams
Consent choices can hide events for some users. Google's DebugView help says events stay hidden in debug mode when consent mode is set and the user has not agreed to Analytics cookies. Your numbers can drop after a banner change, even though the code did not change.
Mobile apps add a delay of their own. Mixpanel's iOS SDK flushes queued events when the app goes to the background or every 60 seconds. Its docs recommend a manual flush before key moments such as sign-up or app shutdown. Ask engineering to confirm that call exists on your sign-up path.
Old events can miss the window too. Mixpanel says events older than 5 days, sent to the /track endpoint, are not ingested. A phone that stays offline for a week may send its queue too late to count. Check the event timestamps when you see a sudden drop after a long offline period.
Names can cause misses too. Analytics Mania lists event names over 40 characters as one cause of missing GA4 events. Keep names short and consistent. A pattern such as object_action is easy to scan in a shared spec, and easy to search in a report.
When to bring in engineering
Bring engineering in when you can show two things. The event fires in the live view or the network request, and the report still shows a gap. Then the question is about the SDK, the schema, the project setup, or a rule. Those are engineering areas, and they can act on them.
Make the note short. Include the event name, the device and app version, the test time, the state you think it is in, and a screenshot of the live view. Leave out customer data. A note like that is easier to act on than a message that says events are broken.
A short weekly event check
Once a week, run a short check on the events that drive your main decisions. You do not need a full audit. Keep the routine small enough that you do it every week, even in a busy release.

- Pick the events that drive your main decision for the month.
- Fire each one on a test account and watch the live view.
- Compare counts with the database or payment system. A gap that keeps growing is a signal.
- Check Lexicon for any event that has gone quiet for 30 days before you assume it is gone.
- Write the result in one shared note so the next check starts from the last one.
Privacy and regulated data
Events can carry personal data. If your product handles health, money, or legal records, follow your employer's rules on that data. Do not paste raw customer rows into a chat tool to debug them. Use event names, counts, and timestamps instead. Those are usually enough to find the gap.
What to do next

Pick one missing event this week. Run the clock check, then the live view, then the network trace. Write down which state it falls into. That one note will teach you more about your tracking than a long audit.
Then set a reminder for the day after your next release. Ask Lazur to set it, or add it yourself in Apple Reminders. The check takes a few minutes when the routine stays short.
Faster with Lazur
Where Lazur helps with missing analytics events
Hold ⌥ ⌘ and say what you want. Lazur sees your Notion window. Lazur draws a circle and a label around the button or menu you need.
- 1
Hold ⌥⌘ and talk
- 2
Lazur draws a circle and a label around the button or menu you need.
- 3
You stay in Notion. Nothing to copy into a chat window.
More things to say in Notion
- “Where is DebugView in my GA4 property?”
- “What does Hidden mean on this Mixpanel Lexicon row?”
- “Walk me through turning on the Develop menu in Safari.”
- “Hold fn and dictate the bug note into Slack.”
- “Draft a note to engineering about the signup event.”
- “Research how consent mode affects GA4 event data.”
Free for 3 days, then $18/month. Download for Mac
You say“Where is the Develop menu?”
Lazur · points at itYou see the exact menu to open, and you still open it yourself.
What product managers say to Lazur for this
Each one is a single hold of ⌥ ⌘.
“Where is DebugView in my GA4 property?”
Lazur circles the DebugView link in the menu and labels it. You still click it yourself.
Points at it
“What does Hidden mean on this Mixpanel Lexicon row?”
Lazur explains the status out loud and what it changes for your reports.
Explains what's on screen
“Walk me through turning on the Develop menu in Safari.”
Lazur guides you one click at a time and waits for each click before it goes on.
Walks you through it
“Hold fn and dictate the bug note into Slack.”
Your words land at the cursor as clean text. Add vendor terms to your personal dictionary so they are spelled right.
Types what you say
“Draft a note to engineering about the signup event.”
Lazur drafts the note with the event name, device, and test time. You edit it before you send it.
Drafts it
“Research how consent mode affects GA4 event data.”
Lazur runs the search in its own Chrome tabs and returns a summary and report. Check the sources it lists.
Researches in the background
“Remind me Friday to check the signup event.”
Lazur adds the reminder to Apple Reminders for you to act on.
Handles the small stuff
A plan you can start this week
- Day 1
Name the event and its state
Write the event name, the screen where it fires, and the device. Note when it was last seen. Decide whether it looks late, hidden, or never sent, based on the clock so far.
- Day 2
Run the live view
Trigger the action on a test account with debug mode on. In GA4 use DebugView, and watch the Seconds stream for the last 60 seconds. In Mixpanel, use the debug view in your test session.
- Day 3
Trace the network call
Turn on Show Develop menu in Safari's Advanced settings, then open Develop > Show Web Inspector with ⌥⌘I. Filter the Network tab by the vendor name and repeat the action on the page.
- Day 4
Check consent and filters
Look at the consent banner setting and any internal traffic filters. A denied consent or an active filter can hide an event even when the app fires it correctly.
- Day 5
Write the finding and ask
Post one short note in Slack or Linear with the state, the evidence, and the next check. Ask engineering only about the part you could not see from outside the app.
Questions people ask
Why are my product analytics events missing even though the code is live?
Live code can still send nothing. A consent banner can block calls, an SDK may not flush, or a tracking plan may reject the event. Check the live view first. If the event shows there, the gap is in reporting. If it does not, the app is not sending it.
How long should I wait before I decide an event is missing?
Amplitude says new items can take about 24 hours to appear. A third-party guide says 24 to 48 hours is normal for GA4 events. Wait that long, then check the live view and the raw data before you raise the alarm.
Does a missing event in one tool mean it is missing everywhere?
No. Each tool has its own rules. Mixpanel can hide an event from dropdowns while keeping it in raw data. Amplitude can reject an event that GA4 accepts. Check each tool on its own.
Can I see the event on my Mac without installing anything?
Yes, for web apps. Turn on Safari's Develop menu, open Show Web Inspector with ⌥⌘I, and watch the Network tab. Phone apps need extra setup, and Proxyman is one option to read about first.
Should I delete events that never show up?
Not yet. Confirm with your team that the event is unused. Amplitude says deleted items stop counting toward its limit, so deletion has a real effect. Write down what you removed and why.
Why does GA4 show my event under a different name?
A Modify event rule can rename it. Analytics Mania also lists event names over 40 characters as a cause of missing events. Check your rules, shorten long names, and confirm the new name in DebugView.
Does Lazur check my analytics account for me?
No. Lazur sees your screen only while you hold the shortcut. It does not click buttons or operate other apps for you. It can point at the right menu, explain a status out loud, and walk you through the steps one click at a time.
Is this only a problem for product managers?
No. Engineers, designers, and marketers see it too. Product managers often own the question of whether the number is right, so the first check often lands on your desk.
Sources
- Missing or unexpected data · Amplitude · checked 2026-11-08
- Debugging · Mixpanel · checked 2026-11-08
- Google Analytics Help: DebugView and debug mode · Google · checked 2026-11-08
- [Solved] Google Analytics 4 Events Not Showing Up in Reports? · Analytics Mania · checked 2026-11-08
- Data Engineers Spend Two Days Per Week Firefighting Bad Data · Monte Carlo · checked 2026-11-08
- Only 3% of Companies' Data Meets Basic Quality Standards · Harvard Business Review · checked 2026-11-08
- Safari Developer Help: Develop menu · Apple · checked 2026-11-08
- Proxyman: HTTP debugging proxy for macOS · Proxyman · checked 2026-11-08
Fix missing analytics events with Lazur, free for 3 days
Hold a key and ask. Lazur sees your screen, points at the button and talks you through it, in any Mac app. No credit card.