Script Information
This script will check for any disapproved ads in your Google Ads accounts. This will run across selected accounts within you manager account.
//*** INFO ***//
For more free scripts visit https://digital-expanse.com/google-ads-scripts
//*** Used to check for disapproved ads within Enabled Campaigns & Adgroups. Sends email to a listed group of emails. ***//
//add account CIDs as a comma seperate list in the account ID array
let config = {
accountIDs: ['123-345-5678', '123-345-5678'],
emails: ['example@gmail.com', 'example2@gmail.com']
}
function main() {
let disapprovedArray = new Array();
//Google Ads account iterator
let accountIterator = AdsManagerApp.accounts()
.withIds(config.accountIDs) // Comment out this line if you would like to check all accounts in a manager account.
.get();
//Iterates through accounts
while (accountIterator.hasNext()) {
let account = accountIterator.next();
AdsManagerApp.select(account);
let accountName = account.getName();
Logger.log(`Checking Ads for ${accountName}`)
let adIterator = AdsApp.ads()
.withCondition('ad_group_ad.status = ENABLED')
.withCondition('campaign.status = ENABLED')
.withCondition('ad_group.status = ENABLED')
.withCondition('ad_group_ad.policy_summary.approval_status = DISAPPROVED')
.get()
let count = adIterator.totalNumEntities()
Logger.log(`Found ${count} dissaproved ads for ${accountName}`)
if (count > 0) {
disapprovedArray.push([accountName, count])
}
}
if (disapprovedArray.length > 0) {
let email = createEmail(disapprovedArray)
sendEmail(config.emails.join(','), email)
}
else {
Logger.log(`No disapproved ads found for accounts`)
}
}
function createEmail(array) {
let htmlHead = '<html><head><style type="text/css">.tg{border-collapse:collapse;border-spacing:0;}.tg td{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;overflow:hidden;padding:10px 5px;word-break:normal;}.tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;}.tg .tg-5w1r{background-color:#212735;border-color:inherit;color:#e0a912;text-align:center;vertical-align:middle}.tg .tg-0pky{border-color:inherit;text-align:center;vertical-align:middle}</style></head>'
let htmlBody = '<body><table class="tg"><thead><tr><th class="tg-5w1r">Account Name</th><th class="tg-5w1r">Ads Disapproved</th></tr></thead><tbody>'
let htmlRows = createTableRows(array)
let fullHtml = htmlHead + htmlBody + htmlRows + '</tbody></table><div><a href="https://digital-expanse.com/" target="_blank"><img align="left" border="0" src="https://assets.unlayer.com/projects/114688/1668897510641-secondary-logo-fullcolor.png" alt="" title="" style="outline: none;text-decoration: none;-ms-interpolation-mode: bicubic;clear: both;display: inline-block !important;border: none;height: auto;float: none;width: 20%;max-width: 96px;"width="96" /></a></div></body></html>'
return fullHtml
}
function createTableRows(array) {
let rows = new Array()
array.forEach(e => {
let accountName = e[0]
let count = e[1]
let rowHtml = `<tr><td class="tg-0pky">${accountName}</td><td class="tg-0pky">${count}</td></tr>`
rows.push(rowHtml)
})
return rows.join("")
}
function sendEmail(emailAddress, html) {
MailApp.sendEmail({
to: emailAddress,
name: 'Digital Expanse Scripts',
subject: `Google Ads Disapproved Ads`,
htmlBody: html
});
}