Data Availability

This page lists every feed, the API behind it, what granularity that API actually returns, how fresh it is, and where it goes blind. Read it before you trust any other page.

Nobody gets to 100% of impressions at user level. Anyone claiming otherwise is either counting differently or guessing. Coverage today is 83.5%, and it is derived from the table below: the 86.3% of impressions on per-impression feeds, less the 9.1% of AdMob volume served through Partner Bidding, which returns no impression-level revenue. Add up the column and you get the headline.

SDK adoption
71%

71% of active users are on an app version carrying the SDK. Adoption ramps as users update their app, not on the release date, so per-user figures cover this share of users and no more. Everything above it is measured on that share, then extended.

Impression coverage
83.5%

Share of impressions where we receive a revenue value tied to your user id. Realistic ceiling is 85%.

Revenue at user level
$1,142,140

30 days. Usable for scoring, tiers and routing.

Revenue aggregate only
$181,320

30 days. Counted in totals, modelled at cohort level, excluded from scores.

Live feeds
5 of 7

Two feeds are next-day. They are labelled next-day everywhere, never real-time.

Revenue sources

One row per feed. Granularity is what the API returns, not what we would like it to return.

SourceAPIGranularityFreshnessShare of impressionsRevenue 30 dGap
Google AdMob
AdMob SDK paid-event callback + AdMob Reporting APIper impression
Revenue per impression, keyed to your user id.
real-time
31.2%
$412,880Partner Bidding impressions return no impression-level revenue. 9.1% of AdMob volume.
Google Ad Manager
GMA SDK paid-event callback + Ad Manager APIper impression
Revenue per impression once the publisher enables the callback.
real-time
14.6%
$193,240AdX web demand reports in aggregate only.
AppLovin MAX
MAX SDK revenue callback + User-Level Ad Revenue APIper impression
Real-time per impression via SDK. API file is user-level.
8h after UTC day end
22.8%
$301,760API file arrives 8 hours after UTC day end. SDK stream is the real-time path.
ironSource / Unity LevelPlay
retention 14 days
LevelPlay SDK impression callback + User Ad Revenue APIper impression
Per-impression via SDK. Server API is next-day.
next-day
9.4%
$124,400Server-side API is next-day only and retains 14 days. Older gaps cannot be backfilled.
Prebid.js (web)
Prebid.js auction event listenersper impression
Full bid landscape: bidder, price, no-bid, timeout, win.
real-time
8.3%
$109,860Bidder identity only. The bid response never names the buyer.
Meta Audience Network
Meta Audience Network Reporting APIaggregate only
Placement x country x day. No user or impression rows exist.
next-day
9.8%
$129,720Modelled at cohort level. Excluded from all user scoring.
Google AdSense / AdX (web)
AdSense Management APIaggregate only
Site x ad unit x day.
next-day
3.9%
$51,600No user-level revenue is available for this demand.

86.3% of impressions come from feeds that report per impression. Real delivery is slightly lower than that headline because Partner Bidding volume inside AdMob returns no impression value.

Install attribution

Without a mobile measurement partner. Deterministic where the platform allows it, cohort where it does not.

Android — all channels
Per user, deterministicFree
Google Play Install Referrer

The referrer string is passed to Publifter with your own user id. No MMP needed.

iOS — Apple Ads
Per user, deterministicFree
Apple AdServices framework

Attribution token is exchanged for campaign, ad group and keyword.

iOS — Meta
Cohort, not per userFree
SKAdNetwork postbacks

Conversion values arrive in windows, with crowd-anonymity thresholds. Revenue per user for these installs is modelled from the cohort.

iOS — Google Ads
Cohort, not per userFree
SKAdNetwork postbacks

Same limitation. Labelled cohort-level everywhere it appears.

iOS — TikTok
Cohort, not per userFree
SKAdNetwork postbacks

Same limitation.

Any — with an MMP
Per user where the platform allowsPaid, optional
AppsFlyer, Adjust or Singular

An upgrade, never a requirement. Publifter works without one.

Web
Cohort by campaign and landing pageFree
First-party pixel, cohort join

No deterministic per-user join across the ad click and the session.

Acquisition cost

Your own credentials, read-only, no cost. CSV covers channels with no API.

APIScopeGranularityFreshness
Meta Marketing APIads_readCampaign x day x platformHourly
Google Ads APIadwords read-onlyCampaign x dayHourly
TikTok Business APIAd Account: readCampaign x dayDaily
Apple Ads APICampaign readCampaign x keyword x dayDaily
CSV uploadManualWhatever you uploadOn upload

Revenue precision

Ad networks label each impression's revenue. We pass the label through.

Precise61.8%

Network reports the exact revenue for the impression.

Estimated24.1%

Network reports a modelled value for the impression.

Publisher provided6.4%

Value derives from your own floor or manual eCPM.

No impression value7.7%

Aggregate-only demand. Never enters a user score.

What we cannot see

Stated plainly so you can plan around it.

  • Who bought your inventory

    A bid response does not name the buyer. In the open bidstream you see the bidder and the price, never the DSP or advertiser behind it. Only a curation deal or a direct data deal reveals that.

  • Per-user revenue from Meta Audience Network

    The Reporting API returns placement x country x day. There is no user or impression row to request. We model it at cohort level and exclude it from scoring.

  • Per-impression revenue from AdMob Partner Bidding

    Google stopped returning impression-level revenue for these impressions. They stay in revenue totals and drop out of user scores.

  • LevelPlay history older than 14 days

    The server-side user API is next-day and retains 14 days. A gap that is not collected inside that window is gone for good.

  • Anything about your users personally

    No names, emails, phone numbers or advertising identifiers. Scoring runs on your own opaque user id.

Cold start

What populates when. No empty screens, but no invented history either.

Revenue, fill, eCPM by placementReady

Within 48 hours

Revenue concentration by decileReady

Within 48 hours

Supply chain mappingReady

First file check, then every 15 minutes

User value tiers (app)Ready — 61 days collected

Needs 30 days of user-level data

User value tiers (web, added 1 Sep)11 of 30 days — 19 days to go

Needs 30 days

Routing lift, measured not modelled3 of 5 rules measured

Needs 14 days per active rule

While a surface is still collecting, it keeps its aggregate revenue views and sits out of scoring. We do not backfill a score from a shorter window and call it 30 days.