As discussed in the API structure guide, each top-level resource in the Google Ads API has a corresponding resource-type-specific service that supports:
- Modifying instances of the resource
- Retrieving a single instance of the resource for inspection
This guide will use CampaignService
to
demonstrate modifying and inspecting Campaign
objects, but the same concepts apply to all other resource-type-specific
services.
Changing objects
Each resource-type-specific service will have a mutate method that accepts a mutate request. This request consists of:
- A
customerId
- A collection of operations
- A response content type setting that determines whether the mutable resource or just the resource name should be returned post mutation.
For example, the MutateCampaigns
method of CampaignService
accepts a
MutateCampaignsRequest
that consists
of:
- A
customerId
- A collection of
CampaignOperation
objects - The
response_content_type
field indicating the preferred response type.
Operations
An operation object such as a CampaignOperation
lets you specify the
action that you want to perform on a single resource by setting its operation
field. This field is a
oneof field
consisting of the following attributes whose type is the resource type:
create
- Creates a new instance of the resource.
update
- Updates the resource to match the attributes of the
update
resource. When this field is set, you must also set theupdate_mask
of the operation, which tells the Google Ads API which attributes to modify during the update operation. Each client library has a utility or helper method that will generate theupdate_mask
for you, as demonstrated in our client libraries. remove
- Removes the resource.
Since the operation
field is a oneof
field, you cannot use a single
operation to modify multiple objects. For example, if you want to create one
campaign and remove another campaign, add two instances of CampaignOperation
to your request: one with create
set, and another with remove
set.
Batching operations
Although a single operation can only either create, update, or remove a single resource, a single mutate request can contain multiple operations. You should combine your operations into a single mutate request instead of sending multiple mutate requests that each contain a single operation.
For example, if you want to create ten campaigns, you should send a
single MutateCampaignsRequest
that has ten CampaignOperation
objects.
Mutate responses
What is returned in the response depends on what was sent in the
response_content_type
of the mutate request. For example, if MUTABLE_RESOURCE
was specified, then
the response would contain just the
mutable fields in the campaign. You can then make follow-up mutates on that
resource object without having to reconstruct it.
Mutate errors
The operations in a given mutate request will only be applied to your Google Ads account if every operation in the request succeeds. Check out the common errors guide for a list of common errors and how to address them.