AdWords no longer supports the standard text ads, any new text ads generated should use the expanded text ad format. So, if you haven’t made a full transition, you actually need to hurry up and migrate all of your standard ads to the new expanded text ads.
Today, we developed a new simple AdWords script that you might find it helpful in your transition from STAs to ETAs. The script checks all the ad groups in all the accounts that:
# Have no expanded text ads.
# Have less than two expanded text ads.
# Still have active standard text ads.
The script then returns a full report with the campaigns and ad groups that meet the above criteria in a spreadsheet.
You can install the script on either a manager account or a single account. For the MCC version, to ensure processing doesn’t exceed limits, we recommend running the script on a maximum of 50 accounts at a time.
ETA Checker-MCC Script
Here’s the source code for the MCC script, just make sure to replace the spreadsheet URL with your sheet’s URL:-
/**********************
ETA Cheacker
Created by Ahmed Ali, https://optimizationup.com
MCC Version 1.0
**********************/
var SPREADSHEET_URL = 'https://docs.google.com/spreadsheets/d/1x7J5vfen1D2AQNVGg3pjOae33VCkDhOXOEQ-FzJ_K0I/edit#gid=0';
var sheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL).getActiveSheet();
var account = MccApp.accounts().get();
function main() {
sheet.clearContents();
sheet.getRange("A1").setValue("Account ID");
sheet.getRange("B1").setValue("Account Name");
sheet.getRange("C1").setValue("Campaign");
sheet.getRange("D1").setValue("Ad groups");
sheet.getRange("E1").setValue("ETA Count");
sheet.getRange("F1").setValue("Text Ads Count");
var accountIterator = MccApp.accounts().executeInParallel('ETA');
}
function ETA() {
var GetAdGroups = AdWordsApp.adGroups()
.withCondition('Status = ENABLED')
.withCondition("CampaignName DOES_NOT_CONTAIN_IGNORE_CASE 'dsa'")
.withCondition("AdvertisingChannelType = SEARCH")
.withCondition('CampaignStatus = ENABLED')
.get();
for (var row = 2; GetAdGroups.hasNext(); row ++) {
var AdGroups = GetAdGroups.next();
var TextadCount = AdGroups.ads().withCondition('Type=TEXT_AD').withCondition('Status = ENABLED').get().totalNumEntities();
var ETACount = AdGroups.ads().withCondition('Type=EXPANDED_TEXT_AD').withCondition('Status = ENABLED').get().totalNumEntities();
if ((TextadCount > 0) || (ETACount < 2)) {
sheet.appendRow( [AdWordsApp.currentAccount().getCustomerId(),AdWordsApp.currentAccount().getName(), AdGroups.getCampaign().getName(), AdGroups.getName(), ETACount ,TextadCount] );
}
}
}
ETA Checker-Single Account Script
Here’s also the single account version, please also make sure to replace the spreadsheet URL with your sheet’s URL:-
/********************** ETA Cheacker Created by Ahmed Ali, https://optimizationup.com Single Account Version 1.0 **********************/
var SPREADSHEET_URL = 'https://docs.google.com/spreadsheets/d/XXXXXXXXXXXXXX/edit#gid=0'; function main() { var sheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL).getActiveSheet(); sheet.clearContents(); sheet.getRange("A1").setValue("Campaign"); sheet.getRange("B1").setValue("Ad groups"); sheet.getRange("C1").setValue("ETA Count"); sheet.getRange("D1").setValue("Text Ads Count"); var GetAdGroups = AdWordsApp.adGroups() .withCondition('Status = ENABLED') .withCondition('CampaignStatus = ENABLED') .withCondition("AdvertisingChannelType = SEARCH") .withCondition("CampaignName DOES_NOT_CONTAIN_IGNORE_CASE 'dsa'") .get(); for (var row = 2; GetAdGroups.hasNext(); row ++) { var AdGroups = GetAdGroups.next(); var TextadCount = AdGroups.ads().withCondition('Type=TEXT_AD').withCondition('Status = ENABLED').get().totalNumEntities(); var ETACount = AdGroups.ads().withCondition('Type=EXPANDED_TEXT_AD').withCondition('Status = ENABLED').get().totalNumEntities(); if ((TextadCount > 1) || (ETACount < 2)) { sheet.appendRow( [AdGroups.getCampaign().getName(), AdGroups.getName(), ETACount ,TextadCount] ); } } }
Feel free to drop us a comment below if you have any question or a problem regarding the AdWords script.

Ahmed is a Co-Founder of Janby, an AI tool for small and medium business to manage their digital marketing campaigns in one place across multi-channels ads platforms like Google, Facebook and Instagram.
Hey Ahmed,
Thanks so much for sharing this script! I manage an Ad Words account with 30,000+ ad groups and this is a life saver.
Glad to hear that 😉
I got the error “Selector was too large. Cannot call executeInParallel on a selector with more than 50 elements. (file no eta script – ad groups.gs, line 19)”
I’ve just updated this to search for ad groups without Responsive_Search_Ads too! Works well. Is there are way to incorporate ad group spend in the same script?