Publisher workflow
How to Reconcile AdSense and Adsterra Revenue Without Spreadsheets
Every publisher who runs more than one ad network eventually exports two CSV files and tries to make them agree. The totals never match on the first try, and that is normal: the platforms slice days differently, revise estimates on different schedules, and define “this month” differently. The fix is a routine, not more formulas.
Published 3 min read
Why two honest dashboards still disagree
Nearly every discrepancy you will ever find traces back to three structural causes:
- Time zones. AdSense reports and finalizes on its billing time zone (America/Los_Angeles), while Adsterra statistics follow your account time zone. A single UTC day can land on different platform days in each system.
- Estimated versus finalized earnings. AdSense figures are estimates during the month and are finalized early the following month, after invalid-traffic adjustments. Adsterra revises intraday statistics as data settles. In both systems, yesterday's figure is a draft.
- Month boundaries. AdSense closes its monthly cycle at the start of the next month and pays around the 21st to the 26th. A reconciliation run on the first of the month compares a closed month on one side with a still-open month on the other.
A five-step reconciliation routine
| Step | What to do | What it removes |
|---|---|---|
| 1 | Compare the same date range in one fixed time zone | Time zone drift |
| 2 | Wait for AdSense finalization before judging last month | Estimate revisions |
| 3 | Compare daily totals, not just monthly sums | Daily errors that cancel out |
| 4 | Break revenue down per site or domain when totals diverge | Single-site causes hiding in totals |
| 5 | Track the gap as a percentage and investigate past a threshold (1–2% is common) | Alert fatigue |
What a normal discrepancy looks like
Under 1% on a finalized month is usually time zone noise and rounding. Between 1% and 5%, check for a single site whose traffic moved or a day one platform reported and the other missed. Above 5%, or a fully missing day, suspect a sync gap, a changed API key, or a platform-side reporting outage. Look at daily rows rather than monthly sums and find the exact day the two series split.
Where a unified dashboard helps
AdRevFlow stores each platform's reported daily row and places AdSense and Adsterra side by side under one selected date range. The Excel export reproduces the same stored rows shown by the dashboard, so your record and your screen use one source. Platform reporting time zones can still put late-night activity on neighboring dates, so finalized monthly totals remain the authority for payout.
One caveat: we display what each platform's API reports, and finalization still happens on the platform side. Honest numbers beat comforting ones.
Frequently asked questions
- Which number is the real one?
- For payout, each platform's finalized figure is authoritative for its share. For day-to-day decisions, compare the stored daily rows under one date range and keep platform time-zone differences in mind.
- How big a gap is acceptable?
- On a finalized month, under about 1% is normal noise. A persistent gap above that usually traces to one site or one missing day.
- Why did yesterday's revenue change after I recorded it?
- Both platforms revise recent estimates as invalid traffic is filtered and late data arrives. Treat the last two or three days as provisional. AdRevFlow re-reads the last two days on every sync for exactly this reason.