Google Ads API cung cấp nhiều cách để biến đổi tài nguyên tuỳ thuộc vào trường hợp sử dụng của bạn:
- Dịch vụ tài nguyên biến đổi: Mỗi tài nguyên có thể biến đổi đều có một dịch vụ chuyên dụng thực hiện các thao tác cho loại tài nguyên cụ thể đó. Ví dụ: tài nguyên
Campaignsử dụng điểm cuốiCampaignService.MutateCampaignsđể tạo, cập nhật hoặc xoá chiến dịch. - Thay đổi hàng loạt: Điểm cuối
GoogleAdsService.Mutatebao bọc một chuỗi các thao tác thay đổi trên nhiều loại tài nguyên (và trong phiên bản 23 trở lên, các thao tác được hỗ trợ như đặt trước hoặc báo giá chiến dịch) trong một yêu cầu đồng bộ duy nhất. - Các lô công việc không đồng bộ: Đối với các hoạt động đột biến trên quy mô lớn hoặc khối lượng công việc chạy trong thời gian dài,
BatchJobServicesẽ thực thi các thao tác không đồng bộ mà không gặp phải nguy cơ hết thời gian chờ của yêu cầu đồng bộ. Không giống nhưGoogleAdsService.Mutate,BatchJobServiceluôn thực thi theo ngữ nghĩa lỗi một phần và không hỗ trợ chế độvalidate_onlyhoặc các thao tác hành động (book_campaigns_operation,quote_campaigns_operation). Vì lỗi một phần luôn ở trạng thái hoạt động, nênBatchJobServicesẽ từ chối các thao tác tài nguyên mà dịch vụ cơ bản không hỗ trợ lỗi một phần (chẳng hạn nhưCustomerOperation,CampaignConversionGoalOperation,ConversionGoalCampaignConfigOperation,CustomConversionGoalOperationvàCustomerConversionGoalOperation) bằngMutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE.
Lợi ích của thao tác biến đổi hàng loạt
Việc sử dụng GoogleAdsService.Mutate mang lại những lợi ích sau (xem Các phương pháp hay nhất để sửa đổi để biết hướng dẫn triển khai):
- Các thao tác được nhóm trên nhiều dịch vụ tài nguyên: Trong khi các lệnh gọi dịch vụ tài nguyên riêng lẻ chỉ chấp nhận các thao tác cho một loại tài nguyên duy nhất,
GoogleAdsService.Mutatecho phép bạn thay đổi nhiều loại tài nguyên trong một lệnh gọi. - Tên tài nguyên tạm thời: Bạn có thể chỉ định mã nhận dạng số nguyên âm (chẳng hạn như
customers/CUSTOMER_ID/campaigns/-1) cho các thực thể mẹ mới tạo và tham chiếu những mã nhận dạng tạm thời đó trong các thao tác con trong cùng một yêu cầu.
Với những khả năng này, bạn có thể sử dụng GoogleAdsService.Mutate để tạo toàn bộ hệ phân cấp chiến dịch một cách riêng lẻ để tất cả các thao tác đều thành công hoặc thất bại cùng nhau, hoặc đặt partial_failure thành true để thực hiện các thao tác hợp lệ một cách độc lập.