Flowcourier.Umbraco.Analytics.Core
17.5.0-alpha.2
dotnet add package Flowcourier.Umbraco.Analytics.Core --version 17.5.0-alpha.2
NuGet\Install-Package Flowcourier.Umbraco.Analytics.Core -Version 17.5.0-alpha.2
<PackageReference Include="Flowcourier.Umbraco.Analytics.Core" Version="17.5.0-alpha.2" />
<PackageVersion Include="Flowcourier.Umbraco.Analytics.Core" Version="17.5.0-alpha.2" />
<PackageReference Include="Flowcourier.Umbraco.Analytics.Core" />
paket add Flowcourier.Umbraco.Analytics.Core --version 17.5.0-alpha.2
#r "nuget: Flowcourier.Umbraco.Analytics.Core, 17.5.0-alpha.2"
#:package Flowcourier.Umbraco.Analytics.Core@17.5.0-alpha.2
#addin nuget:?package=Flowcourier.Umbraco.Analytics.Core&version=17.5.0-alpha.2&prerelease
#tool nuget:?package=Flowcourier.Umbraco.Analytics.Core&version=17.5.0-alpha.2&prerelease
Flowcourier.Umbraco.Analytics.Core
The shared base of Flowcourier's analytics packages for Umbraco. It adds an Analytics section to the backoffice, and fills the shared Analytics tab on every document (Foundation's — the SEO Agent's and AEO's per-page views appear there too, as further sub-tabs) with this package's panels. The same dashboards render whatever the traffic source:
- An Overview dashboard, the section's landing page: human traffic and
AI-agent traffic side by side over the same range, with the agent half read
from
Flowcourier.Umbraco.AEOwhen it is installed. It renders whichever halves the site has and names the package that would supply the rest, so it is useful before anything is set up. - Realtime, Visitors, Behaviour, Acquisition and
Technology dashboards, plus a per-page traffic view — fed by a
provider package. Install
Flowcourier.Umbraco.Matomofor Matomo orFlowcourier.Umbraco.GoogleAnalyticsfor Google Analytics 4 — one of the two, never both. - A "Google Search" sub-tab on documents, holding both of Google's views of the page because an editor reads them as one question — does Google have it, and is it fast when it gets there? It appears when either feature below is enabled and renders whichever half the install can serve.
- Optional Google Search Console: the index status from the URL Inspection API with what to do about it, and the page's clicks, impressions, CTR, position, queries, countries and devices — plus a site-wide "Search queries" dashboard.
- Optional Google PageSpeed Insights: the Lighthouse category scores and real-user (CrUX) data for mobile or desktop, in the same sub-tab. It shows the last analysis the server holds and waits for a click before running a new one — a run takes 20–60 s and spends PageSpeed quota. Lighthouse's own detail (lab metrics, opportunities, failing audits) is one link away in Google's tool.
- A live visitor badge on the Analytics section in the top bar; it pulses briefly when the number changes.
- Findings on the document tab (Foundation's strip): traffic down vs the previous 28 days with the channel that fell most, no visits on an old page, a landing page bouncing well above the site median, a mid-funnel page where visitors stop, no internal page leading here, site searches right after the page, server time far above the site's — and "not indexed" from the last Search Console inspection. Thresholds under
Flowcourier:Analytics:Findings. - Feeds Foundation's page detection: a node whose URL has pageviews is a page (so the document tab shows) and the tracked site URL is where the front end is probed for the rest.
- A Visits dashboard and a page flow, when the installed provider answers per visit — see below.
Configured entirely from appsettings. No database tables unless you turn
Search Console index tracking on — that one feature stores the last known
index status per page in FcAnalyticsIndexStatus, created on the next start
after you enable it. You normally install a provider package, which brings this
one in; install this package alone if you only want PageSpeed Insights and
Search Console.
Visitor journeys
Two surfaces, both optional:
- A Visits dashboard: the visits of a date range, newest first, and the ordered path of whichever one you open — entry page, each pageview with the time spent on it, the last one marked as the exit, and any events, goals, site searches, downloads and outlinks shown on the step they happened on. Earlier visits by the same visitor open in the same panel. The Realtime dashboard's rows open it too, from data that report already carries.
- The page flow on a document's Analytics → Traffic tab: where visitors to this page came from and where they went next, as one picture — previous pages and external referrers on one side, next pages, outlinks, downloads, the visits that came back to the page and the ones that left the site on the other. Each side shows its top 8 plus one aggregated "other" row, and a toggle swaps the graph for the numbers.
It needs a provider that answers per visit. Matomo does; Google Analytics cannot (GA4's API has no per-visit data), so on a GA install these surfaces simply do not appear. Nothing here is stored in Umbraco — every request goes to the analytics host and the answer is rendered, never persisted.
Matomo prerequisites
| What | Why |
|---|---|
enable_visitor_log = 1 |
Matomo's visits log. With it off, Matomo serves no per-visit data and the feature reports itself as unavailable, naming this setting. |
enable_visit_profile = 1 |
Needed for Matomo's own profile view; this package reads the visits log directly, so it is not required here — but it is the neighbouring switch and worth knowing about. |
| Transitions plugin | The page flow. Without it the Traffic tab keeps everything else and the flow area shows its empty state. |
enableHeartBeatTimer() in the site's own tracking code |
Time spent on the last page of a visit. Matomo cannot know how long someone stayed on the page they left from unless the tracker keeps pinging. These packages only read Matomo's Reporting API — they do not emit tracking code — so without it the exit step shows "—" rather than a misleading "0s". |
Access and the kill switch
Journey endpoints are checked server-side for Analytics section access — every authenticated backoffice user can reach the API (editors need the document tab), so the client-side section gate is not the control. The same check now covers the realtime report, which also lists individual visits. A user without the section gets the error envelope with status 403, and the status endpoint reports the feature as not ready for them, so no surface is offered in the first place.
Set Flowcourier:Analytics:VisitorJourney:Enabled to false to switch the
whole thing off: no dashboard is registered, the endpoints answer 409, and no
request for individual-visitor data reaches the provider.
A note on privacy
Some sites run Matomo precisely to avoid individual-level tracking. This
feature surfaces data Matomo is already collecting and that the Realtime
dashboard already shows — it does not change what is tracked, and it stores
nothing. If that is not wanted in the backoffice at all, the switch above is
the answer; if it is not wanted anywhere, Matomo's own enable_visitor_log is.
Configure
{
"Flowcourier": {
"Analytics": {
"SiteUrl": "https://www.example.com",
"PageSpeed": { "Enabled": true, "ApiKey": "<google api key>" },
"SearchConsole": { "Enabled": true, "Property": "sc-domain:example.com" },
"Google": { "ServiceAccountJson": "<service-account key json>" }
}
}
}
| Setting | Default | Description |
|---|---|---|
SiteUrl |
provider's tracked URL | Public base URL used to build page URLs for PageSpeed and Search Console. |
GrantAdminSectionAccess |
true |
Add the Analytics section to the Administrators group on startup. |
RealtimeBadge:Enabled |
true |
Live visitor count on the section tab. |
RealtimeBadge:PollSeconds |
60 |
Badge refresh interval. |
PageSpeed:Enabled |
false |
Turn on the Page speed section of the document "Google Search" sub-tab. |
PageSpeed:ApiKey |
— | Google API key with the PageSpeed Insights API enabled (recommended; anonymous quota is tiny). |
PageSpeed:Referer |
the page's origin | HTTP referrer sent to Google, so a key restricted to your site's referrers works from the server. |
PageSpeed:DefaultStrategy |
mobile |
Strategy analysed first. |
PageSpeed:CacheHours |
24 |
Keep an analysis this long before asking Google again. |
SearchConsole:Enabled |
false |
Turn on the "Search queries" dashboard and the Search Console half of the document "Google Search" sub-tab. |
SearchConsole:Property |
SiteUrl + / |
URL-prefix (https://www.example.com/) or domain (sc-domain:example.com) property. |
SearchConsole:PendingDays |
14 |
A page younger than this that Google has not indexed yet is "pending", not a warning. |
Findings:MinPageviews |
50 |
Below this many pageviews in the window no traffic rule fires. |
Findings:TrafficDropPercent |
30 |
Visits down by at least this much vs the previous window. |
Findings:BounceAboveMedianFactor / ExitAboveMedianFactor |
1.5 |
Landing-page bounce / mid-funnel exit at or above the site median × factor. |
Findings:SearchAfterPercent |
10 |
Site searches right after the page, as a share of its pageviews. |
Findings:ServerTimeFactor / ServerTimeMinMs |
2 / 300 |
Page server time vs the site's, with a floor. |
Findings:NewPageDays |
14 |
Pages younger than this are not reported for having no traffic. |
Google:ServiceAccountJson |
— | Service-account key JSON (inline). Add the account's e-mail as a user of the Search Console property. |
Google:ServiceAccountJsonPath |
— | …or a path to the key file. |
Effective values (secrets masked) are shown under Settings → Flowcourier → Analytics.
Requirements
Umbraco 17.5 or later (net10.0). Google features need outbound HTTPS to
googleapis.com / searchconsole.googleapis.com.
License
Free to use, including commercially — not open source. See the LICENSE.md packed with this package. Paid Pro features and consulting are available from Flowcourier ApS.
© 2026 Flowcourier ApS. All rights reserved.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Flowcourier.Umbraco.Foundation (>= 17.5.8)
- Umbraco.Cms.Web.Website (>= 17.5.0)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Flowcourier.Umbraco.Analytics.Core:
| Package | Downloads |
|---|---|
|
Flowcourier.Umbraco.Analytics.AI
Makes the Flowcourier Analytics data answerable in the Umbraco AI Copilot: tools for a page's traffic, its flow, search queries, index status, AI crawler activity and findings, plus an "Explain and suggest" action that turns a page's findings into three prioritised edits. Every tool returns aggregates only — never individual visitors, visitor ids or IP addresses. Needs Flowcourier.Umbraco.Analytics.Core, a provider package and the Umbraco AI Copilot. Also AI Visibility (Analytics Pro): your prompt set sampled through your own Umbraco AI chat profiles with web search, and what the answers cite, beside AEO's real AI-crawler fetches. |
|
|
Flowcourier.Umbraco.Matomo
Matomo analytics inside the Umbraco backoffice. Adds an "Analytics" section with Realtime, Visitors, Behaviour, Acquisition and Technology dashboards, and an "Analytics" tab on every document showing that page's traffic, referrers, previous/next pages, locations and devices — all read live from your own Matomo (self-hosted or cloud) through its Reporting API. Editors get the numbers where they work, without a Matomo login. Optional Google PageSpeed Insights and Search Console tabs come with the shared Flowcourier.Umbraco.Analytics.Core package. Configured from appsettings (endpoint, token, site id); no database schema; the token never leaves the server. |
|
|
Flowcourier.Umbraco.GoogleAnalytics
Google Analytics 4 inside the Umbraco backoffice. Adds an "Analytics" section with Realtime, Visitors, Behaviour, Acquisition and Technology dashboards, and an "Analytics" tab on every document showing that page's traffic, referrers, previous/next pages, locations and devices — all read live from your GA4 property through the Google Analytics Data API. Editors get the numbers where they work, without a Google login. Optional Google PageSpeed Insights and Search Console tabs come with the shared Flowcourier.Umbraco.Analytics.Core package. Configured from appsettings (property id + a service-account key shared with Search Console); no database schema; no Google SDK; the key never leaves the server. Successor to the legacy Flowcourier.Umbraco.Analytics package. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 17.5.0-alpha.2 | 57 | 9/28/2026 |
| 17.5.0-alpha.1 | 67 | 9/24/2026 |