Something Inc.LoginSchedule a free consultation
ANALYTICS

Nobody's dashboard worked on the first of the month

On September 1 a large number of GA4 properties reported zero traffic for the day. The visits happened. The processing did not. It landed on the single worst date in the calendar for a measurement gap, and most teams had no second source to check it against.

ANALYTICSREPORTING

On September 1, a lot of people opened GA4 and saw nothing. Not a small dip. Zero sessions for the day, on properties that were plainly still receiving traffic. Dana DiTomaso flagged it publicly and read it correctly straight away, as a processing problem with the previous day's data rather than a collection problem. Barry Schwartz wrote it up the next morning at Search Engine Land. Google had not acknowledged it, and the Analytics status page said nothing at all.

The data was not lost. It was late. That distinction matters enormously to an engineer and not at all to the person who has to send a monthly report on the second working day of the month. Search Engine Land covered the outage while it was still unresolved, which is roughly when most teams were discovering it for themselves.

SEP 1
the date GA4 properties began showing zero traffic despite sites still receiving visitors
AUG 31
the day whose data was stuck in processing, per the practitioner diagnosis that turned out to be right
SILENT
the state of the Google Analytics status page while accounts were reporting zero
DELAYED
not lost. The distinction that determines whether you wait or rebuild
THE SHORT VERSIONA measurement platform stalling for a day is a nuisance. A measurement platform stalling on the first of the month, with no status page acknowledgement and no second source in the building, is a reporting crisis. The fix is not a better analytics vendor. It is having more than one.

What actually happened on September 1

The visible symptom was uniform: standard reports returning zero for the current day, and in many accounts for the previous day as well. Sites with steady traffic, unchanged tags, and no deployment in the window were showing flat nothing. That uniformity is the tell. When a single property breaks, the cause is almost always local, a container change or a consent configuration or a bad release. When dozens of unrelated properties break in the same hour, the cause is upstream and you should stop touching your own setup immediately.

The correct diagnosis, offered early by DiTomaso, was that the platform was struggling to process the previous day's data rather than failing to collect the current day's. Those two failure modes look identical in the interface and could not be more different in consequence. Collection failures are permanent, because a hit that was never received is never recoverable. Processing failures resolve themselves, and the numbers backfill.

SYMPTOMLIKELY CAUSEIS THE DATA RECOVERABLEFIRST ACTION
Zero across many unrelated properties at oncePlatform-side processing delayYes, it backfillsStop investigating your own setup. Document and wait
Zero on one property only, others fineTag, container, or consent change on that siteNo, uncollected hits are goneCheck recent deploys and tag manager versions immediately
Traffic present but attribution collapsed to directReferrer or parameter handling changePartially. Sessions exist, sources do notCompare against server logs and ad platform data
Realtime works, standard reports do notProcessing pipeline lag, collection is healthyYesUse realtime as proof of collection and reassure stakeholders
Everything zero including realtimeCollection stopped. Usually localNoTreat as an incident. Check the tag on a live page now

Row four is the one worth memorising, because it is the cheapest reassurance available during an incident. If realtime is showing sessions while the standard reports show zero, collection is alive and you are looking at a delay. That single check turns a panicked morning into a documented one, and it takes about fifteen seconds.

What made this particular event awkward was the silence. No status page entry, no acknowledgement, nothing to link to when a stakeholder asked what was happening. The information that existed lived on a practitioner's social post and a trade publication, which is where a surprising amount of the operational truth about these platforms lives now.

Why Google Analytics missing data becomes a business problem so fast

Any other day of the month and this is an inconvenience. September 1 is not any other day.

The first of the month is when the previous month closes. It is when agencies pull client reports, when in-house teams assemble board packs, when performance bonuses get calculated against traffic and conversion targets, and when budget conversations for the next period start. A gap on the first is a gap in the artifact that a lot of people are about to make decisions from, and the deadline does not move because a vendor is having a bad day.

There is a second-order problem underneath it that is worse. Once a report has been sent with a hole in it, the hole is in the record. Somebody screenshots the chart. Somebody pastes the number into a spreadsheet that gets referenced for a year. The backfill arrives two days later and updates the platform, but it does not update the deck, the email, or the memory of the person who saw a scary number on Tuesday. We wrote about the same failure pattern in how visibility volatility should be reported, and the mechanism is identical here: unlabelled data outlives its context.

Every number you send is quoted for longer than it is accurate. Date-stamp accordingly.

The third problem is credibility, and it is the expensive one. A marketing team that cannot explain its own numbers on demand loses standing, and it loses it in exactly the meetings where budget is allocated. Saying the platform was down is true and it sounds like an excuse, unless you can immediately produce a second, independent view of the same period. Then it stops being an excuse and becomes a demonstration of competence.

The three sources of truth you should already have

Redundancy in measurement is not exotic and it is not expensive. Most teams already own two of these three and simply never wired them together.

