Budgets

Stay organized with collections Save and categorize content based on your preferences.

Set a campaign budget

function setCampaignBudget(name, amount) {
  const campaignIterator = AdsApp.campaigns()
      .withCondition(`campaign.name = '${name}'`)
      .get();
  if (!campaignIterator.hasNext()) {
    throw new Error(`No campaign with name '${name}' found.`);
  }
  const campaign = campaignIterator.next();
  campaign.getBudget().setAmount(amount);
}

Get campaign budget

function getBudgetForCampaign(campaignName) {
  const campaignIterator = AdsApp.campaigns()
      .withCondition(`campaign.name = '${name}'`)
      .get();
  if (!campaignIterator.hasNext()) {
    throw new Error(`No campaign with name '${name}' found.`);
  }
  const campaign = campaignIterator.next();
  return campaign.getBudget();
}

Log campaign budget details

function logBudgetDetails(campaignName) {
  const campaignIterator = AdsApp.campaigns()
      .withCondition(`campaign.name = '${campaignName}'`)
      .get();
  if (!campaignIterator.hasNext()) {
    throw new Error(`No campaign with name '${campaignName}' found.`);
  }
  const campaign = campaignIterator.next();
  const budget = campaign.getBudget();

  console.log(`Budget amount: ${budget.getAmount()}`);
  console.log(`Delivery method: ${budget.getDeliveryMethod()}`);
  console.log(`Explicitly shared: ${budget.isExplicitlyShared()}`);

  // If this is a shared budget, log all the associated campaigns.
  // If this is not a shared budget, don't bother since the only associated
  // campaign is the one specified by 'campaignName'.
  if (budget.isExplicitlyShared()) {
    const budgetCampaignIterator = budget.campaigns().get();
    console.log(`=======`);
    console.log(`Associated campaigns (${budgetCampaignIterator.totalNumEntities()}):`);

    for (const associatedCampaign of budgetCampaignIterator) {
      console.log(associatedCampaign.getName());
    }
  }
}