Sử dụng bộ lọc nhóm trang thông tin trong các công việc hàng loạt

Khi bạn làm việc với bộ lọc nhóm trang thông tin trong bối cảnh của một AdGroupCriterion.listing_group hoặc một AssetGroupListingGroupFilter, hãy cân nhắc những điều sau khi thiết kế quy trình tích hợp.

Tách lô

Nếu có bất kỳ thao tác nào trong một công việc theo lô chứa tiêu chí nhóm quảng cáo hoặc bộ lọc nhóm trang thông tin của nhóm thành phần, thì các thao tác trong công việc theo lô đó sẽ được chia thành nhiều lô phụ khi máy chủ Google Ads API nhận được. Không giống như các thao tác chuẩn trong một công việc theo lô, mỗi lô phụ chứa các thao tác bộ lọc nhóm trang thông tin đều được coi là một đơn vị riêng biệt.

Cách chia công việc theo lô chứa bộ lọc nhóm trang thông tin thành các lô phụ được xác định theo các yếu tố sau:

  1. Loại bộ lọc nhóm trang thông tin
  2. AdGroup hoặc AssetGroup mà bộ lọc nhóm trang thông tin đang nhắm đến
  3. Độ ưu tiên của toán tử

Hãy xem xét cách nhóm các phép toán:

  • Tất cả các thao tác AssetGroupListingGroupFilterOperation liên tiếp (create, update và remove) nhắm đến cùng một AssetGroup đều được nhóm lại với nhau trong một lô phụ nguyên tử (không có hành vi lỗi một phần).
  • Tất cả các thao tác AdGroupCriterionOperation liên tiếp (create, update và remove) cho tiêu chí LISTING_GROUP (AdGroupCriterion.listing_group) nhắm đến cùng một AdGroup được nhóm lại với nhau trong một lô phụ nguyên tử (không có hành vi lỗi một phần).
  • Tất cả các thao tác liên tiếp khác được nhóm lại với nhau trong các lô phụ không nguyên tử (hành vi không thành công một phần).

Sơ đồ sau đây minh hoạ khái niệm này. Mỗi hộp màu xám đại diện cho một công việc theo lô được gửi bằng Google Ads API. Trong các hộp màu xám, các thao tác riêng lẻ được nhóm theo màu để thể hiện các lô phụ mà máy chủ Google Ads API tạo ra. Thứ tự của các thao tác trong mỗi hộp màu xám tương ứng với thứ tự mà các thao tác đó được thêm vào công việc theo lô.

Sơ đồ minh hoạ các thao tác hàng loạt được nhóm thành các lô phụ

Các điểm hạn chế

Khi làm việc với bộ lọc nhóm trang thông tin trong bối cảnh công việc theo lô, các giới hạn sau sẽ được áp dụng:

  • Một lô phụ nguyên tử duy nhất gồm các thao tác AdGroupCriterionOperation liên tiếp (create, update và remove) cho tiêu chí LISTING_GROUP (AdGroupCriterion.listing_group) nhắm đến cùng một AdGroup không được vượt quá 20.000 thao tác. Tuy nhiên, bạn không nên vượt quá 10.000 thao tác. Vì mỗi AddBatchJobOperationsRequest bị giới hạn ở 10.000 thao tác, nên một lô phụ AdGroup gồm 10.001 đến 20.000 thao tác phải được tải lên trong ít nhất hai yêu cầu AddBatchJobOperations liên tiếp.
  • Một lô phụ nguyên tử duy nhất gồm các thao tác AssetGroupListingGroupFilterOperation liên tiếp (create, update và remove) nhắm đến cùng một AssetGroup không được vượt quá 10.000 thao tác.
  • Nếu bạn vi phạm một trong hai giới hạn về số lượng thao tác này (hoặc vượt quá giới hạn kích thước byte được chuyển đổi tuần tự nội bộ của máy chủ cho một lô phụ), thì công việc theo lô sẽ bị huỷ tại lô phụ đó: mọi lô phụ trước đó đã hoàn tất vẫn được cam kết, trong khi tất cả thao tác trong lô phụ vi phạm và mọi lô phụ tiếp theo đều không thành công và báo lỗi InternalError.INTERNAL_ERROR.

Khắc phục sự cố

Các thao tác lọc nhóm trang thông tin trong một công việc theo lô được xử lý dưới dạng một giao dịch, điều này có thể dẫn đến trường hợp nhiều thao tác không thành công do một số ít thao tác bị lỗi. Hơn nữa, do cách xử lý các thao tác BatchJob, nguyên nhân gốc của lỗi có thể xuất hiện tại một chỉ mục trước hoặc sau lỗi hạ nguồn.

Ví dụ: khi xử lý phản hồi từ ListBatchJobResults:

Những lỗi này cho biết thao tác tại chỉ mục đó đã được khôi phục vì một thao tác khác trong cùng một lô phụ nguyên tử không thành công. Để xác định nguyên nhân gốc của vấn đề, hãy lặp lại thông qua các thông báo status trong mỗi BatchJobResult (trước và sau operation_index của lỗi giao dịch) cho các thao tác có cùng mã nhận dạng AdGroup hoặc AssetGroup.