LogoLogo
  • 🦩Overview
  • 💾Datasets
    • Overview
    • Core Concepts
      • Columns & Annotations
      • Type & Property Mappings
      • Relationships
    • Basic Datasets
      • dbt Integration
      • Sigma Integration
      • Looker Integration
    • SaaS Datasets
    • CSV Datasets
    • Streaming Datasets
    • Entity Resolution
    • AI Columns
      • AI Prompts Recipe Book
    • Enrichment Columns
      • Quick Start
      • HTTP Request Enrichments
    • Computed Columns
    • Version Control
  • 📫Syncs
    • Overview
    • Triggering & Scheduling
    • Retry Handling
    • Live Syncs
    • Audience Syncs
    • Observability
      • Current Sync Run Overview
      • Sync History
      • Sync Tracking
      • API Inspector
      • Sync Alerts
      • Observability Lake
      • Datadog Integration
      • Warehouse Writeback
      • Sync Lifecycle Webhooks
      • Sync Dry Runs
    • Structuring Data
      • Liquid Templates
      • Event Syncs
      • Arrays and Nested Objects
  • 👥Audience Hub
    • Overview
    • Creating Segments
      • Segment Priorities
      • Warehouse-Managed Audiences
    • Experiments and Analysis
      • Audience Match Rates
    • Activating Segments
    • Calculated Columns
    • Data Preparation
      • Profile Explorer
      • Exclusion Lists
  • 🧮Data Sources
    • Overview
    • Available Sources
      • Amazon Athena
      • Amazon Redshift
      • Amazon S3
      • Azure Synapse
      • ClickHouse
      • Confluent Cloud
      • Databricks
      • Elasticsearch
      • Kafka
      • Google AlloyDB
      • Google BigQuery
      • Google Cloud SQL for PostgreSQL
      • Google Pub/Sub
      • Google Sheets
      • Greenplum
      • HTTP Request
      • HubSpot
      • Materialize
      • Microsoft Fabric
      • MotherDuck
      • MySQL
      • PostgreSQL
      • Rockset
      • Salesforce
      • SingleStore
      • Snowflake
      • SQL Server
      • Trino
  • 🛫Destinations
    • Overview
    • Available Destinations
      • Accredible
      • ActiveCampaign
      • Adobe Target
      • Aha
      • Airship
      • Airtable
      • Algolia
      • Amazon Ads DSP (AMC)
      • Amazon DynamoDB
      • Amazon EventBridge
      • Amazon Pinpoint
      • Amazon Redshift
      • Amazon S3
      • Amplitude
      • Anaplan
      • Antavo
      • Appcues
      • Apollo
      • Asana
      • AskNicely
      • Attentive
      • Attio
      • Autopilot Journeys
      • Azure Blob Storage
      • Box
      • Bloomreach
      • Blackhawk
      • Braze
      • Brevo (formerly Sendinblue)
      • Campaign Monitor
      • Canny
      • Channable
      • Chargebee
      • Chargify
      • ChartMogul
      • ChatGPT Retrieval Plugin
      • Chattermill
      • ChurnZero
      • CJ Affiliate
      • CleverTap
      • ClickUp
      • Constant Contact
      • Courier
      • Criteo
      • Crowd.dev
      • Customer.io
      • Databricks
      • Delighted
      • Discord
      • Drift
      • Drip
      • Eagle Eye
      • Emarsys
      • Enterpret
      • Elasticsearch
      • Facebook Ads
      • Facebook Product Catalog
      • Freshdesk
      • Freshsales
      • Front
      • FullStory
      • Gainsight
      • GitHub
      • GitLab
      • Gladly
      • Google Ads
        • Customer Match Lists (Audiences)
        • Offline Conversions
      • Google AlloyDB
      • Google Analytics 4
      • Google BigQuery
      • Google Campaign Manager 360
      • Google Cloud Storage
      • Google Datastore
      • Google Display & Video 360
      • Google Drive
      • Google Search Ads 360
      • Google Sheets
      • Heap.io
      • Help Scout
      • HTTP Request
      • HubSpot
      • Impact
      • Insider
      • Insightly
      • Intercom
      • Iterable
      • Jira
      • Kafka
      • Kevel
      • Klaviyo
      • Kustomer
      • Labelbox
      • LaunchDarkly
      • LinkedIn
      • LiveIntent
      • Loops
      • Mailchimp
      • Mailchimp Transactional (Mandrill)
      • Mailgun
      • Marketo
      • Meilisearch
      • Microsoft Advertising
      • Microsoft Dynamics
      • Microsoft SQL Server
      • Microsoft Teams
      • Mixpanel
      • MoEngage
      • Mongo DB
      • mParticle
      • MySQL
      • NetSuite
      • Notion
      • OneSignal
      • Optimizely
      • Oracle Database
      • Oracle Eloqua
      • Oracle Fusion
      • Oracle Responsys
      • Orbit
      • Ortto
      • Outreach
      • Pardot
      • Partnerstack
      • Pendo
      • Pinterest
      • Pipedrive
      • Planhat
      • PostgreSQL
      • PostHog
      • Postscript
      • Productboard
      • Qualtrics
      • Radar
      • Reddit Ads
      • Rokt
      • RollWorks
      • Sailthru
      • Salesforce
      • Salesforce Commerce Cloud
      • Salesforce Marketing Cloud
      • Salesloft
      • Segment
      • SendGrid
      • Sense
      • SFTP
      • Shopify
      • Singular
      • Slack
      • Snapchat
      • Snowflake
      • Split
      • Sprig
      • Stripe
      • The Trade Desk
      • TikTok
      • Totango
      • Userflow
      • Userpilot
      • Vero Cloud
      • Vitally
      • Webhooks
      • Webflow
      • X Ads (formerly Twitter Ads)
      • Yahoo Ads (DSP)
      • Zendesk
      • Zoho CRM
      • Zuora
    • Custom & Partner Destinations
  • 📎Misc
    • Credits
    • Census Embedded
    • Data Storage
      • Census Store
        • Query Census Store from Snowflake
      • General Object Storage
      • Bring Your Own Bucket
        • Bring your own S3 Bucket
        • Bring your own GCS Bucket
        • Bring your own Azure Bucket
    • Developers
      • GitLink
      • Dataset API
      • Custom Destination API
      • Management API
    • Security & Privacy
      • Login & SSO Settings
      • Workspaces
      • Role-based Access Controls
      • Network Access Controls
      • SIEM Log Forwarding
      • Secure Storage of Customer Credentials
      • Digital Markets Act (DMA) Consent for Ad Platforms
    • Health and Usage Reporting
      • Workspace Homepage
      • Product Usage Dashboard
      • Observability Toolkit
      • Alerts
    • FAQs
