Skip to main content
This page covers the Google Analytics 4 (GA4) destination — sending audience membership from Zeotap to a GA4 property using the Measurement Protocol. If you are configuring the Zeotap Collect Tag to capture the GA Client ID from a browser, see Google Analytics configuration in GTM. If your account still runs Universal Analytics, see Google Universal Analytics Integration. For BigQuery-based data sharing with Google, see Google Analytics Hub.

What this is

The Google Analytics 4 destination sends Zeotap audience membership into a GA4 property as a custom event named zeotap_event. Each event carries two parameters — audience_name (the Zeotap audience the profile belongs to) and zeotap_event_type (add when the profile joins the audience, remove when a later refresh drops it). Inside GA4 you build a Custom Audience on top of those events, and from there you link it into Google Ads or Optimize 360 for activation. The integration supports the GA Client ID identifier, the ID Extension feature, and DELETE actions; it does not support DELTA UPLOAD.

Prerequisites

Before you start, collect the following from your Google Analytics 4 account:
  • A GA4 Property with a Web Data Stream. This integration supports the web implementation of GA4 only.
  • The Data Stream’s Measurement ID.
  • A Measurement Protocol API Secret generated against that Data Stream.
  • Two Custom Dimensions on the property, both scoped to Event, with Event Parameter names audience_name and zeotap_event_type (see Create the two required Custom Dimensions).
  • The GA Client ID available on the profiles you plan to activate — this is the identifier the destination sends.
Audience Name values sent from Zeotap must be 100 characters or fewer, or GA4 will not ingest the event.

Configure the GA4 property and Data Stream

If you already have a GA4 Property with a Web Data Stream, skip to step 3.
  1. In your Google Analytics 4 account, open Admin and select Create Property. Enter a Property Name, click Next, complete the Business information section as per your business requirement, then click Create. The GA4 property is created.
    Creating a property in Google Analytics 4
  2. Inside the new property, open Data Streams, choose Web, enter the Website URL you want to track and a Stream Name, then click Create Stream.
  3. Open the Data Stream. A details panel opens on the right. Copy the Measurement ID — you paste it into Zeotap in a later step.
    Measurement ID in the GA4 Data Stream details panel
  4. In the same panel, scroll down and open Measurement Protocol API secrets. Click Create, then copy the resulting API Secret.
    Measurement Protocol API secrets panel in GA4

Create the two required Custom Dimensions

Without both Custom Dimensions in place, GA4 cannot resolve the parameters on the zeotap_event and any audience built on those parameters returns zero users.
  1. In GA4, open Configure → Custom Definitions → Create Custom Dimensions.
  2. Create the first Custom Dimension:
    • Dimension Name: Audience Name
    • Scope: Event
    • Description: as per your requirement
    • Event Parameter: audience_name
  3. Create the second Custom Dimension:
    • Dimension Name: Zeotap Event Type
    • Scope: Event
    • Description: as per your requirement
    • Event Parameter: zeotap_event_type
    Creating the Custom Dimensions in GA4 Custom Definitions
The Event Parameter names are case-sensitive and must match exactly: audience_name and zeotap_event_type. A typo here silently breaks the integration — GA4 accepts the event but the audience filter returns zero matches.

Create the GA4 destination in Zeotap

  1. Log into the Zeotap CDP App and open the Destinations application.
  2. Click + Create Destination.
    Create Destination button in the Destinations application
  3. Under All Destinations, search for Google Analytics 4 and open it. The right pane shows the fields the integration needs.
    Searching for a destination under All Destinations
  4. Enter a Destination Name, paste the Measurement ID and API Secret you copied from GA4, review your entries, then click Next.
    Google Analytics 4 destination configuration fields
  5. On the mapping screen, under Choose your Action select Send identifiers to Google Analytics 4. Under Map the Fields, map an output identifier to GA Client ID. You can edit, add, or remove identifier rows using the mapping controls — see Destinations — mapping for the full reference.
    Choose your Action and Map the Fields screen for the GA4 destination
  6. Click Create Destination. The destination now appears in the Audiences application, ready to attach to an audience.
