Google Analytics 4

Only GA4 is supported. Universal Analytics collects nothing.


#How

Readers' browsers load Google's gtag.js and send page views and search events directly to Google. Reports are read back from GA4 using the Google account you connected.


#Where you do it

Task

Where

Open the settings page

Confluence > Settings > Apps > Google Analytics

Connect Google (do this first)

Connect Google panel > Connect Google Analytics

Pick the GA4 property

Connect Google panel > GA4 property


#Settings that affect this

Setting

Where

What it does

Connect Google Analytics / Disconnect

Settings > Apps > Google Analytics > Connect Google

Starts a Google sign-in popup. The connection is site-level: one admin connects once and the whole Confluence site uses it. Disconnect revokes access at Google and deletes the stored tokens.

GA4 property

Settings > Apps > Google Analytics > Connect Google

Which GA4 property the in-Confluence reports read from. Also scopes the data stream, API secret and custom dimension controls.

Data stream

Settings > Apps > Google Analytics > View tracking

Picking a web data stream fills in the Measurement ID for you.


#Limits that apply here

Limit

Value

What happens

Measurement ID format

-

Universal Analytics IDs are accepted by the settings field but collect nothing anywhere.

GA4 data latency

-

New events and newly created custom dimensions take up to 48 hours to appear in Google Analytics. This is Google's behaviour, not the app's.

Google connection scope

-

The Google connection is site-level, not per-user. One admin connects and everyone uses it.


#Worth knowing

  • "Hide Google Analytics pages in Confluence" only hides the app's own pages from navigation. Page titles are still sent to Google.

  • Report rows are not filtered by the viewer's Confluence permissions. Metrics come from Google keyed on page id and are shown to anyone who passes the Allowed groups check; only the titles are resolved with the viewer's own access. Use Allowed groups if this matters, and leave the Raw paths panel off, as that is the sharper exposure.

  • Universal Analytics is effectively dead in this app even though the setting exists. Every collection path requires a G- ID.

  • A manually pasted Measurement Protocol API secret is wiped by the next Save configuration unless retyped. Secrets picked or created through the Google picker survive.

  • The Google connection is site-level, not per-user. One admin's connection serves everyone, and disconnecting affects everyone.



Better with company.