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:
- Loại bộ lọc nhóm trang thông tin
AdGrouphoặcAssetGroupmà bộ lọc nhóm trang thông tin đang nhắm đến- Độ ư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
AssetGroupListingGroupFilterOperationliên tiếp (create,updatevàremove) nhắm đến cùng mộtAssetGroupđề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
AdGroupCriterionOperationliên tiếp (create,updatevàremove) cho tiêu chíLISTING_GROUP(AdGroupCriterion.listing_group) nhắm đến cùng mộtAdGroupđượ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ô.
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
AdGroupCriterionOperationliên tiếp (create,updatevàremove) cho tiêu chíLISTING_GROUP(AdGroupCriterion.listing_group) nhắm đến cùng mộtAdGroupkhô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ỗiAddBatchJobOperationsRequestbị giới hạn ở 10.000 thao tác, nên một lô phụAdGroupgồm 10.001 đến 20.000 thao tác phải được tải lên trong ít nhất hai yêu cầuAddBatchJobOperationsliên tiếp. - Một lô phụ nguyên tử duy nhất gồm các thao tác
AssetGroupListingGroupFilterOperationliên tiếp (create,updatevàremove) nhắm đến cùng mộtAssetGroupkhô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:
- Đối với các nhóm trang thông tin
AdGroupCriterionOperation, bạn có thể thấy rằng các thao tác liên tiếp nhắm đến cùng mộtAdGroupđã không thành công và có lỗiCriterionError.LISTING_GROUP_ERROR_IN_ANOTHER_OPERATION(Product group operations are atomic within the same ad group. This operation failed because another operation targeting the same ad group ID was invalid.). - Đối với các thao tác
AssetGroupListingGroupFilterOperation, bạn có thể thấy các thao tác liên tiếp nhắm đến cùng mộtAssetGroupkhông thành công vớiBatchJobError.ASSET_GROUP_LISTING_GROUP_FILTER_TRANSACTION_FAILURE.
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.