We are running a budget script that changes the budget of each campaign on a daily bases to make sure the monthly budget is used effectively. This script does not include Shared budgets and I am curious if this is possible to add?
I am no scripter or programmer and I don't know how to include this myself.
But I would be really happy if anyone here could help out by either give tips if this is possible or adjust the script to include Shared budgets as well.
Just like we add the Google sheet link and sheet name, I believe we will have to include the name of the Shared budget as well? There is a part in the script that skips the process if it's part of a shared budget. But I would love to change this so it actually changes shared budget too.
Part:
if (campaign.getBudget().isExplicitlyShared() == 1 ) {
Logger.log("Campaign " + campaign.getName() + " was found but is part of shared budget, skipping...")
See full script below ---
var SETTINGS_SHEET_NAME = "Campaigns"; // the name of the tab where the filters and date range are specified
var SPREADSHEET_URL = "
https://docs.google.com/spreadsheets/d/xxxxxxxxx"; // The URL to the Google spreadsheet with your report template
function main() {
var currentSetting = new Object();
currentSetting.ss = SPREADSHEET_URL;
var settingsSheet = SpreadsheetApp.openByUrl(currentSetting.ss).getSheetByName(SETTINGS_SHEET_NAME);
var dataRow = settingsSheet.getLastRow();
var data = settingsSheet.getRange(1, 1,dataRow,2).getValues();
Logger.log("Starting run!")
Logger.log("Number of rows in document: "+ dataRow)
var campaignCount = 0;
var campaignIterator = AdsApp.campaigns().withCondition("CampaignStatus = ENABLED").get();
while (campaignIterator.hasNext())
{
var campaign = campaignIterator.next();
for (i = 1; i < dataRow; i++){
var driveCampaign = data[i][0];
var driveBudget = data[i][1];
if (driveCampaign == campaign.getName()){
if (campaign.getBudget().isExplicitlyShared() == 1 ) {
Logger.log("Campaign " + campaign.getName() + " was found but is part of shared budget, skipping...")
}
else {
if (isNaN(driveBudget)) {
Logger.log("Campaign " + campaign.getName() + " was found but is not a number, skipping... ")}
else {
if (driveBudget == "") {
Logger.log("Campaign " + campaign.getName() + " was found but is missing a budget, skipping...")}
else {
if (campaign.getBudget().getAmount() == driveBudget) {
Logger.log("Campaign named " + campaign.getName() + " was found but no change in budget, skipping...");
}
else {
Logger.log("Campaign named "+campaign.getName() + " was found! Current budget on "+ campaign.getBudget().getAmount() + " " + AdsApp.currentAccount().getCurrencyCode() + " is updated to "+ driveBudget + " " + AdsApp.currentAccount().getCurrencyCode()) ;
campaign.getBudget().setAmount(driveBudget)
campaignCount++;
break;
}
}
}
}
if (campaign.getName() != driveCampaign){
Logger.log(campaign.getName() + "Kampanj finns inte" + driveCampaign);
}
}
}
}
Logger.log("Run complete! Number of changes made: " + campaignCount)
}