Flowcourier.Umbraco.GoogleAnalytics
17.5.0-alpha.2
dotnet add package Flowcourier.Umbraco.GoogleAnalytics --version 17.5.0-alpha.2
NuGet\Install-Package Flowcourier.Umbraco.GoogleAnalytics -Version 17.5.0-alpha.2
<PackageReference Include="Flowcourier.Umbraco.GoogleAnalytics" Version="17.5.0-alpha.2" />
<PackageVersion Include="Flowcourier.Umbraco.GoogleAnalytics" Version="17.5.0-alpha.2" />
<PackageReference Include="Flowcourier.Umbraco.GoogleAnalytics" />
paket add Flowcourier.Umbraco.GoogleAnalytics --version 17.5.0-alpha.2
#r "nuget: Flowcourier.Umbraco.GoogleAnalytics, 17.5.0-alpha.2"
#:package Flowcourier.Umbraco.GoogleAnalytics@17.5.0-alpha.2
#addin nuget:?package=Flowcourier.Umbraco.GoogleAnalytics&version=17.5.0-alpha.2&prerelease
#tool nuget:?package=Flowcourier.Umbraco.GoogleAnalytics&version=17.5.0-alpha.2&prerelease
Flowcourier.Umbraco.GoogleAnalytics
Google Analytics 4 inside the Umbraco backoffice. The Google Analytics provider for Flowcourier.Umbraco.Analytics.Core (installed automatically). Editors get the numbers where they work — no Google login, no context switch:
- An Analytics section with five dashboards: Realtime (who is on the site right now), Visitors (traffic over time, countries, regions, cities), Behaviour (pages, landing pages), Acquisition (channels, referrers, search engines, social networks, campaigns, AI assistants) and Technology (devices, browsers, operating systems, screen resolutions, device models).
- An Analytics tab on every document: that page's pageviews, visits, engaged time, bounce rate and entrances with previous-period comparison, a daily chart, where its visitors came from, which pages they came from and went to next, and their locations and devices.
- A shared date-range control on every date-ranged view, and a live visitor count on the Analytics section in the top bar.
- Optional PageSpeed Insights and Google Search Console views on the
same document tab (plus a Search queries dashboard) — configured in the
core package's
Flowcourier:Analyticssection, using the same service account.
Everything is read live from your GA4 property through the Google Analytics Data API. The package stores nothing, adds no database tables and uses no Google SDK.
This is the successor to the legacy Flowcourier.Umbraco.Analytics package
(Umbraco 10–13). See Migrating from the legacy package below.
Requirements
- Umbraco 17.5 or later (
net10.0) - A GA4 property and a Google Cloud service account with the Google Analytics Data API enabled (the Admin API too, optionally, for the property name and site URL)
- The service account added as a Viewer on the property
Install
dotnet add package Flowcourier.Umbraco.GoogleAnalytics --prerelease
Configure
{
"Flowcourier": {
"GoogleAnalytics": {
"PropertyId": "123456789",
"SiteUrl": "https://www.example.com"
},
"Analytics": {
"Google": {
"ServiceAccountJsonPath": "/secrets/ga-service-account.json"
}
}
}
}
| Setting | Default | Description |
|---|---|---|
Enabled |
true |
Master switch. |
PropertyId |
— | The numeric GA4 property id (Admin → Property details). properties/123456789 is accepted. Not the G-… measurement id. |
SiteUrl |
— | Public base URL of the tracked site. Page filters are sent to Google as host + path; when empty the property's first web data stream URI is used (needs the Admin API). |
Sites |
[] |
Per-root-node properties for multi-site installs: { "RootContentKey": "<guid>", "PropertyId": "…", "SiteUrl": "…" }. Closest ancestor wins. |
ReportCacheSeconds |
300 |
Server-side cache for date-ranged reports. |
RealtimeCacheSeconds |
15 |
Cache for the Realtime payload (several tabs share one call). |
RealtimeMinutes |
30 |
The "active now" window; GA4 reports at most 30 minutes on a standard property. |
TimeoutSeconds |
30 |
Per-request timeout. |
The service-account key lives under Flowcourier:Analytics:Google
(ServiceAccountJson inline or ServiceAccountJsonPath) — the same key
Search Console uses. It is only ever sent to Google; the settings page shows
the account's e-mail, never the key. Prefer the environment variable
Flowcourier__Analytics__Google__ServiceAccountJsonPath over committing a
path.
Setting up the service account
- In Google Cloud, create (or reuse) a service account and download a JSON key. Enable Google Analytics Data API and Google Analytics Admin API for the project.
- In Google Analytics, open Admin → Property → Property access management and add the service account's e-mail as a Viewer.
- Put the key path (or the JSON) under
Flowcourier:Analytics:Googleand the property id underFlowcourier:GoogleAnalytics:PropertyId. Restart.
Settings → Flowcourier → Google Analytics shows the effective configuration and the e-mail to add.
What differs from the Matomo provider
GA4's API reports aggregates, never individual visits. The views are the same; these parts are empty or absent on a Google Analytics site:
| Surface | Google Analytics |
|---|---|
| Visitor journeys, the Visits dashboard | Not available (no per-visit data). |
| Realtime "latest visitors", map, "last seen" | Counts only; pages are listed by title (GA has no path in realtime). |
| Exit pages, exit rate, "left the site" | GA4 has no exit metric. |
| Page flow | Read from pageReferrer: previous and following pages, loops. No outlinks, downloads or site search. |
| Live count on a page | Not shown. |
| Time on page | Engaged time per view (userEngagementDuration / screenPageViews). |
| AI assistants channel | Derived from the source host (chatgpt.com, perplexity.ai, …); GA files these under Referral. |
Dates are the property's time zone. A full walk through the backoffice costs roughly 40 API requests; the standard quota is 200 000 tokens a day, and the cache keeps a busy team well inside it.
Migrating from the legacy package
The legacy Flowcourier.Umbraco.Analytics package kept its connection in a
database table and its licence in a .lic file. This package reads
configuration only, and needs no licence key:
- Uninstall
Flowcourier.Umbraco.AnalyticsandFlowcourier.Umbraco.Backoffice.Assets. - Move the service-account JSON you pasted into the old connection screen
to
Flowcourier:Analytics:Google:ServiceAccountJson(or a file path), and the property id toFlowcourier:GoogleAnalytics:PropertyId. - Install this package. The
Flowcourier_ServiceConnectionstable is not read and can be dropped. - Delete
umbraco/Licenses/flowcourier-analytics.lic. All traffic reports are free; AI Visibility (Analytics Pro) is the family's paid feature and takes aFlowcourier:Licenses:AnalyticsProkey.
License
Free to use under the Flowcourier License 1.0 (see the repository). Paid Pro features and consulting are available from Flowcourier ApS.
| 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.Analytics.Core (>= 17.5.0-alpha.2)
- Umbraco.Cms.Web.Website (>= 17.5.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 17.5.0-alpha.2 | 44 | 9/28/2026 |