Hi all - I'm struggling with this new script and cannot seem to make it work. This version doesn't appear to do anything after testing, which is frustrating. Is this timing out? I'm trying to run a script that will add any placement without specific criteria to a negative placement list. Script is below - any help would be appreciated.
function main() {
var campaignIterator = AdsApp.campaigns()
.withCondition("CampaignType = 'DISPLAY'")
.get();
while (campaignIterator.hasNext()) {
var campaign = campaignIterator.next();
var campaignName = campaign.getName();
var dateRange = "LAST_7_DAYS";
var report = AdsApp.report(
"SELECT Criteria, Clicks, Conversions, Cost, Ctr, ConversionRate, FinalUrls " +
"FROM PLACEMENT_PERFORMANCE_REPORT " +
"WHERE CampaignName = '" + campaignName + "' " +
"AND Clicks > 0 " +
"AND Conversions > 0 " +
"AND Cost > 0 " +
"AND Ctr > 0.1 " +
"AND ConversionRate > 0.05 " +
"AND Cost > 1 " +
"AND Impressions > 50 " +
"DURING " + dateRange);
var rows = report.rows();
while (rows.hasNext()) {
var row = rows.next();
var placementUrl = row["Criteria"];
var finalUrl = row["FinalUrls"];
var clickThroughRate = row["Ctr"];
var conversionRate = row["ConversionRate"];
var cpc = row["Cost"];
if (clickThroughRate > 0.1 || conversionRate > 0.05 || costPerConversion > 1) {
var placement = campaign.display().newPlacementBuilder()
.withUrl(placementUrl)
.build();
var negativePlacementList = AdsApp.negativeKeywordLists().getByName("Block Placements");
negativePlacementList.addNegativePlacement(placement);
Logger.log("Added placement " + placementUrl + " to negative placement list.");
}
}
}
}