Как обсуждалось в руководстве по структуре API , каждый ресурс верхнего уровня в API Google Ads имеет соответствующую специфичную для типа ресурса службу, которая поддерживает изменение экземпляров ресурса.
В этом руководстве для демонстрации изменения объектов Campaign
будет использоваться CampaignService
, но те же концепции применимы ко всем остальным службам, специфичным для определенного типа ресурсов.
Изменить объекты
Каждый сервис, специфичный для данного типа ресурса, будет иметь метод mutate , принимающий запрос на mutate. Этот запрос состоит из:
-
customerId
- Коллекция операций
- Настройка типа содержимого ответа, которая определяет, следует ли возвращать изменяемый ресурс или только имя ресурса после мутации.
Например, метод MutateCampaigns
службы CampaignService
принимает запрос MutateCampaignsRequest
, состоящий из:
-
customerId
- Коллекция объектов
CampaignOperation
- Поле
response_content_type
указывает предпочтительный тип ответа.
Операции
Объект операции, такой как CampaignOperation
позволяет указать действие, которое требуется выполнить над отдельным ресурсом, задав его поле operation
. Это поле представляет собой поле типа «one-of», состоящее из следующих атрибутов, тип которых соответствует типу ресурса:
-
create
- Создает новый экземпляр ресурса.
-
update
- Обновляет ресурс в соответствии с атрибутами ресурса
update
. При установке этого поля необходимо также задатьupdate_mask
операции, которая сообщает API Google Ads, какие атрибуты следует изменить во время операции обновления. В каждой клиентской библиотеке есть служебный или вспомогательный метод, который сгенерируетupdate_mask
, как показано в наших клиентских библиотеках . -
remove
- Удаляет ресурс.
Поскольку поле operation
является полем oneof
, вы не можете использовать одну операцию для изменения нескольких объектов. Например, если вы хотите создать одну кампанию и удалить другую, добавьте в запрос два экземпляра CampaignOperation
: один с функцией create
set» и другой с функцией remove
set».
Пакетные операции
Хотя одна операция может создавать, обновлять или удалять только один ресурс, один запрос на мутацию может содержать несколько операций. Рекомендуется объединять операции в один запрос на мутацию вместо отправки нескольких запросов на мутацию, каждый из которых содержит одну операцию.
Например, если вы хотите создать десять кампаний, вам следует отправить один MutateCampaignsRequest
, содержащий десять объектов CampaignOperation
.
Мутировать ответы
То, что возвращается в ответе, зависит от того, что было отправлено в response_content_type
запроса на изменение. Например, если было указано MUTABLE_RESOURCE
, то ответ будет содержать только изменяемые поля кампании. После этого вы сможете выполнять последующие изменения этого объекта ресурса без необходимости его реконструкции.
Ошибки мутации
Операции в запросе mutate будут применены к вашему аккаунту Google Ads только в том случае, если все операции в запросе будут выполнены успешно. Ознакомьтесь с руководством по распространённым ошибкам, чтобы ознакомиться со списком распространённых ошибок и способами их устранения.