Feature Engagement — Web Analytics
Connect the analytics you already run — Google Analytics 4 or Cloudflare Web Analytics — and Fishladder joins page views to what you shipped. Map a roadmap project to the pages it lives on, and daily engagement appears on the project itself, with the target date marked, so “did shipping this move usage?” is answered where the release lives.
Fishladder never collects analytics itself: no script on your site, no visitor data. It pulls daily page-level aggregates (views and visitors) from your provider's reporting API, read-only, once a night.
How it works
Your analytics provider already knows what happened on your site. Fishladder knows what shipped — projects, target dates, and the feedback visitors left. Feature Engagement is the join between the two, and it runs in three parts:
- A mapping says which pages belong to which project. Each roadmap project can claim a set of URL paths — exact pages like
/pricing or whole sections like /app/reports*. This mapping is the piece your analytics tool doesn't have: it turns anonymous page paths into “the thing we shipped in March.” - A nightly pull fetches numbers for exactly those pages. Once a day Fishladder asks your provider's reporting API for daily views and visitors, filtered server-side to your mapped paths — never the whole site. The request is read-only, uses the credential you connected (stored encrypted, never shown again), and re-fetches the last few days each night so late-arriving provider corrections heal themselves. Connecting also backfills about 90 days so charts aren't empty on day one.
- The numbers land where the work lives. Only small daily totals per page are stored — no sessions, no IPs, no visitor identities, nothing to put in a privacy addendum. The project's drawer charts them with the target date marked, so a release shows its own before-and-after; board cards get a 30-day sparkline at a glance.
Because feedback-widget submissions already record the page they came from, a mapped project ties together what shipped, how much it's used, and what people said about it — the three questions behind “was this worth building?”
Connecting a provider
Go to Settings → Integrations → Web Analytics (admins only):
- Google Analytics 4 — click Connect with Google, approve read-only Analytics access, and pick your property from the dropdown. That's the whole setup. Teams that prefer a credential not tied to a person can instead use the Advanced option: a Google Cloud service account granted Viewer on the property, pasted from its JSON key — properties are still picked from a dropdown. (Note: many Google Workspace organizations block service-account key creation by default; the Connect with Google path avoids that entirely.)
- Cloudflare Web Analytics — click Create a token in Cloudflare (the link pre-selects the one permission needed, Account Analytics : Read), paste the token, and pick your account and site from dropdowns. Cloudflare reports visits rather than unique visitors; charts label the metric accordingly.
Credentials are verified before they are stored, stored encrypted, and never shown again.
Connecting backfills the last 90 days for mapped pages (where the provider retains them), so charts aren't empty on day one.
Mapping a project to its pages
Open a roadmap project and find the Engagement section in its drawer. Add one or more path patterns — an exact path like /pricing, or a prefix pattern like /app/reports* that covers everything underneath. Anyone with write access to the roadmap can edit mappings.
Once a provider is connected and the nightly pull has data, the drawer shows a daily views chart with the project's target date as a marker, and board cards get a small sparkline with the 30-day total.
Good to know
- Only pages matching your patterns are pulled and stored — never the whole site.
- Page paths are a proxy: they work well for pages, sections, docs, and marketing sites, less well for features living inside a single-page view.
- Data refreshes nightly with a few days of lookback, so late-arriving provider numbers correct themselves.
- Feedback collected by the Feedback Widget already carries page URLs — engagement and feedback for the same pages, side by side, is where this is headed next.