Google Analytics Is Overkill for Most Projects
Plausible is a lightweight, privacy-friendly analytics tool. Self-hosted version is free and includes full API access.
API Access
import requests
SITE_ID = "yourdomain.com"
API_KEY = "your_plausible_api_key"
BASE = "https://plausible.io/api/v1" # or your self-hosted URL
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
Get Current Visitors
def realtime_visitors():
r = requests.get(f"{BASE}/stats/realtime/visitors",
headers=HEADERS, params={"site_id": SITE_ID})
return r.json()
print(f"Current visitors: {realtime_visitors()}")
Get Aggregate Stats
def get_stats(period="30d", metrics="visitors,pageviews,bounce_rate,visit_duration"):
r = requests.get(f"{BASE}/stats/aggregate", headers=HEADERS,
params={"site_id": SITE_ID, "period": period, "metrics": metrics})
return r.json()["results"]
stats = get_stats()
print(f"Visitors (30d): {stats[visitors][value]}")
print(f"Pageviews: {stats[pageviews][value]}")
print(f"Bounce rate: {stats[bounce_rate][value]}%")
Get Top Pages
def top_pages(period="30d", limit=10):
r = requests.get(f"{BASE}/stats/breakdown", headers=HEADERS,
params={"site_id": SITE_ID, "period": period,
"property": "event:page", "limit": limit,
"metrics": "visitors,pageviews"})
return r.json()["results"]
for page in top_pages():
print(f"{page[pageviews]:>5} views | {page[page]}")
Top Traffic Sources
def top_sources(period="30d"):
r = requests.get(f"{BASE}/stats/breakdown", headers=HEADERS,
params={"site_id": SITE_ID, "period": period,
"property": "visit:source", "metrics": "visitors"})
return r.json()["results"]
for s in top_sources():
print(f"{s[visitors]:>5} visitors from {s[source]}")
Why Not Google Analytics
| Feature | Plausible | Google Analytics |
|---|---|---|
| Privacy | No cookies | Tracks everything |
| GDPR | Compliant (no banner) | Needs consent |
| Script size | 1KB | 45KB |
| Page speed impact | None | Measurable |
| Self-hostable | Yes | No |
| API | Simple REST | Complex |
| Free | Self-hosted | Yes |
More from me: 10 Dev Tools I Use Daily | 77 Scrapers on a Schedule | 150+ Free APIs
Top comments (0)