Google Firebase Conversions
Use warehouse app conversion events for Firebase and GA4 measurement.
Connect this destination to write warehouse app conversion events onto Firebase and GA4, for use in Google Ads attribution. You do not need an audience.
This destination writes to your Firebase and GA4 property and is a good fit when you want to:
- Have an iOS or Android Firebase app data stream in GA4
- Use a warehouse table that has app events with a Firebase
app_instance_id - Make those events available for Google Ads attribution
This maps to GrowthLoop Syncs:
| Use it for | Syncs |
|---|---|
| Sending mobile app conversion events to Firebase / GA4 | ✓ |
To export Customer Match lists or sync Google Ads click conversions, use Google Ads. Do not send web client_id values to this destination.
Prerequisites
Make sure you have:
- A GA4 property with an iOS or Android app data stream.
- The Firebase App ID for that stream, from GA4 Admin → Data streams.
- A Measurement Protocol API secret created for the same app stream.
- A warehouse table of app conversion events with valid Firebase
app_instance_idvalues, not webclient_idvalues.
Create a separate destination when your iOS and Android Firebase App IDs differ.
Set up Google Firebase Conversions as a destination
- In GrowthLoop, click the Destinations tab on the left sidebar.
- Click New Destination in the upper right corner.
- Search for Firebase App Conversions and click Add Firebase App Conversions.
- Enter the required information, then click Create.
| Field | Description |
|---|---|
| Destination Name | Name this destination in GrowthLoop. Use a name so your team recognizes its purpose, like "Firebase App Conversions". |
| Firebase App ID | App ID from GA4 Admin → Data streams for the iOS or Android stream. |
| Measurement Protocol API secret | Secret you've created for that same app stream. |
To find these values in GA4:
- Open Admin → Data streams and select the app stream.
- Copy the Firebase App ID.
- Under Measurement Protocol API secrets, create a secret and copy it into GrowthLoop.
GrowthLoop validates the credentials against GA4's debug Measurement Protocol endpoint. Firebase App Conversions then appears in your list of connected destinations.
Create a sync in GrowthLoop
Create a sync from a warehouse table to write app conversion events onto Firebase and GA4. See Syncs for information on how to complete those steps.
Select an Object Type:
| Object | Use it for | Sync modes |
|---|---|---|
| App Conversion | Mobile app conversion events in GA4 | Insert |
When you configure the sync:
- Connection: Select your Firebase App Conversions destination.
- Object Type: Select App Conversion.
- Update Rule: Choose Insert. This destination adds new events only. See Sync behavior.
- Dataset/Table: Select the warehouse table that holds the app events.
After you map fields, save the sync. Enable it from the Syncs table.
App Conversion fields
| Destination field | Required | Description |
|---|---|---|
| App Instance ID | Yes | Firebase Analytics app_instance_id. Do not use a web client_id. |
| Event Name | Yes | The app event name. |
| Event Time | Yes | Unix timestamp in seconds. |
| User ID | No | App user identifier. Used with App Instance ID when GrowthLoop batches events. |
| Currency | No | Required for complete purchase events. |
| Value | No | Required for complete purchase events. |
| Transaction ID | No | Required for complete purchase events. |
| Engagement Time (ms) | No | Defaults to 100 when you do not map it. |
| Non-Personalized Ads | No | Non-personalized ads flag. |
See the GA4 Measurement Protocol reference.
Sync behavior
This is what GrowthLoop writes when you sync app conversion events.
| Behavior | What happens |
|---|---|
| When it runs | GrowthLoop sends the sync as a batch on the next successful run. |
| Insert | GrowthLoop adds new events. Syncs do not update or remove events already sent to GA4. |
| Delivery | GrowthLoop posts events to the GA4 Measurement Protocol (/mp/collect). |
| Batching | Events are grouped by app_instance_id and user_id, then sent in batches of up to 25 events per request. |
| Platforms | Use one destination per Firebase App ID. Create separate connections for iOS and Android when the IDs differ. |
| Google Ads | GrowthLoop delivers events to GA4. You import or link conversions in Google Ads outside GrowthLoop. |
| Deletes | GrowthLoop does not delete previously uploaded events. |
| Missing identifier | Rows without App Instance ID, Event Name, and Event Time fail. |
Confirm the export was successful
When the run finishes, confirm you can use the data in Firebase and GA4.
- App Conversion sync: Open GA4 → Reports → Realtime and look up the events.
Firebase DebugView only shows events sent to the debug endpoint. GrowthLoop uses that endpoint to validate credentials, not for production sync traffic.
In GrowthLoop, confirm the sync appears in the Syncs table. See Syncs for more information.
Congrats on successfully exporting to Google Firebase Conversions!
Troubleshooting
These are the issues we see most often. You can always email us at [email protected] for help.
| Problem | Cause | Resolution |
|---|---|---|
| Connection fails to validate | Firebase App ID and API secret are not from the same app stream | Copy both values from the same GA4 Data streams app stream |
| Events are missing in GA4 | app_instance_id is a web client_id, or you are looking in DebugView | Map Firebase Analytics app_instance_id. Check Reports → Realtime, not DebugView |
| iOS or Android events fail | One destination is using the other platform's App ID | Create a separate Firebase App Conversions destination for each App ID |
| Purchase events are rejected or incomplete | Currency, Value, or Transaction ID is missing | Map those fields for revenue events |
Updated 12 days ago
