Google AdSense payments tool

View finalized AdSense and YouTube payments separately and download them as Excel.

// about

About this Tool

View finalized AdSense and YouTube payments by account and service, verify payment dates and amounts, convert USD amounts to another currency, and export the results to Excel.

How to use it

  1. Paste or enter your input.
  2. Choose the option you need.
  3. Copy or download the result.

Why people use this tool

  • Quick conversions, cleanups, and batch jobs.
  • Helps with debugging, sharing, and content preparation.
  • Useful when you need a result right away.
Guides · Revenue · 8 min read

How Google AdSense and Google Play Payouts Work: Estimated vs Finalised Earnings, FX and Bookkeeping

Once Google revenue starts arriving, the question 'why doesn't the dashboard match my bank deposit?' soon follows. Understanding how earnings are finalised and paid makes monthly reconciliation much easier.

The amount you see in the AdSense dashboard in real time is estimated earnings. After the month ends, Google removes invalid traffic and reviews the figures, and the finalised earnings are usually added to your balance early the following month. Estimated and finalised amounts can therefore differ slightly.

1–31 October   estimated earnings accrue (dashboard)
Early November October earnings finalised → added to balance
~21 November   payment issued if balance ≥ threshold
Days later     funds arrive at the bank
Estimated vs finalised AdSense earnings, the monthly payment timeline and threshold, why payments get held, and how to record foreign-currency income.
Read guide →
Build it with AI

Build this tool yourself with AI

Want your own version of this tool? Copy the work-order prompt into an AI chat, or save the skill file for an AI coding agent. Both describe the features, edge cases and test cases we used when building it.

AI work-order prompt

Paste it as-is into an AI chat such as Claude, ChatGPT or Gemini.

You are an experienced full-stack web developer. Build a web tool called "Google AdSense payments" that meets the requirements below.

## Goal

Build a web tool that signs in with Google, reads finalised AdSense payments, splits them into AdSense and YouTube, applies exchange rates and exports an Excel report.

## Core features

- Google OAuth sign-in requesting only the adsense.readonly scope
- Read accounts and payments via the AdSense Management API
- Classify payments as AdSense or YouTube
- Apply payment-date exchange rates from a public FX API
- Choose a year range and export to Excel (.xlsx)

## Inputs

- Google sign-in
- Year range and target currency

## Outputs

- Payment table (date, amount, source, converted amount)
- Excel file

## Edge cases and handling rules

- Re-authenticate when tokens expire
- Handle zero or multiple AdSense accounts
- Retry and show a clear error when the FX API fails
- Use the previous business day's rate for weekend payments

## Implementation requirements

- Requires a server-side implementation (e.g. ASP.NET Core or Node.js). Keep the OAuth client secret on the server and never commit it.
- Describe Google user data use in the privacy policy and delete tokens immediately when the user disconnects.
- Make the UI responsive and easy to use on mobile; label every input and keep everything keyboard accessible.
- Add a Copy button for results and show clear, friendly error messages for invalid input.
- Keep the core logic in functions separate from the UI so it can be unit-tested.

## Definition of done (test cases)

- Unit-test classification: YouTube items are classified as YouTube
- Excel contains no rows outside the year range
- Rates are applied by payment date

First outline your implementation plan in at most five lines, then write the complete code, and finally explain how to check the test cases above.

Skill (SKILL.md)

Save it as .claude/skills/build-google-adsense-earning/SKILL.md for AI coding agents such as Claude Code to reuse whenever you build or change this tool.

---
name: build-google-adsense-earning
description: Use when building or changing a Google AdSense payments tool. Build a web tool that signs in with Google, reads finalised AdSense payments, splits them into AdSense and YouTube, applies exchange rates and exports an Excel report.
---

# Build: Google AdSense payments

## Goal

Build a web tool that signs in with Google, reads finalised AdSense payments, splits them into AdSense and YouTube, applies exchange rates and exports an Excel report.

## Workflow

1. Review the required features, inputs and outputs below and ask about anything missing first.
2. Implement the core logic as pure functions separate from the UI.
3. Check the logic against the test cases in the verification list.
4. Build a responsive UI with an input form, a result area and a Copy button.
5. Reproduce each edge case listed under Rules and refine the error messages.

## Core features

- Google OAuth sign-in requesting only the adsense.readonly scope
- Read accounts and payments via the AdSense Management API
- Classify payments as AdSense or YouTube
- Apply payment-date exchange rates from a public FX API
- Choose a year range and export to Excel (.xlsx)

## Inputs

- Google sign-in
- Year range and target currency

## Outputs

- Payment table (date, amount, source, converted amount)
- Excel file

## Rules

- Re-authenticate when tokens expire
- Handle zero or multiple AdSense accounts
- Retry and show a clear error when the FX API fails
- Use the previous business day's rate for weekend payments
- Requires a server-side implementation (e.g. ASP.NET Core or Node.js). Keep the OAuth client secret on the server and never commit it.
- Describe Google user data use in the privacy policy and delete tokens immediately when the user disconnects.

## Verification

- [ ] Unit-test classification: YouTube items are classified as YouTube
- [ ] Excel contains no rows outside the year range
- [ ] Rates are applied by payment date

Tips for working with AI

  • Tell the AI your stack (for example React, Vue or plain HTML) on the first line so the code matches your project.
  • Ask it to run the listed test cases and show the results before you accept the code.
  • Never paste real secrets, customer data or API keys into the prompt; use sample values instead.