In the beginning of the year, Google made some important changes to it’s ‘Google Ad Grants’ program policy. We started by manually checking the accounts we manage, spending countless hours to find the needle in the haystack. It was repetitive, boring, and definitely not easy to do without any mistakes, so a few months ago, Lou and Laure decided we should automate most of these checks and since it’s for nonprofits we decided the right thing to do would be to give it for free. Please keep in mind that this does not replace human review of your keywords to make sure they relate to the core mission of your nonprofit.
LATEST UPDATE : 02.08.2018 : Reporting Api updated to v201806 . To update and keep your settings copy/paste everything after the main function and replace it or change apiVersion from v201710 to v201806 by doing a search and replace.
Here’s what the Google Ads script checks:
- Detect single-word keywords that are not branded or not in the official authorized list (this list is automatically updated once a week)
- Detect if campaigns with more than 15 conversions over the last 30 days have bidding strategy set to ‘maximize conversion’ to allow bids higher than 2 dollars
- Detect if each campaign has at least 2 active ad groups with at least 2 active text ads
- Detect if each account has at least 2 active sitelinks
- Detect if each campaign has geo-targeting .
- Detect keywords that have a quality score under 3
- Check if CTR is over 5%
All the information you need will be stored in a Google Spreadsheet and you’ll also receive an e-mail that summarizes the report’s content. It should not take you more than 10 minutes to have it up and running.
Step 1 : Copy the Reporting Template Spreadsheet in your Google Drive
- The first thing you need to do is to make a copy of this Google Spreadsheet https://goo.gl/aTZFBe and rename it to something meaningful. Don’t forget to give read/write rights if you’re using a different Drive Account. At this point, the report might not look very exciting, but don’t worry our script will fill it with the data you need. For now, just save the url of your newly created spreadsheet (you will need it later on).
Step 2 : Copy the Script in your Google Ads account
- Open your Google Ads account, click on the ‘tool icon’, navigate to ‘Scripts’ and add a new blank script by clicking on the big blue button with a plus.
- Rename the script to something that makes sense, erase everything inside and copy paste the code below or copy/paste from https://goo.gl/Kqm4A7 inside the container (this installation guide is for the single account version)
Step 3 : Customize, Authorize & Schedule
- Next you need to customize these 3 variables : SPREADSHEETURL, ALERTMAILS & BRANDEDKEYWORDS, this should be quite straigthforward.
- SPREADSHEETURL (on line 19) is the url of the spreadsheet you should have saved at step 1.
- ALERTMAILS (on line 21) contains the list of e-mail addresses that will receive a notification every time the script runs, you can add multiple e-mail addresses separated by commas :
var ALERTMAILS = ['[email protected]','[email protected]'];
If you add multiple e-mails don’t forget to give the e-mail recipients sufficient access rights to the Google Spreadsheet.
- BRANDEDKEYWORDS (on line 23) should contain a list of single keywords related to your brand that the script should ignore in the ‘single keywords’ report tab, you can also add other keywords that you don’t want to see in your reports if you have a good reason to believe they are authorized. Keep in mind that single keywords that contain subsets of these keywords will not appear in your reports for example if you add :
var BRANDEDKEYWORDS = ['super','mybrand'];
The single keyword ‘singlesuperword’ will not appear in the single keywords reports. Please also note that you do not need to include officially authorized keywords here since we already take them into consideration using this spreadsheet https://goo.gl/64SiuB . This list is currently automatically updated weekly using the official list provided by Google (If you prefer to use your own list you can update line 340 with your own spreadsheet as long as the tab name has the exact same name and that the first column contains the list of authorized keywords).
- INCLUDEPAUSED (Optional : on line 25) if you’d like to include paused keywords and active keywords that are in paused campaigns or ad groups you can set this parameter to true or false if you do not want to include data from paused entities.
- Once you’re done setting the parameters click on the ‘Authorize’ button to authorize the script to send you e-mail & read/write to the spreadsheets. Please note that this is a report only script, the script will not modify anything in your account & will not send anything to us or anyone else not defined in the ALERTMAILS variable.
- Click on the PREVIEW link and wait for it to finish, if you followed the set-up correctly there should be no error alerts. After the execution of the preview you should receive an e-mail with a summary of the report and a link to the complete report spreadsheet. Click on the link and check that the report is filled with data.
- You’re almost done! The last step is to save, close and schedule the execution of the report, once per week should be enough for most accounts. Click save and your done, you will now receive an e-mail every week and will be able to check regularly that your Google grants accounts is compliant with the new Google grants rules.
We hope that this script will save you as much time as it did for us by helping you quickly check where you’re account is not respecting the rules. Nevertheless we cannot guarantee that these rules will not have evolved by the time you read this, so it’s up to you to check. Also make sure you are targeting keywords related to the core mission of your nonprofit. We will try to keep this post up to date and will update the script accordingly (until the reports that Google provides to ad Grants account holders are updated). Please also keep in mind that we are not Google and cannot guarantee that the automated checks done on Google’s side are the same as the ones we implemented in this script.