Flowcourier.Umbraco.GoogleAnalytics 17.5.0-alpha.2

This is a prerelease version of Flowcourier.Umbraco.GoogleAnalytics.
dotnet add package Flowcourier.Umbraco.GoogleAnalytics --version 17.5.0-alpha.2
                    
NuGet\Install-Package Flowcourier.Umbraco.GoogleAnalytics -Version 17.5.0-alpha.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Flowcourier.Umbraco.GoogleAnalytics" Version="17.5.0-alpha.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Flowcourier.Umbraco.GoogleAnalytics" Version="17.5.0-alpha.2" />
                    
Directory.Packages.props
<PackageReference Include="Flowcourier.Umbraco.GoogleAnalytics" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Flowcourier.Umbraco.GoogleAnalytics --version 17.5.0-alpha.2
                    
#r "nuget: Flowcourier.Umbraco.GoogleAnalytics, 17.5.0-alpha.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Flowcourier.Umbraco.GoogleAnalytics@17.5.0-alpha.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Flowcourier.Umbraco.GoogleAnalytics&version=17.5.0-alpha.2&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Flowcourier.Umbraco.GoogleAnalytics&version=17.5.0-alpha.2&prerelease
                    
Install as a Cake Tool

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:Analytics section, 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

  1. 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.
  2. In Google Analytics, open Admin → Property → Property access management and add the service account's e-mail as a Viewer.
  3. Put the key path (or the JSON) under Flowcourier:Analytics:Google and the property id under Flowcourier: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:

  1. Uninstall Flowcourier.Umbraco.Analytics and Flowcourier.Umbraco.Backoffice.Assets.
  2. 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 to Flowcourier:GoogleAnalytics:PropertyId.
  3. Install this package. The Flowcourier_ServiceConnections table is not read and can be dropped.
  4. Delete umbraco/Licenses/flowcourier-analytics.lic. All traffic reports are free; AI Visibility (Analytics Pro) is the family's paid feature and takes a Flowcourier:Licenses:AnalyticsPro key.

License

Free to use under the Flowcourier License 1.0 (see the repository). Paid Pro features and consulting are available from Flowcourier ApS.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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 47 9/28/2026