We once worked with a client who was convinced their competitor tracking system was functioning perfectly: it ran daily without errors, and data flowed in regularly.
In reality, however, the system was capturing only a single ad variation for each competitor — specifically, the one active at the exact moment the check was performed. Due to ad rotation, there were another 3–4 headline and offer variations that the client hadn't seen in months.
The solution was simple: configure the checks to run regularly using the same parameters (query, region, device) and learn to distinguish between two scenarios — when an ad has actually disappeared versus when the page simply failed to load.
We've provided a detailed breakdown of the situation here: Google Ads Data Scraping.
Has anyone else encountered similar monitoring systems that passed all checks successfully yet still produced incorrect results?
Silent data gaps like this are the worst — everything looks fine in your dashboard, but you're making decisions on half the picture. The headless browser approach is smart; dynamic ad loading through JS is easy to miss with basic scrapers. Would love to hear what your false-negative rate looks like now vs. before the fix. This kind of under-the-hood reliability work is what separates solid data products from ones that erode trust over time.
This is a good example of operational health hiding data-quality failure. “The job ran” only proves the collector executed; it says nothing about how much of the rotating population it observed.
I’d track a discovery curve for each competitor: checks completed, unique variants found, and time since the last new variant. Negative observations also need reason codes—ad absent, page empty, blocked response, parse failure—so “not seen” never silently becomes “disappeared.”
The awkward part is that the true number of variants is unknown. How do you decide that sampling has reached reasonable coverage rather than merely stopped discovering new ads for a while?