Read funnels, paths, retention, and experiments from your product, then get the next smallest growth action.
Data & analysis
Analytics
Deploy privacy-first analytics with correct API patterns, rate limits, and GDPR compliance.
What it does
**Umami API timestamps**: Use milliseconds, not seconds. in JS, in Python.
The skill document
Critical Implementation Gotchas
Umami API timestamps: Use milliseconds, not seconds. Date.now() in JS, int(time.time() * 1000) in Python.
Plausible API v2: Requires site_id parameter, NOT domain name. Get site_id from dashboard URL first.
PostHog events: Properties must be JSON serializable. Never pass DOM elements or functions.
Rate limits: Umami 600/hour, Plausible 600/hour, PostHog 1000/minute. Implement exponential backoff on 429.
Environment-Specific Setup
Development: ALWAYS use separate project/site for local testing. Production data pollution is irreversible.
Tracking domains: Never hardcode. Use env vars to switch between localhost and production.
Bot filtering: Enable in settings. Privacy tools have weaker bot detection than Google Analytics.
GDPR Compliance Gotchas
EU visitors need explicit consent even for privacy-first tools. Check IP geolocation before tracking.
Data retention: Set automatic deletion - Umami in Settings > Data, Plausible 30 days max, PostHog in project settings.
Cookie-free warning: Umami/Plausible don't use cookies but still need consent for EU visitors if collecting identifiers.
Runtime Safety
Verify script loads before sending events. Check for umami, plausible, or posthog globals first.
Never track PII (email, names, IP) in custom events. Violates privacy principles.
Batch PostHog events via /batch endpoint. Umami/Plausible require individual requests.
Authentication Patterns
Store API keys in environment variables only. Never hardcode.
Umami: Requires website ID + API key combination.
Plausible: Uses Bearer token authentication.
PostHog: Uses project-specific API key.
Related skills
Query Google Ads campaigns, keywords, and metrics via GAQL with managed OAuth.
Publish a web app via a curl-based JSON-RPC API and get a hosted URL.
Get a structured SERP brief with intent, difficulty, and feature opportunities for any target keyword.
Read user-consented Fulcra context data — biometrics, sleep, activity, calendar, location — via the CLI or hosted MCP server.
Manage Alibaba Cloud DataAnalysisGBI via OpenAPI/SDK. Use whenever the user needs DataAnalysisGBI resource lifecycle operations, configuration changes, statu...
More from Iván
Browse all skillsRun Git operations — commits, branches, merges, rebases, conflict resolution, and recovery — with safety rules enforced.
Create and critique visual artifacts with quantified rules for hierarchy, spacing, type scale, color, and layout.
Debug CSS mechanics and write component stylesheets grounded in named mechanisms, not trial-and-error.
Plans and runs self-directed learning as a system: exit test, spaced review, deliberate practice, and transfer proof.
Get Azure architecture, debugging, security, and cost reviews grounded in a live inventory of your subscription.
Diagnoses Java and JVM issues from exception messages to container OOM-kills, and writes Java code matching the configured JDK.