使用资源的专用服务是在 Google Ads API 中创建、更新或移除单一资源类型实体的最直接方式。
Mutate 端点
每个可变资源都有对应的服务和操作类型。如需使用专用服务对资源进行变更,请在操作中填充以下字段之一,并将其发送到服务的变更端点:
- 创建 (
create):要创建的新资源对象。 - 更新 (
update):修改后的资源对象,以及指定已更改字段的update_mask。 - 移除 (
remove):要移除的目标资源的resource_name字符串。
例如,如需创建新的 Campaign,请完成以下步骤:
- 使用您选择的属性构建
Campaign对象。 - 将其分配给
CampaignOperation的create字段。 - 在
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 项操作,AdGroupCriterionService.MutateAdGroupCriteria 最多 20,000 项操作;CustomerService.MutateCustomer 接受单数 operation 字段)。默认情况下,请求中的所有操作都会以原子方式执行,除非服务支持 partial_failure 并且您将其设置为 true。
不过,单个资源服务有两个重要限制:
- 单一资源类型:对资源服务的请求只能更改由该特定服务管理的资源。
- 无跨资源临时 ID:由于资源专用 mutate 调用仅接受单一资源类型,因此您无法在同一请求中为父资源(例如
customers/CUSTOMER_ID/campaigns/-1)分配临时负 ID,并从不同类型的子资源(例如AdGroup)中引用该 ID。(对于AdGroupCriterion产品信息组和AssetGroupListingGroupFilter节点等分层树,支持同一资源类型内的自引用临时 ID。)
如果您需要在单个请求中更改多个资源类型,或在不同资源类型之间引用临时资源名称,请改用 GoogleAdsService.Mutate。
版本差异
在更改资源时,请注意受支持的 Google Ads API 版本之间的以下差异:
- 生命周期目标服务:“客户留存”目标在所有受支持的版本中通过
GoalService.MutateGoals(retention_goal_settings) 和CampaignGoalConfigService.MutateCampaignGoalConfigs(campaign_retention_settings) 使用标准重复operations字段进行更改。在 v25 及更高版本中,新客户获取(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,它们在 v23 和 v24 中用于新客户获取,并接受单个operation字段。