
Amplitude Activation's Google Analytics 4 (Web) streaming integration forwards your Amplitude events and users to Google Analytics 4 (Web) with a few clicks.

{% callout type="note" title="Choose the correct Google Analytics 4 destination" %}
The Google Analytics 4 (Web) destination works with a web application instrumented with Google Tag (gtag.js). For an iOS or Android mobile application using Firebase, set up a [Google Analytics 4 (iOS/Android)](/docs/data/destination-catalog/google-analytics-4-ios-android) destination.
{% /callout %}

## Use cases

Sending events from Amplitude to Google Analytics 4 enriches Google Analytics 4's data collection, deepens understanding of user journeys, and integrates product and marketing insights. This approach optimizes user acquisition and retention, and enhances the user experience. For more information, refer to Amplitude's blog post [GA4 as an Amplitude Activation Destination: Hybrid Tracking Method for Full User Journey Analysis](https://amplitude.com/blog/GA4-amplitude-hybrid-tracking) for the end-to-end use case.

## Set up the integration

### Prerequisites

To configure streaming from Amplitude to Google Analytics 4 (Web), you need the following information from Google Analytics 4 (Web):

- **Google Analytics 4 Measurement ID**: The measurement ID associated with a Google Analytics stream. Refer to the [Google documentation](https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events?client_type=gtag#required_parameters) for help locating your measurement ID.
- **Google Analytics 4 Measurement Protocol API Secret**: The measurement protocol API secret used for authentication. Refer to the [Google documentation](https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events?client_type=gtag#required_parameters) for help generating an API secret.

### Create a new sync

1. In Amplitude Data, click **Catalog** and select the **Destinations** tab.
2. In the Event Streaming section, click **Google Analytics 4 (Web)**.
3. Enter a sync name, then click **Create Sync**.

### Enter credentials

1. Enter your **Google Analytics 4 Measurement ID**.
2. Enter your **Google Analytics 4 Measurement Protocol API Secret**.

### Configure mappings

This applies to both event and user forwarding.

1. Select an Amplitude user property that corresponds to your [Google Analytics 4 **Client ID**](https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference?client_type=gtag#payload_post_body), from the left dropdown.
2. (optional) Map an Amplitude user property to [Google Analytics 4 **User ID**](https://support.google.com/analytics/answer/9213390).
      1. Select an Amplitude user property that corresponds to your Google Analytics 4 **User ID**, from the left dropdown.
      2. Select **User ID**, from the corresponding right dropdown.

### Configure event forwarding

Under **Send Events**, enable the toggle ("Events are sent to Google Analytics 4") to stream events to Google Analytics 4. When enabled, Amplitude automatically forwards events to Google Analytics 4 when they're ingested. This integration doesn't send events on a schedule or on-demand.

1. In **Select and filter events** choose which events you want to send. Choose only the events you need in Google Analytics 4. Amplitude sets `non_personalized_ads` to `true` for all events.

{% callout type="warning" title="Events for non-Google Analytics 4 users cannot be streamed" %}
Google Analytics 4 requires that all events have a Google Analytics 4 **App Instance ID** present. If you have selected any events to send to Google Analytics 4 that may not have an **App Instance ID**, add a filter to send only events where the **App Instance ID** is present. Otherwise, your delivery metrics may be affected.
{% /callout %}

2. (optional) In **Select additional properties**, select any more event and user properties you want to send to Google Analytics 4. If you don't select any properties here, Amplitude doesn't send any. Amplitude sends these properties to Google Analytics 4 as [Google Analytics 4 parameters](https://developers.google.com/analytics/devguides/collection/protocol/ga4/reference?client_type=gtag#payload_post_body).

### Configure user forwarding

To stream user and property updates to Google Analytics 4, enable **Send Users**. This setting creates or updates users in Google Analytics 4 when you update them in Amplitude using the [HTTP V2 API](/docs/apis/analytics/http-v2) or [Identify API](/docs/apis/analytics/identify). This integration doesn't support scheduled or on-demand updates.

You can optionally select user properties to send to Google Analytics 4 in the **Select additional properties** field. Amplitude sends only the properties you select, and only when one of them is updated. Amplitude sends these properties as [Google Analytics 4 User Properties](https://developers.google.com/analytics/devguides/collection/protocol/ga4/user-properties?client_type=gtag).

### Enable sync

When satisfied with your configuration, toggle the **Status** to "Enabled" at the top of the page and click **Save**.

## Delivery metrics

The events delivered, not delivered, and delivery rate metrics for this destination are an estimate based on a sample of events sent to the Google Analytics 4 Measurement Protocol [validation endpoint](https://developers.google.com/analytics/devguides/collection/protocol/ga4/validating-events). In addition to sending all events to the [ingestion endpoint](https://developers.google.com/analytics/devguides/collection/protocol/ga4/sending-events), Amplitude sends a sample of up to the first 100 events (and 100 user property changes, if "Send Users" is enabled) to the validation endpoint every 10 minutes. The metrics shown in Amplitude scale from the validation endpoint sample to the total volume of events sent to the ingestion endpoint. If the delivery rate is below 100%, the counts of events delivered shown in Amplitude may not match exactly with the number of events seen in Google Analytics 4. Latency metrics still compute exclusively from events sent to the ingestion endpoint.

