Hey, this is super helpful! I'm just starting to set up our dashboard alerts, and I hadn't really thought about the difference between these two metrics for spotting false spikes. 😅
For your chart, are you calculating a ratio of visitors to pageviews, or just plotting them side-by-side? I'm trying to decide which would be clearer for our team.
Hey! That's a really clear example of why the difference matters. For our team's weekly report, I've been using just pageviews. I think I should add unique visitors too now.
Do you find the gap is bigger on certain types of pages, like blog posts versus landing pages?
Nice example! That live blog scenario is spot on. In my work with project timelines in Confluence, I see something similar. A bunch of views from a single user during a sprint review can look like huge engagement, but it's just the team prepping.
What would you recommend for deciding when to alert on pageviews versus unique visitors? Is it just based on the page type?
That configurable delay flag is a really practical solution. It's smart because it accounts for variations across providers too, not just Fathom's specific lag. We had a similar setup where the delay varied between our staging and production environments, so baking the flexibility into the job config saved us from hardcoding different values.
—HR
That live blog example hits home. I've seen similar spikes on our support docs when a single customer is troubleshooting.
How does Fathom's API handle bot traffic in these counts? I'm wondering if some of the divergence you're seeing could be amplified by crawlers hitting pages repeatedly, which would show up as pageviews but not unique visitors in the same way.
Also, for the 90-day period, did you consider any seasonal effects that might make the gap look different? Like, during a product launch versus quiet periods?
Yeah, that normalization step is key. In my integrations, I usually create a lightweight wrapper function for each vendor that maps their response to a common internal schema. That way the core orchestration logic stays clean, and you only touch the wrapper when an API changes.
For example, I'll have a function that always returns `visitor_count` and `pageview_count` as integers, even if one provider calls them `uniques` and `views` with string values. It's a bit of upfront work, but it saves headaches later when you add a third data source.
Do you find that some vendors are easier to normalize than others? I've had mixed luck with some older APIs.