Использование специального сервиса ресурса – это самый прямой способ создания, обновления или удаления объектов одного типа ресурса в Google Ads API.
Конечные точки изменения
Каждому изменяемому ресурсу соответствует определенный тип сервиса и операции. Чтобы изменить ресурс с помощью предназначенного для него сервиса, заполните одно из следующих полей в операции и отправьте ее в конечную точку изменения сервиса:
- Create (
create): создание нового объекта ресурса. - Обновление (
update). Измененный объект ресурса, сопровождаемыйupdate_mask, в котором указаны измененные поля. - Remove (
remove): строкаresource_nameцелевого ресурса, который нужно удалить.
Например, чтобы создать новый Campaign, выполните следующие действия:
- Создайте объект
Campaignс выбранными атрибутами. - Назначьте его полю
createобъектаCampaignOperation. - Отправьте операцию в
MutateCampaignsRequestвCampaignService.MutateCampaigns.
Этот же шаблон применяется ко всем сервисам, связанным с ресурсами, в Google Ads API:
AdGroup. ПередайтеAdGroupOperationвAdGroupService.MutateAdGroups.CampaignCriterion: передайтеCampaignCriterionOperationвCampaignCriterionService.MutateCampaignCriteria.
Ниже приведен пример полезной нагрузки REST JSON для запроса к CampaignService.MutateCampaigns.
{
"customerId": "CUSTOMER_ID",
"operations": [
{
"create": {
"name": "Interplanetary Cruise #1",
"advertisingChannelType": "SEARCH",
"status": "PAUSED",
"manualCpc": {},
"campaignBudget": "customers/CUSTOMER_ID/campaignBudgets/BUDGET_ID",
"containsEuPoliticalAdvertising": "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING"
}
}
],
"partialFailure": false,
"validateOnly": false
}
Несколько операций и ограничений
Большинство запросов mutate, относящихся к определенному ресурсу, принимают повторяющееся поле operations, поэтому один запрос может содержать несколько операций для этого типа ресурса (до 10 000 операций на запрос или 20 000 для AdGroupCriterionService.MutateAdGroupCriteria; CustomerService.MutateCustomer принимает одно поле operation). По умолчанию все операции в запросе выполняются атомарно, если сервис не поддерживает partial_failure и вы не установили для него значение true.
Однако у отдельных сервисов ресурсов есть два важных ограничения:
- Один тип ресурса. Запрос к сервису ресурсов может изменять только ресурсы, управляемые этим сервисом.
- Нельзя использовать временные идентификаторы для разных ресурсов. Поскольку вызов mutate для определенного ресурса принимает только один тип ресурса, вы не можете назначить временный отрицательный идентификатор родительскому ресурсу (например,
customers/CUSTOMER_ID/campaigns/-1) и сослаться на него из дочернего ресурса другого типа (например,AdGroup) в том же запросе. (Временные идентификаторы, ссылающиеся на себя, в пределах одного типа ресурсов поддерживаются для иерархических деревьев, таких как группы товаровAdGroupCriterionи узлыAssetGroupListingGroupFilter).
Если вам нужно изменить несколько типов ресурсов в одном запросе или сослаться на временные названия ресурсов разных типов, используйте GoogleAdsService.Mutate.
Различия между версиями
При изменении ресурсов учитывайте следующие различия между поддерживаемыми версиями Google Ads API:
- Сервисы целей по жизненному циклу. Цели "Удержание клиентов" изменяются во всех поддерживаемых версиях с помощью
GoalService.MutateGoals(retention_goal_settings) иCampaignGoalConfigService.MutateCampaignGoalConfigs(campaign_retention_settings) с использованием стандартного повторяющегося поляoperations. В версии 25 и более поздних версиях привлечение новых клиентов (new_customer_acquisition_goal_settings/campaign_new_customer_acquisition_settings) и удержание постоянных клиентов (loyalty_retention_goal_settings/campaign_loyalty_retention_settings) также изменяются с помощьюGoalService.MutateGoalsиCampaignGoalConfigService.MutateCampaignGoalConfigs. Они заменяют поляCustomerLifecycleGoalService.ConfigureCustomerLifecycleGoalsиCampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals, которые использовались для привлечения новых клиентов в версиях 23 и 24 и принимали одно полеoperation.