Brandfine Docs
Concepts

Google Analytics

Pull Google Analytics 4 sessions, engagement, channels, and key events into Brandfine — synced daily, surfaced per workspace and per post, side-by-side with built-in analytics.

Brandfine's Google Analytics integration pulls your GA4 data into the CMS so the same place you manage your content also shows you how visitors engage with it. One workspace ↔ one GA4 property.

Where it lives: Growth → SEO & Analytics → any workspace → Google Analytics tab.

It supplements Brandfine's built-in analytics rather than replacing it — both tabs live side by side. GA4's strengths (engagement rate, acquisition channels, key events) complement the built-in tracker's strengths (first-party, no consent banner, realtime). When a workspace has both connected, the team-wide Metrics page prefers the GA numbers for shared metrics like visitors and pageviews, and marks those rows with a small "GA" chip.

What you see in the CMS

Workspace summary

Four metric cards for the selected window, each with a delta versus the prior period of the same length:

  • Sessions — visits to your site.
  • Users — distinct people behind those sessions.
  • Engagement rate — the share of sessions GA4 counts as "engaged" (10+ seconds, a conversion, or 2+ pageviews). This is a GA4-native quality signal the built-in analytics doesn't have.
  • Avg engagement / session — engaged time divided by sessions.

Sessions over time

A daily sessions line chart for the selected window. Longer windows downsample client-side so the chart stays readable.

Acquisition channels

Where your traffic came from, in GA4's canonical channel grouping — Organic Search, Direct, Social, Referral, Paid Search, and so on — with sessions, engaged sessions, and engagement rate per channel. This is the grouping marketing teams reason in, and it's something referrer-only analytics can't reconstruct.

Key events

GA4 renamed "conversions" to key events — events you've marked as significant in GA4's Property → Events page. The panel lists your top key events with counts for the window. If the panel is empty, mark events as "key" in GA4 first; they show up here once they fire.

Top pages + top events

  • Top pages — most-visited paths with sessions, views, average engagement time, and key-event counts per page.
  • Top events — most-fired GA4 events (automatic and custom), with counts and a per-session average.

Date filter

A segmented pill toggle above the summary: 7d / 28d / 90d / 6mo / 12mo. Selection persists in the URL via ?range=, so back/forward and deep-links preserve it. Dates use your GA4 property's reporting timezone — the numbers line up with GA4's own dashboard.

Per-post sessions on the posts list

Once a workspace is connected and synced, your posts list picks up a sortable Sessions (28d) column. Hover a value to see users and pageviews for the same post. Posts without data render and sort to the bottom, so the list naturally surfaces real data first.

This sits next to the Search Console columns when both integrations are connected — search clicks and on-site sessions for every post, in one table.

Per-post card on the post editor

Open any post → the GA card shows that post's totals (sessions, users, pageviews, engagement) plus a daily sessions sparkline for the window. Brandfine matches GA4 page paths to your posts by URL, so the card reflects the post's actual live URL.

Actions you can take

Sync now

Data syncs once a day automatically. If you want fresh data without waiting — right after connecting, or after a traffic spike — click Sync now in the connection header. The header also shows when the last sync ran.

Change property

Click Change property in the connection header to switch which GA4 property maps to this workspace. Switching purges the old property's synced data — metrics from two different properties never blend — and the next sync re-pulls 90 days of history from the new property.

Connecting

  1. Go to Growth → SEO & Analytics → workspace → Google Analytics.
  2. Click Connect Google Analytics.
  3. You're redirected to Google to authorize Brandfine. We request read-only access (analytics.readonly scope) and email-address access (userinfo.email — used only to show you which Google account the connection belongs to).
  4. After consent, you return to the CMS. The property picker dialog opens automatically.
  5. Pick which GA4 property maps to this workspace. The list shows every property your Google account can see, grouped by account.
  6. Brandfine kicks off the first sync. It pulls 90 days of history and usually completes within a minute or two. Subsequent syncs run daily and re-fetch a 5-day rolling window so late-arriving events self-heal.

Only GA4 properties are supported. Universal Analytics (the old UA-XXXX properties) was shut down by Google in 2023 and has no data API.

What data we pull

Three daily report layers, all stored in Brandfine:

LayerDimensionsUsed by
Page × Daydate + page pathTop pages, per-post overlay, per-post card
Channel × Daydate + channel groupSummary cards, sessions chart, acquisition channels
Event × Daydate + event nameTop events, key events panel

Per row we store sessions, users, pageviews, engagement rate, engagement duration, engaged sessions, event counts, and key-event counts — the metrics the UI surfaces, nothing more. We don't pull demographics, geography, device breakdowns, or audience data.

Data freshness

GA4 processes most data within 24 hours, but late-arriving events (offline conversions, batched mobile uploads) can land days later. We sync daily and re-fetch the last 5 days on every run, so recent days self-heal as Google finalizes them.

Two practical implications:

  • "Today" never shows. Windows end at yesterday — GA4's current-day numbers are partial and would just churn.
  • Realtime ("active now") isn't available from this integration. Brandfine's built-in analytics covers the realtime signal; the Metrics page shows it only for workspaces using the built-in tracker.

Reconnecting

If we lose access to your Google account — typically because you revoked Brandfine in Google Account → Connected apps, or a password change invalidated the refresh token — Brandfine shows an amber "Reconnect required" banner on the Google Analytics tab. Click Reconnect to run the OAuth flow again. The new connection replaces the broken one; you don't lose any synced data.

What this integration doesn't do

  • No tracker installation. This integration reads an existing GA4 property; it doesn't add the GA4 tag to your site. If you want zero-setup tracking, Brandfine's built-in analytics installs with one click.
  • No GA4 configuration. Marking key events, creating custom events, adjusting data retention — all of that happens in GA4 itself.
  • No Universal Analytics. GA4 properties only.

Permissions + privacy

  • OAuth scopes: analytics.readonly (read-only access to your GA4 reporting data) and userinfo.email (your Google account email, for display only). We never modify your GA4 property, events, or settings.
  • Refresh token storage: encrypted at rest with AES-256-GCM (per-row IV, app-level key). Same encryption used for every third-party credential Brandfine stores.
  • Limited use compliance: Brandfine's use of Google API data adheres to the Google API Services User Data Policy, including the Limited Use requirements. Full disclosure is in our Privacy Policy.
  • Disconnecting: click Disconnect on the tab, or visit Google Account → Connected apps → Brandfine to revoke access at the Google end. We stop calling Google APIs immediately when revoked.

On this page