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