Skip to content

Instantly share code, notes, and snippets.

@rfharmon
Created January 3, 2017 20:29
Show Gist options
  • Save rfharmon/ace1b11592db3f3718d13901b3c6024a to your computer and use it in GitHub Desktop.
Save rfharmon/ace1b11592db3f3718d13901b3c6024a to your computer and use it in GitHub Desktop.
Pauses extra ads in AdWords ad groups.
// Enter the maximum number of ads you want running in an ad group.
var maxAds = 2;
function main() {
var getAccount = MccApp.accounts().get();
while (getAccount.hasNext()) {
var account = getAccount.next();
MccApp.select(account);
var accountName = account.getName();
Logger.log("Account: " + accountName);
var adGroupIterator = AdWordsApp
.adGroups()
.withCondition('CampaignStatus=ENABLED')
.withCondition('Status=ENABLED')
.withCondition('AdNetworkType1 IN [SEARCH]')
.withCondition('CampaignStatus = ENABLED')
.get();
while (adGroupIterator.hasNext()) {
var adGroup = adGroupIterator.next();
var adGroupName = adGroup.getName();
var adGroupId = adGroup.getId();
var campaign = adGroup.getCampaign();
var campaignName = campaign.getName();
var adIterator = AdWordsApp
.ads()
.withCondition('AdNetworkType1 IN [SEARCH]')
.withCondition('CampaignName = "' + campaignName + '"')
.withCondition('AdGroupName = "' + adGroupName + '"')
.withCondition('Status = ENABLED')
.get();
var adSet = [];
var adSetContainer = [];
var adCount = adIterator.totalNumEntities();
if (adCount > maxAds) {
Logger.log("There are " + adCount + " enabled ads in the " + adGroupName + " ad group of the " + campaignName + " campaign.");
while (adIterator.hasNext()) {
var ad = adIterator.next();
adSet.push(ad);
}
for (thisAd in adSet) {
var stats = adSet[thisAd].getStatsFor("ALL_TIME");
var adId = adSet[thisAd].getId();
var ctr = stats.getCtr();
var adSets = {
theId: adId,
theCtr: ctr,
theAdGroupId: adGroupId
};
adSetContainer.push(adSets);
adSetContainer.sort(function(a, b) {
return a.theCtr - b.theCtr
});
}
for (var extraAdCounter = 0; extraAdCounter < (adCount - maxAds); extraAdCounter++) {
var idOne = adSetContainer[extraAdCounter].theId;
var agIdOne = adSetContainer[extraAdCounter].theAdGroupId;
var idAdIter = AdWordsApp.ads().withIds([
[agIdOne, idOne]
]).get();
while (idAdIter.hasNext()) {
var pausedAdNumber = extraAdCounter + 1;
Logger.log("Pausing Low Performing Ad #" + pausedAdNumber);
var extraAd = idAdIter.next();
extraAd.pause();
}
}
}
}
}
}
@KharSoul
Copy link

This script disable all Ads with lower CTR? Could be done with lower CR?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment