Google Ads Script to Check Ad Groups without Expanded Text Ads

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.

4 Comments

  1. 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.

  2. 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)”

  3. 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?