// This script reviews your GDN placements for the following conditions: // 1) Placements that are converting at less than $40 // 2) Placements that have cost more than $50 but haven't converted // 3) Placements that have more than 5K impressions and less than .10 CTR function main() { var body = "

Google Display Network Alert

"; body += "

Placements that are converting at less than $40:

" ; body += ""; body += "

Placements that have cost more than $50 but haven't converted:

" ; body += ""; body += "

Placements that have more than 5K impressions and less than .10 CTR:

" ; body += ""; MailApp.sendEmail('your-email@here.com','Display Network Alerts ', body,{htmlBody: body}); } function runLowCostAndConvertingReport() { list = []; // Any placement detail (individual page) that has converted 2 or more times with CPA below $40 var report = AdWordsApp.report( 'SELECT Url, CampaignName, AdGroupName, Clicks, Impressions, Conversions, Cost ' + 'FROM URL_PERFORMANCE_REPORT ' + 'WHERE Cost < 40000000 ' + 'AND Conversions >= 2 ' + 'DURING LAST_30_DAYS'); var rows = report.rows(); while (rows.hasNext()) { var row = rows.next(); var anonymous = row['Url'].match(/anonymous\.google/g); if (anonymous == null) { var placement = row['Url']; var campaign = row['CampaignName']; var adgroup = row['AdGroupName']; var clicks = row['Clicks']; var impressions = row['Impressions']; var conversions = row['Conversions']; var cost = row['Cost']; var placementDetail = new placementObject(placement, campaign, adgroup, clicks, impressions, conversions, cost); list.push(placementDetail); } } return list; } function runLowCtrAndHighImpressionsReport() { list = []; // Any placement detail (individual page) that has converted 2 or more times with CPA below $40 var report = AdWordsApp.report( 'SELECT Url, CampaignName, AdGroupName, Clicks, Impressions, Conversions, Cost ' + 'FROM URL_PERFORMANCE_REPORT ' + 'WHERE Impressions > 5000 ' + 'AND Ctr < 0.1 ' + 'DURING LAST_30_DAYS'); var rows = report.rows(); while (rows.hasNext()) { var row = rows.next(); var anonymous = row['Url'].match(/anonymous\.google/g); if (anonymous == null) { var placement = row['Url']; var campaign = row['CampaignName']; var adgroup = row['AdGroupName']; var clicks = row['Clicks']; var impressions = row['Impressions']; var conversions = row['Conversions']; var cost = row['Cost']; var placementDetail = new placementObject(placement, campaign, adgroup, clicks, impressions, conversions, cost); list.push(placementDetail); } } return list; } function runHighCostNoConversionsReport() { list = []; // Any placement detail (individual page) that has converted 2 or more times with CPA below $40 var report = AdWordsApp.report( 'SELECT Url, CampaignName, AdGroupName, Clicks, Impressions, Conversions, Cost ' + 'FROM URL_PERFORMANCE_REPORT ' + 'WHERE Cost > 50000000 ' + 'AND Conversions = 0 ' + 'DURING LAST_30_DAYS'); var rows = report.rows(); while (rows.hasNext()) { var row = rows.next(); var anonymous = row['Url'].match(/anonymous\.google/g); if (anonymous == null) { var placement = row['Url']; var campaign = row['CampaignName']; var adgroup = row['AdGroupName']; var clicks = row['Clicks']; var impressions = row['Impressions']; var conversions = row['Conversions']; var cost = row['Cost']; var placementDetail = new placementObject(placement, campaign, adgroup, clicks, impressions, conversions, cost); list.push(placementDetail); } } return list; } function placementObject(placement, campaign, adgroup, clicks, impressions, conversions, cost) { this.placement = placement; this.campaign = campaign; this.adgroup = adgroup; this.clicks = clicks; this.impressions = impressions; this.conversions = conversions; this.cost = cost; } // Helpers function warn(msg) { Logger.log('WARNING: '+msg); } function info(msg) { Logger.log(msg); }