For example, the page where you compare Plausible to Google Analytics lists only advantages and doesn't indicate that Plausible could in any way be worse. But based on the description of how Plausible works, I'm fairly certain that people behind VPNs will not be properly counted (everyone with the same user-agent will be counted as if they were the same person). Use of VPNs is fairly widespread, so lack of fingerprinting will actually prevent you from accurately assessing how many visitors a site has.
Depends really on the perspective you look at it from. That post is from the visitor privacy / privacy regulations perspective. If you use GA full on, you will get some advantages such as storing cookies on devices but if you either make GA "privacy friendly" (enable IP anonymization, disable user-ID, disable cookies etc) or ask visitors to consent to being tracked you will get less accurate numbers than our method.
We haven't noticed any issues with VPN usage as still you need people to use the same IP, same user agent and visit the same domain all on the same day to be counted as one with us.
hash(daily_salt + website_domain + ip_address + user_agent)
This generates a random string of letters and numbers that is used to calculate unique visitor numbers for the day. Old salts are deleted to avoid the possibility of linking visitor information from one day to the next.
See full details here: https://plausible.io/data-policy
Not really keen on the use of the IP address. I’ve been behind load balancing proxies and weird mobile networks often enough to know that I can appear from a dozen different IPs in the space of an hour just by browsing the web normally with default settings.
Have you considered requesting a 24 hour private cacheable resource and counting the requests on the server? Or is the browser cache too unreliable?
The site id is included in the hash to prevent cross-site tracking. Otherwise the hash would act almost like a third-party cookie and people could be tracked across different sites.
> Not really keen on the use of the IP address.
Yeah, it's not ideal. We do check the X-Forwarded-For header so as long as the proxies are being good citizens, the client IP is present in that header.
Nice idea.
The problem with Google Analytics is not that they track a user on a single domain, the problem is that users are tracked on a *.google.com domain and Google knows who you are based on your other google sessions and knows everything you do on the internet because every website uses GA. With a self hosted product that wouldn't be the case, so the privacy is given by nature even if you'd track a user across a space of a month or longer.
Now, if only the EU would push more against data decentralization instead of writing cookie policies that result in horrendous user experience on the web...
Google Analytics optionally integrates with both Google Ads and DoubleClick, and both of those integrations do a cookie-match against .google.com or .doubleclick.net cookies. But those integrations are optional and off by default.
Knowing returning visitors from first time visitors is quite important and helps to asssess if viewership, audience and customer base is growing over time.
For startups the "how many unique visitors do you get in a month" may be an important KPI and you're saying your solution cannot answer this question, so another solution will be needed to be deployed.
Unique visitor data's also needed to assess effectiveness of campaigns and run e-commerce operations. There's often campaigns to bring back a user who previously didn't buy (email, ads etc). It's important to measure the effectiveness of these investments separately in web analytics given the campaigns will be different for new and recurring visitors.
There will always be value to be extracted from the invasion of your users' privacy, but you also hit diminishing returns over this increasingly invasive probing. Plausible is aiming for "good enough" whilst respecting people's privacy, and that is a good compromise IMHO.
There is a trade-off. You will never get 100% of the information without all the tracking, but there is information that represents more bang for the privacy buck.
Would you not have a acceptable error increase in your decisions with a bit less information and a lot less privacy invasion?
EDIT> I think more control to the user is better, so instead of canvas fingerprinting, shady cross-site tracking and all, I would rather have a uuid that my browser informed, but that I controlled, so I could be anonymous when I want to and be tracked when I don't care, or when I genuinely agrees it adds value.
I think tech companies (particulalry Google) have conditioned us to expect analytics [1] to be an essential component of all apps and web services. Developers have happily accepted this, rather than questioned it (unless they happen to be the ones being tracked). But actually, analytics may not need to be as detailed (or as intrusive) as many think it needs to be.
Here is a blog post from Whimsical (an online flow chart tool) who decided to remove Google Analytics:
> "We realized that all our tracking stuff had barely marginal value. We were just accumulating data because it might be useful someday. And because everybody else was doing it. Yet 100% of our product decisions over the past year were based on strategy, qualitative feedback and our own needs." (My emphasis)
From: https://whimsical.com/blog/choosing-privacy
[1] Words like 'Analytics', 'Telemetry', 'Web Beacon' etc are examples of the dishonesty of the tech industry in using words to hide their real purpose and soften their impact. All of these words are about tracking online behaviour, but no-one would dare use the clearer, more honest word – tracking – in their app or web copy.
1. privacy of site visitors
2. compliance with privacy regulations
3. useful and actionable data for site owners
it's difficult to track people from visit to visit or from one device to another without breaking the first two (cookies, browser fingerprinting...) so we had to make some decisions.
in general sites that try to get visitor consent to cookies and/or to tracking realise that majority of them don't give it, so even the data that may not be as accurate as full on tracking becomes very valuable.
If those are my options I prefer not having to annoy my visitors with consent banners over extended and persistent analytics data. That's why we actually migrated from Google Analytics to Plausible.
By the way: Import of analytics data from Google would be a great feature if anyone from Plausible is still reading here.
That's a pretty interesting technique!
I built a privacy friendly analytics project https://github.com/sheshbabu/freshlytics and I've been wondering how to correctly count unique visitors to a website. I don't store cookies or any PII data at all so by definition, it's hard to distinguish between two different visits - are they from same person or different people?
An alternative approach is used by Simple Analytics - https://docs.simpleanalytics.com/uniques where they use referrer header to derive unique visits. They mention that they don't use IP addresses as they're considered fingerprinting.
But it looks like a hash function (whose salt gets rotated daily) strikes a good balance between fingerprinting while maintaining user privacy. Any downsides to this approach?
i assume that using the referrer header to count uniques has even more downsides as i imagine the number of unique visitors with that method would be much higher than it actually is.
After seeing many open source projects with paid services going for more protective licenses, like the AGPL or the newer eventually open licenses (i.e. Business Source License), I wonder what was your rationale to still pick the MIT.
one of the things we spend a lot of time thinking about is how to make our project sustainable while still being as open as possible in everything we do.
a bit more details in this post "How to pay your rent with your open source project" https://plausible.io/blog/open-source-funding
Since that's the case, doesn't that mean you need a legal basis for processing the data[1], you need a way to allow users to opt out of collection of their data[2], and your clients need to sign data protection agreements[3] with Plausible?
I tried looking for Plausible's point of view on this and how they address the above, but I couldn't find anything.
[0] https://gdpr-info.eu/art-4-gdpr/
[1] https://gdpr-info.eu/art-6-gdpr/
We started developing Plausible early last year, launched our SaaS business and you can now self-host Plausible on your server too! The project is battle-tested running on more than 5,000 sites and we’ve counted 180 million page views in the last three months.
Plausible is a standard Elixir/Phoenix application backed by a PostgreSQL database for general data and a Clickhouse database for stats. On the frontend we use TailwindCSS for styling and React to make the dashboard interactive.
The script is lightweight at 0.7 KB. Cookies are not used and no personal data is collected. There’s no cross-site or cross-device tracking either.
We build everything in the open with a public roadmap so would love to hear your feedback and feature requests. Thank you!