Hello
I created the followeing script to exclude placments for pmax , demand gen campaigns , but it showing failed in the results .. can you audit thi sscript and tell me what sis wrong ?
function main() {
// Define the list of languages you want to exclude
var languagesToExclude = [
'hi', 'bn', 'mr', 'ta', 'te', 'ur', 'sw', 'am'
];
// Define the list of content labels (categories) you want to exclude
var contentCategoriesToExclude = [
'TRAGEDY', 'RELIGION', 'NON_ADULT', 'BABY_AND_TODDLER', 'PARENTING', 'FOOD_AND_DRINK', 'KITCHEN'
];
// Define the list of channel names/keywords to exclude in placements
var placementKeywordsToExclude = [
'official', 'khan', 'islam', 'muslim', 'story', 'pinoy', 'iqbal',
'cricket', 'aftab', 'amit', 'raj', 'vikram', 'muk', 'kenya', 'azad',
'imran', 'kapoor', 'مطبخ', 'يوميات', 'قصص', 'اطفال', 'طفل', 'حماس',
'اسرائيل', 'سوريا', 'لبنان', 'ايران', 'سلمان', 'سعود', 'وصف',
'شيخ', 'تلاوة', 'سورة', 'ايات', 'تفسير', 'رسول', 'قران'
];
try {
// Get all active campaigns
var campaignIterator = AdsApp.campaigns()
.withCondition('Status = ENABLED')
.get();
if (!campaignIterator.hasNext()) {
Logger.log("No active campaigns found.");
return;
}
while (campaignIterator.hasNext()) {
var campaign = campaignIterator.next();
Logger.log("Processing campaign: " + campaign.getName());
// Exclude languages
for (var i = 0; i < languagesToExclude.length; i++) {
try {
campaign.targeting().languages().excludeLanguage(languagesToExclude[i]);
Logger.log("Excluded language: " + languagesToExclude[i]);
} catch (error) {
Logger.log("Failed to exclude language: " + languagesToExclude[i] + " - " + error.message);
}
}
// Exclude content labels
var contentLabelIterator = campaign.targeting().contentLabelTargets().get();
while (contentLabelIterator.hasNext()) {
var contentLabel = contentLabelIterator.next();
if (contentCategoriesToExclude.includes(contentLabel.getName())) {
try {
contentLabel.exclude();
Logger.log("Excluded content label: " + contentLabel.getName());
} catch (error) {
Logger.log("Failed to exclude content label: " + contentLabel.getName() + " - " + error.message);
}
}
}
// Exclude placements based on channel name keywords
var placementIterator = campaign.display().placements().get();
while (placementIterator.hasNext()) {
var placement = placementIterator.next();
for (var j = 0; j < placementKeywordsToExclude.length; j++) {
if (placement.getUrl().toLowerCase().indexOf(placementKeywordsToExclude[j]) !== -1) {
try {
placement.exclude();
Logger.log("Excluded placement: " + placement.getUrl());
} catch (error) {
Logger.log("Failed to exclude placement: " + placement.getUrl() + " - " + error.message);
}
}
}
}
}
} catch (error) {
Logger.log("An error occurred: " + error.message);
}
}