Skip to main content

Import via Google Sheets: requirements & step-by-step guide

Share a Google Sheet with Billy Grace instead of setting up SFTP or BigQuery.

M
Written by Marnix Bregman

In this guide, I'll walk you through connecting a Google Sheet as a custom data import, a third method next to SFTP and BigQuery, available for all four import types.

Google Sheets is the quickest way in if you maintain your data by hand:

  • A good fit for TV and Radio budgets, or any dataset that you already keep in a spreadsheet and update periodically.

  • If your data comes out of a system automatically, SFTP or BigQuery might suit you better.


What you need

  • A Google Sheet with your data in it.

  • The name of the tab that holds the data.

  • Permission to share that spreadsheet with an external email address.


How to connect via Google Sheet?

1. Start your import

  1. Login to your Billy Grace account.

  2. Navigate to Settings → Import Custom Data 'Add Custom Import'.

  3. Give your import a name, add a description if you'd like one, and choose the type of data you're importing.

  4. Choose Google Sheet as your method.

2. Share your spreadsheet with Billy Grace

  1. Copy the service account email shown under 'Your unique service account'.

  2. Open your spreadsheet in Google Sheets, click Share, paste the service account email, and give it Viewer access. Editor access isn't required.

3. Add your sheet details

  1. Copy the URL of your spreadsheet from your browser and paste it into the 'Google Sheet URL' field.

  2. Fill in the exact name of the tab that holds your data in the 'Tab name' field.

  3. Click 'Verify access'. When this succeeds, you'll see 'Access verified' below the URL field.

4. Match the schema and save

  1. Click 'Download Template' to get the columns we expect for the type of data you selected, and make sure the first row of your tab matches those headers.

  2. Continue to the next step. We'll read your tab, check it against the schema, and show you a preview of what we found.

  3. Review the summary and save your import.


Schema

The columns we expect depend on the type of data you are importing. They are the same columns as for SFTP and BigQuery, so the schema in the article for your import type applies here too:

You can also click 'Download Template' inside the form to download a CSV with the correct headers for the type you selected.

A few things are specific to Google Sheets:

  • Your headers must be in the first row of the tab.

  • Format dates as yyyy-MM-dd or yyyy/MM/dd. A Google date cell that displays as '2 Apr 2025' will fail, the same way a badly formatted CSV would.

  • Enter numbers as plain values, without currency symbols or thousand separators.

  • Formulas are fine; we read the value your sheet displays, not the formula behind it.

  • Extra columns that aren't in the template are ignored, so you can keep your own working columns in the same tab.

  • Columns with an empty header cell are ignored.

  • Empty rows at the bottom of your tab are ignored.


Considerations

Your tab is the full dataset. Every time we read your sheet, we take what's in the tab at that moment. Add new months as extra rows in the same tab. If you delete rows from the tab, that data disappears from Billy Grace too.

Don't rename the tab. We look the tab up by name. If you rename it in Google Sheets, the import stops working until you edit the import in Billy Grace and fill in the new name.

Keep the sheet shared. If the spreadsheet is unshared, moved to another Drive, or has its sharing settings tightened, we lose access and the import stops.

One import per tab. You can't create two active imports for the same spreadsheet and tab. To import several datasets from one spreadsheet, put each one in its own tab and create one import per tab.

Validation reads the first 1,000 rows. When you set up or edit an import, we check the first 1,000 rows of your tab — enough to confirm your columns and formats are right.


Schedule the import

It is important that the Google Sheet is available for ingestion at the correct time. Data should be in the tab before 02:00 AM CET (containing the statistics of the day before).

For example, a sheet containing TV data for the 29th of July needs to be updated before 02:00 AM on the 30th of July. If you fail to do this, there will be a day (MTA and LC) lag before you see correct attribution for this channel. For UMM, this could be up to a week, since our UMM model trains every Thursday. On Friday, you will see the numbers from the newly trained model.


Frequently asked questions

Why does Billy Grace say the spreadsheet isn't verified?
We can't open your spreadsheet with the service account. Check that you shared it with the exact email shown in the form, and that it has at least Viewer access.

Why can't Billy Grace find my tab?
The tab name you entered doesn't match a tab in your spreadsheet. Tab names need to match exactly, including spaces and capitals. Note that 'Verify access' only checks that we can open the spreadsheet; the tab name itself is only checked in the next step, so it's possible to pass verification with the wrong tab name still filled in.

Why does Billy Grace say my tab contains no data?
The tab has a header row but no data rows, or it's empty. Add your data and try again.

Can I use the same Google Sheet and tab for more than one import?
No, you can't create two active imports for the same spreadsheet and tab. If you want to import several datasets from one spreadsheet, put each dataset in its own tab and create one import per tab.

Why does Billy Grace say columns are missing?
One or more required columns for your import type aren't in the first row. Download the template and compare it with your header row.

Why does Billy Grace flag duplicate columns?
Two columns in your tab share the same header. Rename one of them.

Why does Billy Grace flag an invalid date format?
At least one date cell is empty or isn't in a format we recognise. Check for blank cells and format the column as plain text in yyyy-MM-dd.


Did this answer your question?