While most services provide synchronous APIs, requiring 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.
In addition, BatchJobService
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.
Since 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 them to your jobs, set
partial_failure
to false
in your requests, and use the mutate
method in
GoogleAdsService
instead.
Unsupported operations in BatchJobService
CampaignConversionGoalOperation
ConversionGoalCampaignConfigOperation
CustomConversionGoalOperation
CustomerConversionGoalOperation
CustomerOperation