Batch Processing

  • BatchJobService enables asynchronous execution of multiple operations across various Google Ads services, reducing the need for synchronous waiting.

  • It supports a wide range of operations, allowing you to manage campaigns, ad groups, ads, criteria, labels, and feed items within a single job.

  • Failed operations due to transient errors like rate limits are automatically retried, ensuring higher reliability.

  • Although it minimizes API requests and retries failed operations, using BatchJobService does not inherently guarantee improved performance; experimentation is crucial to determine its suitability for specific use cases.

  • Certain atomic operations like CampaignConversionGoalOperation, ConversionGoalCampaignConfigOperation, CustomConversionGoalOperation, CustomerConversionGoalOperation, and CustomerOperation are not supported in batch jobs and should be executed using GoogleAdsService instead.

While most services provide synchronous APIs that require you to make a request and then wait for a response, BatchJobService provides a way to perform batches of operations on multiple services without synchronously waiting for the operations to complete.

Unlike service-specific mutate operations, a single job in BatchJobService can operate against a mixed collection of campaigns, ad groups, ads, criteria, labels, and feed items. Submitted jobs run in parallel, and BatchJobService automatically retries operations that fail due to transient errors such as rate limit errors. The Google Ads API still counts each operation towards your daily operation limit, following the API operations counting instructions.

BatchJobService also lets you use temporary IDs within your requests so you can submit dependent operations in a single job.

Operations

BatchJobService supports all of the operations listed in MutateOperation, with a few important exceptions.

Because the Google Ads API executes all operations in a job with partial failure enabled, if a job is cancelled or individual operations fail, operations that succeeded will not be rolled back.

The following operations in MutateOperation must be atomic, and thus, don't support partial failure and are not supported within batch jobs. Avoid adding these operations to your jobs, set partial_failure to false in your requests, and use the mutate method in GoogleAdsService instead.

Unsupported operations in BatchJobService