Attach the newly-created destination to a Zeotap audience from the Audiences application. For the full walkthrough, see Link an audience to the destination. It can take up to one business day for the audience to become available in the GA4 seat after linking.
The terms Audiences and Segments are used interchangeably to refer to customer cohorts belonging to a specific category — for example, a group of customers who are over 18 years of age and performed an addToCart event within the last 30 days.

What Zeotap sends to GA4

Zeotap emits a single custom event per profile per refresh, using the GA4 Measurement Protocol. The event and its two parameters look like this:
  • If the profile is part of the audience in the current refresh, zeotap_event_type is add.
  • If the profile was in the audience in an earlier refresh and has dropped out in the current one, zeotap_event_type is remove. This drives the user disqualification flow described below.

Verify the integration

  1. In GA4, open the property’s Realtime or DebugView report and confirm events named zeotap_event appear from your Data Stream.
  2. Open one such event and confirm both parameters audience_name and zeotap_event_type are populated, with audience_name matching the Zeotap audience name you activated.
  3. In GA4, open Configure → Custom Definitions and confirm both Custom Dimensions are listed with Event Parameter values audience_name and zeotap_event_type.
  4. In GA4, open Configure → Audiences, build the audience described in Build a GA4 audience from the zeotap_event below, and confirm the audience size grows as GA4 processes events. GA4 processing latency depends on your account tier — see Google’s data-processing documentation.
If events do not appear within one business day of the first refresh, or the audience size stays at zero after 48 hours of GA4 processing, work through the errors in the next section.

Troubleshoot common errors

Almost every failed GA4 setup traces back to one of the conditions in this table. Work through it row-by-row before contacting support.

Build a GA4 audience from the zeotap_event

Once events flow into GA4, build a Custom Audience on top of zeotap_event.
  1. In GA4, open Configure → Audiences → New Audience → Create a Custom Audience.
  2. Under Include users, click Add new condition and configure:
    • Choose Events → zeotap_event from the drop-down.
    • Click ADD PARAMETER and under Custom, select Audience Name → audience_name and choose the relevant Zeotap audience name from the drop-down.
    • Add a second parameter: Zeotap Event Type → zeotap_event_type and choose add.
  3. Under ADD GROUP TO EXCLUDE, click Add new condition to exclude users removed from the audience in a later refresh:
    • Choose Events → zeotap_event.
    • Audience Name → audience_name matches the same Zeotap audience name.
    • Zeotap Event Type → zeotap_event_type equals remove.
  4. Click Save.
Building a Custom Audience on the zeotap_event in GA4
To use this audience in Google Ads, link the GA4 property to Google Ads following Google’s GA4-to-Ads linking guide. For the full GA4 audience-builder reference, see Google’s GA4 audiences documentation.

User disqualification from audiences

The GA4 destination supports user disqualification.
  • When a profile no longer qualifies for a Zeotap audience — because it fails the audience criteria, consent requirements, or another condition set on the audience — Zeotap issues a deletion request in the next refresh cycle for that audience-destination pair.
  • The disqualified profile is excluded from the audience based on the audience’s configured refresh frequency.
  • Disqualification is programmatic. You do not configure anything to trigger it — Zeotap emits zeotap_event_type: remove for the profile, and the GA4 audience built with the remove exclusion condition drops the profile on the next GA4 audience evaluation.

FAQ

After you link a Zeotap audience to the GA4 destination, it can take up to one business day for the audience to become available at the GA4 seat. GA4-side processing of Measurement Protocol events adds additional latency on top of that — Google Analytics 360 accounts see lower latency than the free tier. See Google’s GA4 data-processing latency documentation.
No. When a profile stops qualifying for the audience, Zeotap emits zeotap_event_type: remove on the next refresh. Provided your GA4 Custom Audience uses the exclude-group described in Build a GA4 audience from the zeotap_event, the profile is dropped from the audience on the next GA4 evaluation.
The GA Client ID — the identifier stored in the GA _ga cookie on the browser. If you use the Zeotap Collect Tag through GTM, see Google Analytics configuration in GTM for how to capture the GA Client ID onto Zeotap profiles.
No. The integration supports the web implementation of GA4 only. The Data Stream you copy the Measurement ID from must be a Web stream.

Next steps

Last modified on September 8, 2026