1. Your AdSense payments
The payments CSV from AdSense. Columns are matched by name (Date, Description, Amount, and Currency when there is one). Type the currency your books are kept in and the rate for each foreign currency below; the rates are yours, from your bank, the ECB or whichever source your books use.
Choose a file or paste the text, then click Read, check and build journals.
Result
Bank check
| Currency | You typed | Rows book to bank | Agrees |
|---|
Journals
| Journal | Date | Account | Debit | Credit | Memo |
|---|
Download
The accounts must already exist in your software under these names or codes. Post the journals, then match each bank deposit to the bank account.
The model, and what it leaves out
- Rows: each row is a dated line with a description and an amount. A description about tax withheld is a withholding row; payment, paid or issued is a payment row; reversal or adjustment is an adjustment; anything else is uncategorised and listed. Amounts are read to cents; European
1.234,56, US1,234.56and bracketed negatives all work. - Withholding: a payment row is taken as the amount that reached the bank, after withholding, and a withholding row as tax Google kept on top. Revenue is the two added together; the withheld part is held as a receivable in its own account (sign of the row does not matter).
- FX: a row in a currency other than your books' currency is valued at a rate you type. By default revenue is booked at the previous month's rate (AdSense pays last month's earnings) and the bank and receivable at the payment-date rate, and the difference is the realised FX line. Rates are looked up on the exact day, else the latest earlier day, else the month. A row with no rate is an error and is left out.
- Bank check: type what actually reached your bank for these rows, in your books' currency; if it does not agree with the rows at your rates, the page says by how much, and you should not post the journal. A different bank rate is the usual cause.
- Month split: one journal per calendar month of payment, each balanced on its own, dated the month end (the last payment date for the final month).
- Not checked: that the export agrees with your AdSense account or your books, how any country taxes the income or the US withholding, rates you did not type, and that the accounts exist in your software.
Common questions
How do I turn YouTube AdSense payments into a journal entry?
Download your payments CSV from AdSense (Payments > Transactions), paste it here, type the currency your books are kept in and the exchange rates, and press Read, check and build journals. The page books each payment to AdSense revenue, any US tax withheld to its own receivable account, the bank deposit, and the realised FX difference, and writes one balanced journal per month.
Why is US tax withheld a separate account?
Creators outside the US who completed Google's tax interview have US tax withheld from their AdSense earnings, and that tax can usually be claimed against their home tax bill. Booking only the net deposit as revenue understates income and loses the credit. This page adds the withheld amount to revenue and holds it as a receivable, so your accountant can claim or write it off.
How is the foreign exchange gain or loss worked out?
AdSense pays last month's earnings, so by default revenue is booked at the rate you type for the previous month and the bank deposit at the rate for the payment date. The difference is the realised FX gain or loss, on its own line. You can switch to booking revenue at the payment-date rate, which leaves no FX line. Rates are base currency per one unit of the payment currency, typed by you from your own source.
What if the export shows the payment before withholding?
The page assumes a payment row is the amount that reached your bank, after withholding, and that a withholding row is tax Google kept on top of it. If your export shows the payment before withholding, revenue will be overstated by the withheld amount. Check one payment against your bank statement and the bank-total check will say so.
Which accounting software can I import to?
Xero (manual journal CSV), QuickBooks Online (journal entry CSV), QuickBooks Desktop (IIF general journal) and a plain CSV for anything else. You can rename the accounts for each category before downloading so they match your chart of accounts.
What does the page do with rows it does not recognise?
It never drops them. A row whose description is not a payment, withholding or adjustment is journalled to an uncategorised account against the bank, and listed so you can review it. A row with a foreign currency and no rate, a bad amount or a bad date is reported as an error and left out of the journal.
Is it safe to paste an AdSense export into a web page?
The page runs in your browser, the file is read locally and nothing is uploaded; a test in the code asserts there are no network calls. Payment exports carry amounts and dates, not your AdSense publisher ID in the columns the page reads.
What does this not check?
Whether the export matches your AdSense account or your books, how your country taxes AdSense income or treats the US withholding, rates other than the ones you type, and account names or codes that must already exist in your accounting software.