---
id: "integrations/scheduled-data-exports/ad-monetization-metrics"
title: "Ad Monetization Metrics feed"
description: "This page lists the columns of the Ad Monetization Metrics feed and explains how to apply its deliveries. For setup, delivery frequency, and file formats, see Scheduled Data Exports."
permalink: "/docs/integrations/scheduled-data-exports/ad-monetization-metrics"
slug: "ad-monetization-metrics"
version: "current"
original_source: "docs/integrations/scheduled-data-exports/ad-monetization-metrics.mdx"
---

> **AI agents:** This is the Markdown version of a RevenueCat documentation page. For the complete documentation index, see [llms.txt](https://www.revenuecat.com/docs/llms.txt).

This page lists the columns of the Ad Monetization Metrics feed and explains how to apply its deliveries. For setup, delivery frequency, and file formats, see [Scheduled Data Exports](https://www.revenuecat.com/docs/integrations/scheduled-data-exports).

:::warning[Beta feature]
This feature is currently in beta.
:::

The Ad Monetization Metrics feed exports daily ad metrics per app and Customer from [Ad Monetization](https://www.revenuecat.com/docs/ad-monetization). RevenueCat delivers it to `<base>/ad_monetization_metrics/<date>/ad_monetization_metrics_<timestamp>.<ext>`. It's an incremental feed: with **Receive new and updated ad monetization metrics only** enabled, each delivery includes the days that ended since the previous delivery, plus rows that changed for recent earlier days. With it disabled, each delivery re-exports every past day. See [Applying incremental deliveries](#applying-incremental-deliveries) before loading the data into your own tables.

Each row covers one UTC day, one app, and one App User ID, and exists only if that combination has at least one non-zero metric that day. Only production traffic is included: sandbox and debug ad events are excluded. A day is exported after it ends at midnight UTC, so no delivery contains the current day.

## Columns

New integrations start with every column selected; you can remove columns from the column catalog in the dashboard. For step-by-step instructions, see [Selecting columns for an export](https://www.revenuecat.com/docs/integrations/scheduled-data-exports/selecting-columns).

Three columns are mandatory: `event_date`, `rc_app_id`, and `app_user_id`. Together they're the key you use to apply deliveries, so they're in every file regardless of your selection. The table marks them **Mandatory**. Columns appear in the file in the order listed below.

All dates and times are in UTC.

| Header                         | Description                                                                                                                                                                                                                                     | Type        | Example value                                     | Can be null |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------------------------------------------------- | ----------- |
| `event_date`                   | **Mandatory.** The UTC day the ad events occurred.                                                                                                                                                                                              | date        | `2026-10-21`                                      | No          |
| `rc_app_id`                    | **Mandatory.** The RevenueCat app ID.                                                                                                                                                                                                           | string      | `app1a2b3c4d5e`                                   | No          |
| `app_user_id`                  | **Mandatory.** The latest App User ID sent with the Customer's ad events that day. See [How the App User ID is determined](#how-the-app-user-id-is-determined).                                                                                 | string      | `$RCAnonymousID:87c6049c58069238dce29853916d624c` | No          |
| `requested`                    | Ad requests: ads that loaded plus ads that failed to load.                                                                                                                                                                                      | integer     | `16`                                              | No          |
| `loaded`                       | Ads that loaded.                                                                                                                                                                                                                                | integer     | `14`                                              | No          |
| `failed_to_load`               | Ads that failed to load.                                                                                                                                                                                                                        | integer     | `2`                                               | No          |
| `impressions`                  | Ad impressions.                                                                                                                                                                                                                                 | integer     | `14`                                              | No          |
| `clicks`                       | Ad clicks.                                                                                                                                                                                                                                      | integer     | `1`                                               | No          |
| `ad_revenue_in_usd`            | Ad revenue in USD, as reported by your mediation SDK.                                                                                                                                                                                           | float       | `0.0421`                                          | No          |
| `impressions_by_format`        | Impressions per [ad format](https://www.revenuecat.com/docs/ad-monetization#event-data), for formats with at least one impression.                                                                                                                                             | string JSON | `{"banner":12,"interstitial":2}`                  | No          |
| `ad_revenue_in_usd_by_format`  | Ad revenue in USD per ad format, for formats with non-zero revenue.                                                                                                                                                                             | string JSON | `{"banner":0.0121,"interstitial":0.03}`           | No          |
| `rewarded_ad_prompts_shown`    | Times your UI offered the Customer a rewarded ad. Counts `rewarded` and `rewarded_interstitial` formats only.                                                                                                                                   | integer     | `3`                                               | No          |
| `rewarded_ad_prompts_accepted` | Times the Customer accepted a rewarded ad offer. Counts `rewarded` and `rewarded_interstitial` formats only.                                                                                                                                    | integer     | `2`                                               | No          |
| `rewarded_ad_completions`      | Completed rewarded ads that RevenueCat verified. Counts one per rewarded ad view that granted at least one reward, however many reward items (in-app currency or entitlements) it granted. See [Granting Ad Rewards](https://www.revenuecat.com/docs/ad-monetization/rewards). | integer     | `2`                                               | No          |
| `updated_at`                   | When the row last changed in RevenueCat.                                                                                                                                                                                                        | datetime    | `2026-10-22 00:03:41`                             | No          |

### How the App User ID is determined

`app_user_id` is the latest App User ID that your app sent with the Customer's ad events for that day and app. In most cases, it matches the App User IDs in your other feeds. It can differ for Customers with more than one alias. To join ad data to the Transactions or In-App Currency feeds, match `app_user_id` against either `rc_last_seen_app_user_id_alias` or `rc_original_app_user_id`.

A late ad event can change the latest App User ID for a day that was already exported. RevenueCat then re-sends that day under the new ID, and the row for the old ID stays in your table.

### Applying incremental deliveries

Treat `event_date` + `rc_app_id` + `app_user_id` as the key. Overwrite existing rows that have the same key instead of appending.

Each incremental delivery contains:

- Every day that ended since the previous delivery, in full.
- The rows for the 7 days before that, but only those that changed since the previous delivery, for example because of late-arriving events.

Keep these behaviors in mind:

- **Catch-up.** If the feed runs less often than daily, fails, or is paused, its next delivery catches up on every day it missed.
- **Empty deliveries.** If no new day ended with ad activity and nothing changed, a CSV delivery contains only the header row, and a Parquet delivery contains no file.
- **Multiple runs per day.** A feed that runs more than once a day re-sends the changed rows for that day on every run. Overwriting by key absorbs them.

### Computing derived metrics

The feed exports counts and sums, not ratios. Compute ratios from totals over the period you're analyzing, and sum the counts before you divide. Don't average per-row ratios.

| Metric            | Formula                                                                         |
| ----------------- | ------------------------------------------------------------------------------- |
| eCPM              | `SUM(ad_revenue_in_usd) / SUM(impressions) * 1000`                              |
| Fill rate (%)     | `SUM(loaded) / SUM(requested) * 100`                                            |
| CTR (%)           | `SUM(clicks) / SUM(impressions) * 100`                                          |
| ARPDAU (ad users) | `SUM(ad_revenue_in_usd) / COUNT(*)`, counting only rows where `impressions > 0` |

These match the formulas in the [Ad eCPM](https://www.revenuecat.com/docs/dashboard-and-metrics/charts/ad-ecpm-chart), [Ad Fill Rate](https://www.revenuecat.com/docs/dashboard-and-metrics/charts/ad-fill-rate-chart), [Ad CTR](https://www.revenuecat.com/docs/dashboard-and-metrics/charts/ad-ctr-chart), and [Ad ARPDAU](https://www.revenuecat.com/docs/dashboard-and-metrics/charts/ad-arpdau-chart) charts. Totals can still differ slightly from [Charts](https://www.revenuecat.com/docs/dashboard-and-metrics/charts/ads): Charts report your display currency instead of USD, and include ad events that RevenueCat can't attribute to a customer or that arrive more than 7 days late.

## Related articles

- [Scheduled Data Exports](https://www.revenuecat.com/docs/integrations/scheduled-data-exports)
- [Selecting columns for an export](https://www.revenuecat.com/docs/integrations/scheduled-data-exports/selecting-columns)
- [Ad Monetization](https://www.revenuecat.com/docs/ad-monetization)
- [Granting Ad Rewards](https://www.revenuecat.com/docs/ad-monetization/rewards)