Powered by GitBook
On this page
  • Getting Started
  • Prerequisites
  • Step 1: Add a Data Stream to your Google Analytics 4 property
  • Step 2: Create the Census Connection
  • Supported Objects and Sync Behaviors
  • Google Analytics 4 Quirks
  • Custom Properties (Dimensions and Metrics)
  • Properties and Data Streams
  • Event Limitations
  • Identifying Users
  • Other Delays

Was this helpful?

  1. Destinations
  2. Available Destinations

Google Analytics 4

This page describes how to use Census with Google Analytics 4

PreviousGoogle AlloyDBNextGoogle BigQuery

Last updated 2 months ago

Was this helpful?

Google Analytics 4 is the latest version of Google's web and app analytics platform. It's a significant upgrade from Universal Analytics and is designed to be more flexible and powerful. Census can help you send event and user data to Google Analytics 4 to enrich the data you're already collecting.

Getting Started

In this guide, we will show you how to connect Google Analytics 4 to Census and create your first sync.

GA4 has some very interesting behaviors with identifiers, custom fields, and delayed data indexing. If something is confusing, take a look at the section below.

Prerequisites

  • Have your Google Analytics account ready, with an existing Google Analytics 4 property.

    • You'll also need admin access to create API credentials.

Step 1: Add a Data Stream to your Google Analytics 4 property

In order to add a Google Analytics 4 connection, you'll need to create what Google calls a Data Stream. A Data Stream represents events from either a website or a Firebase app. Google describes the process in more detail in .

For a Web App:

  • First create a new stream or choose an existing one in Admin > Data Streams. If creating a new one, specify Web type.

  • Then within the selected datastream, visit Measurement Protocol > Create

  • Copy the Secret Value and the Measurement ID

For Firebase (iOS/Android) applications:

  • First create a new stream or choose an existing one in Admin > Data Streams. If creating a new one, specify iOS or Android types.

  • Then within the selected datastream, visit Measurement Protocol > Create

  • Copy the Secret Value

  • You'll also separately need the Firebase App ID. The identifier for a Firebase app is found in the Firebase console under: Project Settings > General > Your Apps > App ID

Step 2: Create the Census Connection

  • Select Google Analytics 4 from the drop down list (Not Google Analytics)

  • Configure the three settings:

    • Add the Secret Value in the API Secret box of the connection.

    • Add the Measurement ID or Firebase App ID in App ID

    • Specify the Connection Type: Either GTag for websites or Firebase for iOS/Android apps.

You should now be ready to start sending data to Google Analytics 4!

Supported Objects and Sync Behaviors

Object Name

Supported?

Sync Keys

Behavior

✅

Unique Event ID

Send

User Properties

✅

