Planning Ahead for Shared Budget APIs

As you may have already read, Bing Ads will begin piloting shared campaign budgets in September. You will be able to set a single daily budget that can be used by any campaign within the same account. This will enable you to efficiently distribute a single daily budget across all campaigns or across a defined group of campaigns within your Bing Ads account.

Say you have a budget of $20 to be used uniformly between two campaigns every day. On a given day Campaign A spends only $8 (of its $10 budget) because it got a smaller amount of impressions and clicks than normal. Using a Shared Budget, if Campaign B is performing well then Bing Ads will automatically take the unutilized $2 and allocate it to Campaign B. This will increase the chances of that unutilized budget being used to send your more traffic.


Using Shared Budgets

You can add, get, update, and delete the following shared budget properties.



You can get and associate a shared budget with a campaign using the following campaign properties.



Avoiding Breaking Changes with Shared Budgets

It is important to note that whether or not your application uses shared budgets, you probably need to make some code changes to continue managing campaigns. Specifically if a campaign uses a shared budget, then you cannot change the budget amount using the Campaign record (Bulk API) or Campaign object (Campaign Management API). If you try to update the budget amount of a campaign that uses a shared budget, the service operation will return the CampaignServiceCannotUpdateSharedBudget error code. If you make other updates to the campaign without changing the budget amount, this error will not be returned.

Before you try to update the budget of a campaign you should check the value of the shared budget ID. If the shared budget ID is greater than zero, then the campaign is using a shared budget. If the shared budget ID is null or empty then the campaign is not using a shared budget.

  • Bulk API: Check the Shared Budget Id field of the Campaign record.
  • Campaign Management API: Check the BudgetId element of the Campaign object. The BudgetId element is not returned in the Campaign object by default, so you will need to include BudgetId in the ReturnAdditionalFields flag of the GetCampaignsByAccountId and GetCampaignsByIds operations.


Getting Started

We plan to release sandbox support for shared budgets later this summer. We'll be sure to make an announcement on the API blog once MSDN documentation and SDKs are available. You will then be able to write code to manage shared budgets, and also check whether or not a campaign uses a shared budget before attempting to update the campaign budget amount. Even today without the updated proxies you can prepare your application to handle the CampaignServiceCannotUpdateSharedBudget error.


Deprecation of Monthly Budgets

Separately we want to provide early notification that we plan to stop supporting monthly budgets in calendar 2017. As mentioned above, shared budgets will not support the monthly budget type at all. There will be a forced migration next calendar year where all campaign level unshared budgets will be rationalized as daily in parallel with the monthly budget deprecation. Moving campaign budgets to daily budget is encouraged before monthly budgets are deprecated. The formula that will be used to convert monthly to daily budgets is: Monthly budget amount / 30.4. If the result of division falls below the minimum campaign budget, the budget will be set to the minimum.