A {@code BulkMutateJob} is essentially a mixed collection of mutateoperations from the following AdWords API campaign management services:
- {@link CampaignService}
- {@link CampaignTargetService}
- {@link CampaignCriterionService}
- {@link AdGroupService}
- {@link AdGroupAdService}
- {@link AdGroupCriterionService}
The mutate operations in a job's request are constructed in exactly the same way as they are for synchronous calls to these services.
The mutate operations are grouped by their scoping entity in the AdWords customer tree. Currently, mutate operations can be grouped either by the customer or by their parent campaign. However, they cannot be grouped both ways - some by customer and others by campaigns - in the same job.
Note: A job may have no more than 500,000 mutate operations in total, and no more than 10 different scoping campaigns.
The mutate operations must be packaged into containers called {@code Operation Streams}, each tagged with the ID of the scoping entity of its operations.
To facilitate the building of very large bulk mutate jobs, the operation streams of a job can be submitted using multiple request parts. A job is queued for processing as soon as it can be determined that all of its request parts have been received.
Note: A job may have no more than 100 request parts. Each part may have no more than 25 operation streams and no more than 10,000 operations in total.