Bulk Mutates

If you need to operate on different types of entities at the same time or prefer to write against a single endpoint rather than using a separate endpoint per resource type, then you can use the GoogleAdsService.Mutate endpoint for all supported mutate operations.

Mutate operations

Each MutateGoogleAdsRequest accepts a repeated MutateOperation, each of which can include a single operation for one resource type. To create one campaign and one ad group in a single GoogleAdsService.Mutate call, you would need to create two MutateOperation entities (one for the CampaignOperation, the other for the AdGroupOperation), and then pass both to GoogleAdsService.


mutate_operation1 = client.operation(:Mutate)
mutate_operation2 = client.operation(:Mutate)

campaign_operation = client.operation(:Campaign)
ad_group_operation = client.operation(:AdGroup)

# Do some setup here to get campaign_operation and ad_group_operation into the
# state you would want them for a regular mutate call to their respective
# services.

mutate_operation1.campaign_operation = campaign_operation
mutate_operation2.ad_group_operation = ad_group_operation

google_ads_service.mutate(customer_id, [mutate_operation1, mutate_operation2])

Like other services, this endpoint supports partial failure and validate-only.