更改资源

Google Ads API 提供了多种根据您的使用情形来更改资源的方式:

  • 资源服务发生变动:每个可变资源都有一个专用服务,用于执行针对该特定资源类型的操作。例如,Campaign 资源使用 CampaignService.MutateCampaigns 端点来创建、更新或移除广告系列。
  • 批量更改:GoogleAdsService.Mutate 端点将多个资源类型的一系列更改操作(以及 v23 及更高版本中支持的操作,例如预订或报价广告系列)封装在单个同步请求中。
  • 异步批处理作业:对于大规模突变或长时间运行的工作负载,BatchJobService 会异步执行操作,而不会有同步请求超时的风险。与 GoogleAdsService.Mutate 不同,BatchJobService 始终在部分失败语义下执行,并且不支持 validate_only 模式或操作操作(book_campaigns_operation、quote_campaigns_operation)。由于部分失败始终处于有效状态,因此如果资源操作的底层服务不支持部分失败(例如 CustomerOperation、CampaignConversionGoalOperation、ConversionGoalCampaignConfigOperation、CustomConversionGoalOperation 和 CustomerConversionGoalOperation),BatchJobService 会使用 MutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE 拒绝该操作。

批量更改的优势

使用 GoogleAdsService.Mutate 可带来以下好处(如需了解实现指南,请参阅突变最佳实践):

  • 跨不同资源服务的分组操作:单个资源服务调用仅接受针对单个资源类型的操作,而 GoogleAdsService.Mutate 可让您在一个调用中更改多种资源类型。
  • 临时资源名称:您可以为新创建的父实体分配负整数 ID(例如 customers/CUSTOMER_ID/campaigns/-1),并在同一请求中的子操作中引用这些临时 ID。

借助这些功能,您可以使用 GoogleAdsService.Mutate 以原子方式创建整个广告系列层次结构,以便所有操作一起成功或一起失败;也可以将 partial_failure 设置为 true,以独立提交有效操作。