---
title: Impression revenue
description: Capture paid events and impression-level revenue from Google Mobile Ads.
---
> ## Documentation Index
> Fetch the complete documentation index at: https://react-native-google-mobile-ads.dev/llms.txt
> Use this file to discover all available pages before exploring further.

Read the paid event when you need the amount AdMob paid for one impression. Turn on [impression-level ad revenue] in the AdMob console first. AdMob then sends that amount for each impression shown on the device.

<Steps>
  <Step title="Turn on impression-level ad revenue">
    Enable the feature in the AdMob console, as explained in the [Impression-level ad revenue] documentation.
  </Step>
  <Step title="Read the paid event">
    For a banner, set the `onPaid` prop. The signature is `(event: PaidEvent) => void`.

    For a full-screen ad (app open, interstitial, rewarded, or rewarded interstitial), call `addAdEventListener` and listen for the event type `paid`. The payload is a `PaidEvent`.

    For a full-screen ad shown with a hook, read the optional `revenue` value. When it is set, it is the last `PaidEvent` for that ad.

  </Step>
</Steps>

The `PaidEvent` type is:

```ts
type PaidEvent = {
  currency: string;
  precision: RevenuePrecisions;
  value: number;
  /** Compact waterfall snapshot for this paid event (no full adapter list). */
  responseInfo?: PaidResponseInfo;
  /** Exact micros as a decimal string when the backend supplies them. */
  valueMicros?: string | null;
};
```

`currency` is the public name (native Google Mobile Ads APIs expose `currencyCode`).
Prefer `valueMicros` when present (null when exact micros are unavailable); do not
derive micros from floating-point `value` in JavaScript.

`responseInfo` on a paid event is a **compact** snapshot (`PaidResponseInfo`): winning
source and allowlisted extras only — not the full `adapterResponses` waterfall. For
load-time auction diagnostics, distinct no-fill handling, and waterfall debugging, see
[Revenue telemetry and auction diagnostics](/revenue-telemetry-and-auction-diagnostics).
Canonical TypeScript shapes live in the [v17 API
reference](https://invertase.github.io/react-native-google-mobile-ads/PaidEvent.html).

where `RevenuePrecisions` is an enum with keys `ESTIMATED`, `PRECISE`,
`PUBLISHER_PROVIDED`, and `UNKNOWN`. It can be imported from the library as

```ts
import { RevenuePrecisions } from 'react-native-google-mobile-ads';
```

[Impression-level ad revenue]: https://developers.google.com/admob/android/impression-level-ad-revenue
