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