在 Google Ads API 中,您可以请求在响应中返回请求中的非阻塞错误。此功能称为警告,可让您在成功请求结束时单独处理非阻塞错误。
仅当上传实体店销售交易的线下数据时,系统才会针对 OfflineUserDataJobService.AddOfflineUserDataJobOperations 方法显示警告。
警告可用于以下两种情形:
如果某项功能即将被弃用,或者未来将推出新的验证规则,系统可能会在响应中提供有关无效请求的警告,以便开发者提前了解其请求即将受到影响。这些警告最终可能会变成错误。
如果服务器遇到不一定会阻止提交当前变异操作的错误,则可能会以警告的形式返回非阻塞错误。
技术详情
如需为某个方法使用此功能,您需要设置相应请求对象的 enable_warnings 字段。例如,您可以指定 AddOfflineUserDataJobOperationsRequest 的 enable_warnings 字段,以从 OfflineUserDataJobService.AddOfflineUserDataJobOperations 方法检索警告。
该服务将根据其他参数(例如 validate_only 和 enable_partial_failure 标志)执行操作。如果 API 调用成功,则在 API 调用期间遇到的非阻塞错误将返回在 warnings 字段中。
用法
假设您要上传实体店销售交易的线下数据。您可以将 item_attribute 指定为可选字段。为此属性提供格式错误的值不会阻止操作成功完成。在这种情况下,有关格式有误的字段的错误详情可能会作为警告检索出来。
创建操作并进行 API 调用
按照常规方式创建 mutate 操作并进行 API 调用。
Java
// Issues a request to add the operations to the offline user data job. AddOfflineUserDataJobOperationsResponse response = offlineUserDataJobServiceClient.addOfflineUserDataJobOperations( AddOfflineUserDataJobOperationsRequest.newBuilder() .setResourceName(offlineUserDataJobResourceName) .setEnablePartialFailure(true) // Enables warnings (optional). .setEnableWarnings(true) .addAllOperations(userDataJobOperations) .build());
C#
// Constructs a request with partial failure enabled to add the operations to the // offline user data job, and enable_warnings set to true to retrieve warnings. AddOfflineUserDataJobOperationsRequest request = new AddOfflineUserDataJobOperationsRequest() { EnablePartialFailure = true, ResourceName = offlineUserDataJobResourceName, Operations = { userDataJobOperations }, EnableWarnings = true, }; AddOfflineUserDataJobOperationsResponse response = offlineUserDataJobServiceClient .AddOfflineUserDataJobOperations(request);
PHP
// Issues a request to add the operations to the offline user data job. /** @var AddOfflineUserDataJobOperationsResponse $operationResponse */ $request = AddOfflineUserDataJobOperationsRequest::build( $offlineUserDataJobResourceName, $userDataJobOperations ); // (Optional) Enables partial failure and warnings. $request->setEnablePartialFailure(true)->setEnableWarnings(true); $response = $offlineUserDataJobServiceClient->addOfflineUserDataJobOperations($request);