Client ID or

App Instance ID

Update Only (ID must already exist in GA4)

Google Analytics 4 Quirks

Custom Properties (Dimensions and Metrics)

  • Before using Custom Dimensions and Metrics in Census, they must be defined in Google Analytics up 48 hours before they can be used by Census. Yeah, kinda nuts. It looks like the new Custom fields will start showing up in the first few hours but data may not populate until 24-48 hours later.

Properties and Data Streams

  • An API Secret Value - This is a typical API Key. It should never be published anywhere public or user facing. Census will use it to securely talk directly to GA4's Measurement API.

  • One of: A Measurement ID for web/gtag integrations (not a Stream ID) or a Firebase App ID (not an App Instance ID - See Below)

With these two, Census can begin adding event and user data to the data stream.

Event Limitations

GA4 has been rebuilt primarily around events. Everything is an event (including adding user properties as discussed below). Census supports syncing to GA4's standard or reserved events, as well as custom events, and user properties can be passed along with events. However, there are some Google Analytics 4 limitations to keep in mind:

  • Once events are sent to Google, they cannot be updated. This means that if you send an event with missing data, you'll need to send a new event with the corrected data.

When starting to sync events, take advantage of GA4's Realtime Event view (in Reports > Realtime). The "Event Count by Event Name" report will update in nearly real time as Census syncs events. We strongly recommend including User ID in your events where available. If it's excluded, the other User-based reports, realtime or otherwise, may not update.

Identifying Users

Google Analytics 4 also uses a pair of identifiers to identifier users when syncing events and including user properties:

  • A Client ID - Required and should uniquely represent a device

The Client ID is a randomly generated ID that's stored on a device to track activity across sessions. You can capture that from a user session in one of two ways depending on the type of device:

  • Client ID from web/gtag clients. This is collected in the browser by calling gtag.js('get') .

Note: You may also generate your own IDs. We recommend the at least be unique by user (which means you can also simply use the User ID as a client ID)

Other Delays

One last thing to keep in mind. GA4 now supports a real-time view of events and, once the above custom dimension restrictions are passed, you should see your events in real-time (ish, up to a minute delayed in some cases). However, there are still some additional delays in reporting:

  • For many Google Analytics reports, data imported this way will only shows up if the User ID has been used as a visitor to the property in the last 30 days.

  • Data takes up to 24 hours to be fully indexed by google

Navigate to the Census page and click New Destination

Learn about all of our sync behaviors in .

Learn more about all of our sync behaviors in our documentation.

if you want Census to support more Google Analytics objects and/or behaviors

There's quite a few quirks with Google Analytics 4, particularly with how it handles custom properties. If you need any help configuring Google Analytics, contact the .

Google Analytics supports custom properties they call Dimensions and Metrics, both on the event and the user scope. Their but there's a few things to keep in mind for Census:

Google limits the number of user and event scoped custom dimensions and metrics. For most GA4 properties, a maximum of 50 custom event dimensions and 25 custom user dimensions are allowed. See .

Avoid syncing "high cardinality" dimensions. dimension as having more than 500 unique values in a single day. So stick to using dimensions that look like categories or tags.

To send custom properties as part of a sync, you can add destination fields via the new Custom Field button as well as the which can be used to send more complex event data structures.

A Property is the "container" like it was in UA, but now in GA4, the property can span across web and mobile apps traffic. It must be set up as a Google Analytics 4 property. If you haven't yet moved, visit to learn more about migrating to Google Analytics 4.

A GA4 Property has one or more Data Streams which send data to the property (you'll actually be required to set one up ). The typical gtag integration will be set up as a Data Stream. You can think of Census as piggybacking or enriching the user activity already happening in those data streams.

Census connects to your GA4 property through a data stream which is uniquely identified by a combination of two of three identifiers provided when you first set up the connection (see ).

Events can be backfilled but only up to 3 days in the past (based on the timezone of the property). .

A User ID - Technically optional but should be provided on every event if you intend to use GA4's User reports. This uniquely identifies the user across devices and can associate their activity across multiple. Note that the .

App Instance ID from iOS/Android apps. This is collected from within the app context by calling the equivalent of the getAppInstanceId() (the method name varies by language, see ).

Google goes into in their documentation.

if your use cases don't work with these limitations. We'd love to hear how we can make this connection better in the future!

🛫
Destinations
Core Concepts
Syncs
Contact us
Census support team
docs have a lot of detail on this functionality
Google's docs for the up to date list of limits
Google defines high cardinality
Google's docs
when creating a new property
Google's API Docs
property must be configured to use a User ID
Google's documentation
more details on both identifiers
Contact us
Step 1
Event
their docs
Understanding GA4 Identifiers and Quirks
Properties Bundle structured object