Export (0) Print
Expand All

Using Bing Ads Services Efficiently

The following are points to consider when writing applications that efficiently access the Bing Ads web services.

There is no specific limit to the number of concurrent connections that you can have; however, you should limit the number of threads that you use to 10. This will help prevent the servers from reaching their capacity, and your threads from waiting in a queue to be processed.

Store Your Entity Identifiers Locally

You should maintain a local store of your account and campaign entities. Specifically, you should locally store the identifiers of your accounts, customers, campaigns, ad groups, and keywords. Most calls require the identifier of the entity. If you store the identifier, you eliminate the call that is required to get the identifier.

For example, many of the campaign management calls require an account identifier. To get the account identifier, you can use the customer management service. However, instead of calling the service repeatedly, store the account identifier locally, so that you can use it in subsequent calls.

Manage the Overhead Associated with Making Web Service Calls

The following are the overhead costs, in processing time, that are associated with each web service call.

  • Establishing an HTTPS connection to the web service.

  • Authenticating the user name and password.

  • Validating the developer token.

These costs occur whether you process a single item or a set of items. To minimize overhead, in general, you should try to process as many items in one call as possible. For example, instead of calling UpdateCampaigns for each campaign that you want to update, call it only once for multiple campaigns that you want to update.

Because of the costs associated with establishing a connection to a web service, you should maintain the connection for as long as it is needed. For example, if you need to request multiple reports, use the same reporting service client object for all reporting service operation calls. Explicitly close the connection when you no longer need the service.

Update Entities Efficiently

When you update entities with the campaign management service, such as campaigns, ad groups, ads, and keywords, the service updates all fields that are not null. You should set all fields that you are not updating to null, unless otherwise indicated by the documentation for the corresponding data object.

Note that the customer management service performs a full update of entities, so you must provide values for all fields that you do not want to be null.

Handle Throttling

Throttling extremely high-volume usage maintains fair usage for all Bing Ads clients.

Ad Intelligence and Campaign Management

For Ad Intelligence and Campaign services, throttling limits the number of calls to the API that any one user can make in a minute’s time. 

At the customer level, the number of calls a customer can make to the customer data is restricted using a sliding protocol with a 60 second window. 

Should you hit the service call limit, you will see the following error:

  • Numeric Error Code: 117

  • Symbolic Error Code: CallRateExceeded

  • Message: You have exceeded the number of calls that you are allowed to make in a minute. Please reduce the number of calls that you make per minute. 

When you observe this error, you can resubmit the request under the limit after waiting 60 seconds.


For GetBulkUploadUrl, a limit of 100 calls every 15 minutes is allowed per account.

Should you hit the service call limit, you will see the following error:

  • Numeric Error Code: 4204

  • Symbolic Error Code: BulkServiceNoMoreCallsPermittedForTheTimePeriod

  • Message: No more calls will be permitted for this account for the current time period. 

When you observe this error, you can resubmit the request under the limit after waiting 15 minutes.

Community Additions

© 2014 Microsoft