CSV templates

Prepare ad monetization data for diagnosis.

These templates help small mobile game and app teams compare the latest day or latest 7 days against the previous period by revenue, weighted eCPM, impressions, fill rate, country, placement, and ad source. You can anonymize app names before using the demo.

AdMob template

Use this when you export AdMob or AdMob-like report rows by date, country, and ad unit.

date, appName, placementName, country, network, revenue, ecpm, impressions, requests, fills, clicks

AppLovin MAX template

Use this for MAX reporting exports after mapping ad unit or placement names into placementName.

date, appName, placementName, country, network, revenue, ecpm, impressions, requests, fills, clicks

Unity LevelPlay template

Use this for LevelPlay exports where one row represents a date, country, placement, and ad source.

date, appName, placementName, country, network, revenue, ecpm, impressions, requests, fills, clicks

TopOn template

Use this for TopOn exports where one row represents a date, country, placement, and ad source.

date, appName, placementName, country, network, revenue, ecpm, impressions, requests, fills, clicks

14-day sample

Use this ready-made sample to test Last 7 days vs previous 7 days in the public demo.

14 dates, 2 segments, eCPM-drop example

Quick checklist

  • At least 2 report dates for latest-day comparison
  • At least 14 report dates for 7-day comparison
  • Keep segment names consistent across periods
  • Include revenue and impressions at minimum

Best fields to include

  • date
  • app or game name
  • placement, ad unit, and format
  • country
  • ad source / network and mediation
  • revenue
  • impressions
  • requests, matched requests, fills, and separate rates if available

Safe to anonymize

  • appName
  • placementName
  • ad unit names
  • package names
  • account IDs

Keep metric values and segment consistency intact.

How much data should I prepare?

Use enough report dates to compare the selected period against a matching previous period.

Why it matters

One-day drops can be noisy. Matching comparison windows reduce false positives from weekday patterns, holidays, or traffic timing changes.

latest dayNeeds at least 2 report dates. The demo compares the latest date with the previous date.
last 7 daysNeeds at least 14 report dates. The demo compares the latest 7 dates with the previous 7 dates.
segment rowsKeep the same app, placement, country, and ad source names across periods so segment drops can be matched.

Minimum data needed for a useful diagnosis

These fields are the minimum needed to produce a useful diagnosis card.

Why it matters

Without date, country, network, revenue, and impressions, the diagnosis cannot reliably separate traffic drops from pricing or source-level changes.

dateReport date. Use YYYY-MM-DD when possible.
appNameGame or app name. This can be anonymized.
placementNamePlacement name. Keep ad unit and ad format in separate columns when the export distinguishes them.
countryCountry code or country name.
networkAd source or network. Use a separate mediation column when the export identifies the mediation layer.
revenueEstimated ad revenue in USD.
impressionsAd impressions for the row.

Better fields for finding the real driver

These fields make the diagnosis more precise and help identify the real driver.

Why it matters

Requests and fills are especially useful for detecting fill-rate or match-rate problems. Clicks can help sanity-check CTR changes.

ecpmRevenue / impressions * 1000. eCPM Bazaar can calculate it if missing.
adUnitPlatform-defined ad unit. Keep it separate from placement when the export distinguishes them.
adFormatRewarded, interstitial, banner, native, app open, or another format. Do not use it as a replacement for placement.
mediationMediation layer, when reported separately from ad source or network.
requestsAd requests. Needed for fill-rate diagnosis.
matchedRequestsMatched requests when the platform exports them. Keep this distinct from fills.
fillsFilled or served opportunities. Needed for fill-rate diagnosis and kept distinct from matched requests.
matchRatePlatform-reported match rate. Keep it separate from fill rate because definitions can differ.
clicksOptional, useful for CTR sanity checks.

Recognize common columns without changing their meaning

Accepted aliases help map common export columns. They do not make metrics with different platform definitions identical.

Accepted aliases help map export columns. They do not make platform-specific metric definitions identical.

Recognized automatically

Common aliases can be mapped without manual renaming, while match rate and fill rate remain distinct fields.

Keep meaning consistent

Keep app, country, placement, ad unit, format, and source names consistent across comparison periods.

Still anonymized

You can anonymize app names, placements, and account identifiers. Keep metric values and segment structure intact.

date

datedayreport datereport_datereportdate

appName

appNameapp nameapp_nameappapplicationapplication name

placementName

placementNameplacement nameplacement

adUnit

ad unitad_unitad unit nameadUnitadUnitNameunit nameunit_name

adFormat

formatad formatad_formatadFormat

country

countrycountry codecountry_codegeoregionlocation

network

networkadSourcead sourcead_sourceadsourcedemand sourcedemand_source

mediation

mediationmediation platformmediation layer

revenue

revenueestimated revenueestimated_revenueestimatedRevenueestimated earningsestimated_earningsearningsincomead revenue

ecpm

ecpmeCPMobserved eCPMobserved_ecpmobservedEcpmavg eCPMaverage eCPM

impressions

impressionsimpressionad impressionsad_impressionsadImpressionsshows

requests

requestsrequestad requestsad_requestsadRequestsattempts

matchedRequests

matched requestsmatched_requestmatched_requestsmatchedRequestsmatches

fills

fillsfillfilled requestsfilled_requestsresponses

fillRate

fillRatefill ratefill_rate

matchRate

matchRatematch ratematch_ratematched ratematched request rate

clicks

clicksclickad clicksad_clicksadClicks

Privacy first

The public demo parses CSV locally in your browser and does not upload it. If you choose Request free diagnosis, a compact draft may stay in browser session storage to prefill that page. Remove app IDs, exact app names, and private identifiers before sending data yourself.

Try the demoData safety