Использование выделенного сервиса ресурса — это наиболее прямой способ создания, обновления или удаления сущностей одного типа ресурса в API Google Ads.
Мутация конечных точек
Каждый изменяемый ресурс имеет соответствующий тип сервиса и операции. Чтобы изменить ресурс с помощью выделенного для него сервиса, заполните одно из следующих полей операции и отправьте его на конечную точку изменения сервиса:
- Создать (
create): Новый ресурсный объект для создания. - Обновление (
update): Измененный объект ресурса, сопровождаемый маскойupdate_mask, указывающей на измененные поля. - Remove (
remove): Строкаresource_nameцелевого ресурса, который нужно удалить.
Например, для создания новой Campaign выполните следующие шаги:
- Создайте объект
Campaignс выбранными вами атрибутами. - Присвойте его полю
createCampaignOperation. - Отправьте операцию в запросе
MutateCampaignsRequestвCampaignService.MutateCampaigns.
Та же закономерность применима ко всем сервисам, специфичным для конкретных ресурсов, в API Google Ads:
-
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
}
Множество операций и ограничений
Большинство запросов на изменение, специфичных для ресурса, принимают поле "повторяющиеся operations , поэтому один запрос может содержать несколько операций для данного типа ресурса (до 10 000 операций на запрос или 20 000 для AdGroupCriterionService.MutateAdGroupCriteria ; CustomerService.MutateCustomer принимает поле "одна operation "). По умолчанию все операции в запросе выполняются атомарно, если только сервис не поддерживает partial_failure и вы не установите для него значение true .
Однако индивидуальные ресурсные услуги имеют два важных ограничения:
- Тип ресурса: Запрос к службе ресурсов может изменять только ресурсы, управляемые этой конкретной службой.
- Запрещено использование временных идентификаторов для разных ресурсов: поскольку вызов функции изменения, специфичный для ресурса, принимает только один тип ресурса, вы не можете присвоить временный отрицательный идентификатор родительскому ресурсу (например,
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.