01Server-side request logs, or a server-side tag endpointYour own infrastructure sees every request, before any client-side script, consent banner, ad blocker or vendor pipeline gets a vote. It is the only source you fully control and the only one that cannot go silent without you knowing. It will not match your analytics platform, and it does not need to. It needs to answer one question during an incident: did traffic happen, roughly at what volume, and to which pages.
02Search Console and the ad platformsGoogle Search Console covers organic impressions and clicks on its own pipeline and lag. The ad platforms report their own sessions and conversions independently. During a platform stall, these keep working, and between them they cover a large share of a typical site's acquisition. They are not a replacement for site analytics. They are proof of life for the channels that matter most in a monthly report.
03A weekly warehoused snapshotExport the handful of metrics your reporting actually uses into a warehouse, a sheet, or anywhere outside the vendor, on a schedule. Sessions, conversions and revenue by channel by day is enough. This is the source that lets you rebuild a monthly report entirely without touching the interface, and it is the one nearly nobody has until the first time they needed it.

The point is not to reconcile these to the decimal. They will never agree, and chasing agreement between measurement systems is a well-known way to burn a quarter of an analyst's year. The point is triangulation. Three sources that broadly agree on direction and magnitude give you a defensible answer when one of them goes dark, and that is the entire job during an incident.

SOURCESURVIVES A PLATFORM-SIDE ANALYTICS STALLCOVERS PAIDCOVERS ORGANICEFFORT TO SET UP
Server logs or server-side endpointYes, fully independentYes, by parameterYes, by referrerMedium. Engineering time
Search ConsoleYes, separate pipelineNoYes, search onlyLow. Already connected
Ad platform reportingYes, separate pipelineYesNoLow. Already connected
Warehoused daily exportYes, if the export already ranYesYesLow to medium. One pipeline
A second client-side analytics tagSometimes. Shares the same blockersPartiallyPartiallyLow, but least useful

The bottom row is there because it is the first thing people suggest and the weakest answer. A second client-side tag shares most of the failure modes of the first: the same consent gate, the same ad blockers, the same browser restrictions. It protects you against one vendor's pipeline stalling and against nothing else. Server-side is where the real independence is, which is why it is the first thing we set up in a reporting and analytics engagement rather than the last.

A protocol for the next time Google Analytics is missing data

Write this down before you need it, because the whole value is in not having to think during the twenty minutes when three people are asking you what happened.

Confirm collection with realtime, then stop touching anythingRealtime showing sessions means the tag is fine and the problem is downstream. Do not roll back a container, do not edit a tag, do not republish anything. More incidents are made worse by well-meant changes during a vendor outage than are caused by the outage itself, and every change you make now is a variable you have to unpick later.
Check whether it is you or everybodyOne property versus many is the single most informative signal available. Check a second unrelated property if you have access to one. Check whether practitioners are reporting the same symptom publicly. Correlated symptoms across unrelated sites means upstream, and upstream means wait.
Pull the backup view immediately, not after the escalationServer logs or the warehouse export, for the affected dates, in the same shape as your normal report. Doing this in the first hour means you send the monthly report on time with a footnote. Doing it after somebody senior has already seen a zero means you spend the next week explaining rather than reporting.
Annotate the date in the platform and in the deckA dated annotation on the chart and one line in the report: what happened, which dates are affected, which source the figures came from, and when the platform data will be re-checked. This is the artifact that stops the number being requoted out of context in November.
Re-check and restate on a named daySet a date to compare the backfilled platform numbers against what you reported, and restate if the difference is material. Say in advance what material means, in a threshold you commit to before you know the answer. Teams that restate on a schedule build trust. Teams that quietly let the numbers change do not.

Notice how little of that is technical. Four of the five steps are communication and record-keeping, because that is where the actual damage happens. The engineering part of a processing delay resolves itself without you. The reputational part does not.

It is the same discipline we argued for when an answer engine changed underneath a citation report earlier this week. The failure mode is identical even though the platform is different: a number moved for reasons that had nothing to do with your work, and the only defence is a written protocol and an annotation layer you built before you needed one.

Do this before the next month closes

Three things, and none of them take a week.

Set up one daily export of the metrics your reporting actually uses into somewhere that is not the analytics vendor. Sessions, conversions and revenue by channel by day. If that feels too small to be worth building, that is the point: it is small, and it is the difference between rebuilding a monthly report in an hour and not being able to rebuild it at all.

Then write the incident protocol above into your team's runbook and give it an owner. Five steps, one page. The test of whether it works is whether a person who is not you can execute it while you are on a plane, which is roughly the scenario that produces every bad reporting outcome I have seen.

Last, add a standing footnote line to your monthly reporting template: data source, pull date, and known gaps. Most months it reads as boilerplate. The month it matters, it is the difference between a team that had an outage and a team that looks like it does not know its own numbers. That distinction compounds across a year of meetings, and it is worth more than another dashboard. If you want the outside read on where your measurement has single points of failure, that mapping is part of the first phase of any SEO engagement we start, and it usually turns up two or three gaps the team already suspected and had never written down.

See where you are cited today

A free snapshot audit of your rankings and AI citations before we ever talk.

JB
Josh BernsteinMANAGING PARTNER, SOMETHING INC.

Josh leads work at the intersection of SEO and generative engines at Something Inc., helping B2B brands get ranked and cited across every major AI engine.

Free consultation

Let us be the last SEO agency you ever work with

A 30 minute call and a free audit of your SEO and GEO position. You keep the findings either way.