Integration · Product analytics

Send in-app purchase events to Firebase and Google Analytics

RevenueDot sends purchases, trial conversions, renewals and one-time purchases to Google Analytics for Firebase as the standard purchase event, with value, currency, items, is_renewal and is_trial_conversion. Other steps arrive as rc_* events such as rc_cancellation. It uses the Measurement Protocol and needs the customer's $firebaseAppInstanceId attribute.

What teams do with it

  • See subscription revenue in GA4 reports and Firebase's purchase and revenue views.
  • Use renewals and trial conversions as audiences or conversions in Firebase.
  • Send revenue in US dollars or in the currency the customer paid in.
  • Build Firebase audiences of paying and cancelled customers.

What RevenueDot sends

  • Purchases, trial conversions, renewals and one-time purchases arrive as purchase, with value, currency, coupon, items, is_renewal and is_trial_conversion.
  • The other steps arrive as rc_trial_start, rc_cancellation (cancellations and trial cancellations), rc_uncancellation, rc_subscription_paused, rc_expiration, rc_billing_issue, rc_product_change, rc_transfer and rc_test.
  • Every event needs the customer's $firebaseAppInstanceId attribute. Without it, RevenueDot skips the event and says why in the delivery log.
  • Only App Store and Google Play purchases are sent, each to the iOS or Android stream you configured. Sandbox events carry environment: SANDBOX.
  • Currency is either US dollars or the currency the customer paid in. Refunds are not sent as purchases, because GA4 has no negative purchase.

Setup

How to connect Firebase to RevenueDot

  1. 01

    Get the stream details

    In Firebase, open Google Analytics, Admin, Data streams, pick the iOS or Android stream, copy its Firebase App ID and create a Measurement Protocol API secret.

  2. 02

    Set the app instance id

    In your app, send Firebase Analytics' app instance id with Purchases.shared.attribution.setFirebaseAppInstanceID(Analytics.appInstanceID()).

  3. 03

    Open the integration

    In RevenueDot, open Integrations in the project sidebar and choose Firebase.

  4. 04

    Enter the stream values

    Fill iOS Firebase app ID and iOS Measurement Protocol API secret, Android Firebase app ID and Android Measurement Protocol API secret, or only the platform you use.

  5. 05

    Choose currency and connect

    Pick Currency and Sales reporting, click Connect Firebase, then Send test event and open GA's Realtime report.

The Firebase integration page in the RevenueDot dashboard, with its settings form
Captured from the RevenueDot dashboard with demo data.

How RevenueDot delivers events to Google Analytics

  • Timeouts, rate limits (HTTP 429) and server errors (5xx) from Google Analytics retry on the webhook schedule: after 5, 10, 20, 40 and 80 minutes.
  • Any other 4xx answer fails at once, because sending the same request again cannot work. Fix the setting, then click Replay failed.
  • The delivery log keeps each request with every secret replaced by [redacted], the answer, the time taken and, for skipped events, the reason.
  • Credentials are sealed with AES-256-GCM on the server. After you save a key, the dashboard shows only its last four characters.
  • Google accepts every Measurement Protocol request without checking it, so a wrong app ID or secret still shows as delivered. Check GA's Realtime report after the test event.

FAQ

Firebase and RevenueDot

Does the Firebase integration work with the RevenueCat SDK?

Yes. RevenueDot speaks the RevenueCat SDK protocol, so your app keeps the RevenueCat SDK and only the server address changes. Your app must set $firebaseAppInstanceId with the SDK before the purchase, or RevenueDot skips the event.

Is it the same as RevenueCat's Firebase integration?

It reads the same $firebaseAppInstanceId attribute and sends the same purchase and rc_* events through the Measurement Protocol. RevenueCat's version has years of production use behind it. RevenueDot's is newer, so run Send test event and check Firebase before you rely on it.

Why was my event skipped?

The usual reason is a missing $firebaseAppInstanceId. The delivery log shows the reason. Once the app sends the id, click Retry and the event goes through.

Does it send web purchases?

No. Firebase app streams are for iOS and Android, so purchases from Stripe or other web stores are skipped.

Sources: Firebase · GA4 Measurement Protocol · RevenueCat third-party integrations. Firebase is a trademark of its owner, used to describe compatibility. RevenueDot is not affiliated with or endorsed by it.

Get started

Send Firebase every subscription event.

Start free on RevenueDot Cloud, free up to $10,000 a month in tracked revenue. Integrations are included on every plan.

Already have an account? Sign in · Prefer your own servers? Self-host free