I am working on a solution to change tROAS for several PMax campaigns depending on the current weather on the weekend.
1) Fetch weather data, lower tROAS of PMax campaigns & set a label when done -> script is working (runs on Friday)
I can´t get this script to work.
function main() {
var campaignName = '(01) PMax | Inventory all | Productgroup Aggressive | CSS: Google';
var bidAdjustment = 50;
var namelabel = 'Weather';
var label = AdsApp.labels().withCondition("LabelNames CONTAINS 'Weather'").get().next();
var Campaigns = label.Campaigns();
while (Campaigns.hasNext()) {
var Campaigns = Campaigns.next();
Logger.log("Setting new tROAS because ROAS was reduced during Weekend");
setCampaignTRoas(campaignName, bidAdjustment);
}
}
function setCampaignTRoas(name, bidAdjustment) {
var campaignIterator = AdsApp.performanceMaxCampaigns()
.withCondition('
label.name = "Weather"')
.get();
while(campaignIterator.hasNext()) {
var campaign = campaignIterator.next();
const currentTRoas = campaign.bidding().getTargetRoas();
var newTRoas = currentTRoas + bidAdjustment;
campaign.bidding().setTargetRoas(newTRoas);
campaign.removeLabel(namelabel);
}
}