Become a 10x Brand Engineer with Cuppa AI See Who's Hiring
IntegrationsGoogle Analytics 4

Google Analytics 4 Integration

Available on: Solo plans and higher

Connect Google Analytics 4 (GA4) to see real on-site traffic in Cuppa: sessions, pageviews, users, and engagements. GA4 complements Google Search Console and Bing Webmaster Tools by showing what happens after the click.


What You Can Do

  • Import page-level GA4 metrics per brand (sessions, pageviews, users, engagements)
  • See Sessions KPI in Performance Hub Overview
  • View GA4 columns on Performance Hub Pages (sessions, engagements)
  • Power Content Health with on-site engagement alongside GSC rankings
  • Trend charts include a sessions series when GA4 is connected

Plan Requirements

PlanGA4 Access
SoloAvailable
StudioAvailable
ScaleAvailable
EnterpriseAvailable

Legacy plans: Power, Business, Agency, and Agency+ include the same access (mapped to Solo, Studio, Scale, and Enterprise). Hobby does not. Legacy plans are no longer available for new purchases.

GA4 uses the same integrations feature gate as Google Search Console and Bing Webmaster Tools.


Prerequisites

  1. A Google Analytics 4 property for your site
  2. Viewer access or higher to the GA4 property (Editor/Admin recommended for property listing)
  3. A Cuppa Solo plan or higher

How Connection Works (Two-Tier Model)

Cuppa uses the same pattern as GSC and Bing:

  1. Team level: OAuth tokens stored once per team in Team Settings (integrations row, type ga4)
  2. Brand level: Each brand binds to one GA4 property (sites.ga4_property_id)

GSC and GA4 are separate OAuth connections. You can use the same Google account for both or different accounts per team need.


Step 1: Connect GA4 at the Team Level

  1. Go to Team SettingsIntegrations
  2. Find Google Analytics 4
  3. Click Connect
  4. Sign in with your Google account
  5. Authorize Cuppa (read-only Analytics access)

Tip: Use a Google account that has access to the GA4 properties you want to bind to brands.

OAuth scopes: analytics.readonly plus basic profile/email (same Google OAuth infrastructure as GSC, separate integration record).


Step 2: Bind a Property per Brand

  1. Open Brand Settings for the site you want to connect
  2. Go to the Basic tab
  3. Find the Google Analytics 4 section
  4. Select your team GA4 connection
  5. Choose the GA4 property from the dropdown (display name + property ID)
  6. Save

Saving updates ga4_integration_id and ga4_property_id on the brand. The daily sync cron picks up the property on the next run.


Step 3: Wait for Initial Sync

StatusMeaning
ConnectedProperty bound, sync scheduled
First syncMay take up to 24 hours for full backfill

Backfill behavior: On first connect (or when history is thin), Cuppa backfills up to 16 months of page-level metrics in 30-day chunks. After that, the daily cron fetches the last 30 days incrementally.


What Data Gets Synced

Stored in site_ga4_page_metrics (per page path, per day):

MetricGA4 API NameHow Cuppa Uses It
SessionssessionsOverview KPI, trends, Pages tab
PageviewsscreenPageViewsTrends, page-level detail
UserstotalUsersTrends aggregation
EngagementsengagedSessionsPages tab, Content Health

Dimensions: pagePath + date (daily granularity, unlike Bing’s weekly buckets).


Where GA4 Appears in Cuppa

SurfaceGA4 data shown
Performance Hub → OverviewSessions KPI, sessions sparkline in trends
Performance Hub → PagesSessions and engagements per page
Performance Hub → Content HealthPage engagement alongside GSC clicks
Brand Visibility ScoreSessions contribute to social/engagement signals where applicable

GA4 does not replace GSC or Bing for organic search KPIs. Search clicks/impressions still come from Search Console and Bing Webmaster. GA4 answers “what did visitors do on the site?”


Data Refresh

TriggerWhen
AutomaticDaily at 5:00 AM UTC (cron-sync-ga4-metrics)
BackfillUp to 16 months on first connect
IncrementalLast 30 days on subsequent daily runs

Sync order: GSC (4:00 AM) → GA4 (5:00 AM) → Bing (5:30 AM) → BVS daily (5:00 AM after GSC).


GSC + GA4 + Bing Together

SourceAnswers
GSCHow you perform in Google Search (pre-click)
BingHow you perform in Bing Search (pre-click)
GA4What users do on your site (post-click)

Performance Hub organic KPIs combine GSC + Bing for search.traffic GA4 sessions are a separate KPI and page-level columns.


Troubleshooting

”Google Analytics 4 not showing in Integrations”

  • Confirm your plan is Solo or higher

”No properties found”

  • Verify the correct Google account was used for OAuth
  • Confirm you have at least Viewer access to GA4 properties in Google Analytics
  • Check the property is a GA4 property (not legacy Universal Analytics)

“Sessions KPI is zero”

  • Wait for the first daily sync (up to 24 hours)
  • Confirm the correct GA4 property is bound in Brand Settings
  • Verify the property receives traffic in the GA4 UI for the same date range

”GA4 data doesn’t match the GA4 UI exactly”

  • Cuppa stores page-path level data aggregated to daily totals
  • Sampling or thresholding in GA4’s UI can cause small discrepancies
  • Very large properties sync the most recent 30 days incrementally; historical backfill runs in chunks

”Connection expired”

  • Go to Team Settings → Integrations → Google Analytics 4 → Reconnect
  • Re-authorize with Google

Privacy and Security

  • OAuth 2.0 with read-only Analytics scope
  • Read-only access - Cuppa never modifies GA4 configuration
  • Data stored securely per team, never shared across accounts
  • Revoke anytime from Google account permissions or Cuppa disconnect

Revoking Access

From Cuppa: Team Settings → Integrations → Google Analytics 4 → Disconnect

From Google: myaccount.google.com/permissions → Remove Cuppa


FAQ

Do I need GA4 if I have GSC? Yes, if you want on-site session and engagement data in Performance Hub. GSC only shows search appearance and clicks, not on-site behavior.

Which plan includes GA4? Solo plan and higher.

Can I use the same Google account for GSC and GA4? Yes. Connect both in Team Settings. They are separate integration records but can share the same Google OAuth account.

Can I connect different GA4 properties per brand? Yes. Each brand binds its own ga4_property_id.

How often is data synced? Daily at 5:00 AM UTC. First connect triggers a up-to-16-month backfill.

Does connecting affect my analytics? No. Cuppa only reads reporting data.

What if I disconnect GA4? Sessions KPI and page-level GA4 columns disappear from Performance Hub. Cached metrics remain in the database until overwritten.