Connecting Google Analytics 4
How to connect GA4 so your custom events and goals show up in Ordinary alongside commerce-native attribution.
Connecting Google Analytics 4
GA4 integration requires Starter or higher.
Connecting GA4 surfaces the custom events, goals, and funnels you’ve defined in Google Analytics inside Ordinary — so the behavioural signals you’ve invested in setting up (newsletter signups, video plays, blog reads, custom conversion events) sit next to Ordinary’s commerce data in one view.
What the GA4 integration does NOT do: it does not replace or supplement Ordinary’s session and traffic numbers. Our first-party pixel is the single source of truth for sessions, devices, funnel steps, and attribution. GA4 will usually show slightly different session counts than Ordinary (different session definitions, bot filtering, and sampling) and that’s expected — we never composite the two.
Before you start
- You’re on Starter or higher.
- You have a GA4 property (not Universal Analytics — support ended in 2023).
- You’re an Editor or Administrator on the GA4 property.
- Your GA4 property is tracking your Shopify storefront.
Step 1 — OAuth
- Settings → Integrations → Google Analytics 4 → Connect.
- You’ll be sent to Google’s consent screen.
- Pick the Google account that has access to the GA4 property.
- Approve the Analytics data read scope.
Step 2 — pick your GA4 property
Ordinary lists every GA4 property your Google user can see. Pick the one tracking your Shopify storefront.
If you can’t find the right property:
- Confirm in GA4 itself (analytics.google.com) that the Google account you OAuthed with shows that property in Admin → Property Access Management.
- If the property exists but isn’t in the picker, your role may be Viewer — we need Editor or higher for the Data API.
Step 3 — backfill
On connection we pull:
- Last 90 days of daily session, user, and pageview metrics.
- Last 90 days of channel group breakdowns (Google’s default grouping).
This usually takes 1-3 minutes per 30-day window. The backfill runs in the background — status is on the Settings → Integrations → GA4 card.
What flows in
- Daily session counts, broken out by Google’s default channel groupings (Direct / Organic Search / Paid Search / Organic Social / Paid Social / Email / Referral / Other).
- Pageviews.
- Bounce rate and engagement rate (Starter+; Advanced stores get user-scoped engagement too).
Where it shows up
- Dashboard — “GA4 sessions” card cross-references with pixel sessions.
- Channel taxonomy view — compares GA4 channel groupings against Ordinary’s pixel-derived channels.
- Trends — GA4 sessions are available as an overlay metric on time-series charts.
Refresh cadence
- Daily — the previous day’s data is finalized each morning.
- GA4 has a 24-48 hour processing delay on Google’s side; the most recent two days may revise upward as Google finalizes.
Disconnecting
Settings → Integrations → GA4 → Disconnect. Historical data stays visible but becomes read-only.
Troubleshooting
- Property doesn’t show up — role is Viewer, not Editor. Update in GA4 Admin.
- “Insufficient permissions” — same as above; OAuth scope was granted but the GA4 role isn’t high enough.
- Numbers don’t match GA4 UI — GA4’s UI uses thresholding (hides small user counts for privacy). The Data API we read from can differ by ~1-5%.