No one in the biz likes low-quality scores (QS) and click-through-rates (CTRs). But if you run a grant account, they’re even worse than usual.
If you’re not familiar with how it works, Google Ad Grants are pretty cool. It gives nonprofit organizations free advertising grants of $329 per day. Eligibility, though, comes with a few strict requirements.
To make sure a grant account stays activated, structure and performance need to be tip-top. More specifically, you need to make sure you maintain an average CTR of five percent or above, and your keywords must have a quality score of a minimum of three.
I’ve shared a few scripts in the past that can help account managers stay on top of these conditions, such as this low quality score alert (great for all types of accounts!).
But if you need something a bit more tailored to grant accounts specifically – this one’s for you.
What the script does
This script similar to the n-gram performance script I shared a few years ago but modified with the specific goal of preventing grant accounts from being suspended by including quality scores.
A quick reminder: an n-gram is a phrase made up of n words, where n can be 1 for a one-word 1-gram, a 2-gram is a phrase of two words, and so on.
The script produces a search query report with impressions, average CTR, and calculates an average quality score of search queries containing the n-grams. You can then use filters on the spreadsheet, so it only displays results with CTR < 5% or an average QS < 3.
This will help inform you where strategic 1 or 2 word negatives, for example, could increase your CTR, by ensuring your ad won’t appear on searches with a low chance of getting a click. If you see instances of high performance, you might instead make new ad groups around the n-gram.
It can also help you identify common themes in keywords that give a consistently low-quality score, so you can deal with them more easily by improving ad copy or simply removing any underperforming terms from the account.
The resulting report will pack a punch! You will get the data at campaign-level as well as ad group-level. As a bonus, you’ll also get a word count analysis, showing what amount of words performs best. Here’s a little sneak preview of what you get:
How to use it
To use this script, go to your account in the Google Ads interface, go to Bulk Actions, choose Scripts, then make a new script and paste in the code at the end of this article.
Then make a new Google spreadsheet, and copy and paste its URL in the code options where it says ‘var spreadsheetUrl = “https://docs.google.com/YOUR-SPREADSHEET-URL-HERE”.
You can also edit the following variables according to your needs:
- startDate and endDate in the format of yyyy-mm-dd to set a date range for the script find data for
- Set the currency used with currencySymbol
- With campaignNameContains you can limit the script to only look at specific campaigns (e.g., campaign names containing “Generic”), or with campaignNameDoesNotContain you can exclude certain campaigns.
- You can also ignore paused campaigns with ignorePausedCampaigns and ignore paused ad groups with ignorePausedAdGroups
- Set checkNegatives to true if you want to remove search queries that would be excluded by your negative keywords
- Use minNGramLength and maxNGramLength to set the length of phrases you’re interested in
- If you set clearSpreadsheet to true, the script will overwrite current data in the spreadsheet. You set it to false, then the script’s results will be added on to the sheet’s tabs.
If you have any issues with the script timing out because your account is too big, try running it a few times using campaignNameContains and campaignNameDoesNotContain to look at different campaigns.
Opinions expressed in this article are those of the guest author and not necessarily Search Engine Land. Staff authors are listed here.