Khi bạn làm việc với bộ lọc nhóm trang thông tin trong ngữ 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 đây khi thiết kế quy trình tích hợp.
Tách theo lô
Nếu có bất kỳ thao tác nào trong một công việc hàng loạt 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 tài sản, thì các thao tác trong công việc hàng loạt sẽ được chia thành nhiều nhóm con khi được máy chủ Google Ads API nhận. Không giống như các thao tác tiêu chuẩn trong một lô công việc, mỗi lô con chứa các thao tác lọc nhóm trang thông tin đều được xử lý một cách riêng biệt.
Cách chia các lô công việc có chứa bộ lọc nhóm trang thông tin thành các lô phụ được xác định bằng các yếu tố sau:
- Loại bộ lọc nhóm trang thông tin
AdGrouphoặcAssetGroupbộ lọc nhóm trang thông tin đang nhắm đến- Độ ưu tiên của toán tử
Hãy cân nhắc cách nhóm các thao tác:
- Tất cả các thao tác
AssetGroupListingGroupFilterOperationliên tiếp (create,updatevàremove) nhắm đến cùng mộtAssetGroupsẽ được nhóm lại với nhau trong một lô con nguyên tử (không có hành vi thất bạ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ộtAdGroupsẽ được nhóm lại với nhau trong một lô con riêng biệt (không có hành vi thất bạ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ô con không phải là lô con nguyên tử (hành vi thất bại 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 hàng loạt đượ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 để biểu thị các lô phụ mà máy chủ Google Ads API tạo. 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 sẽ được thêm vào lệnh hàng loạt.
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ủa các công việc hàng loạt, bạn phải tuân thủ những hạn chế sau:
- Một lô con 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 bạn phải tải một lô conAdGroupgồm 10.001 đến 20.000 thao tác lên ít nhất 2 yêu cầuAddBatchJobOperationsliên tiếp. - Một lô con 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. - 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ô con) sẽ huỷ bỏ công việc hàng loạt tại lô con đó: mọi lô con trước đó đã hoàn tất vẫn được cam kết, trong khi tất cả các thao tác trong lô con vi phạm và mọi lô con tiếp theo đều không thành công vớ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 lô công việc được xử lý dưới dạng một giao dịch. Điều này có thể dẫn đến các trường hợp mà nhiều thao tác không thành công do một số ít thao tác bị lỗi. Ngoài ra, do cách xử lý các thao tác BatchJob, nguyên nhân gốc của các lỗi có thể xuất hiện ở một chỉ mục trước hoặc sau các lỗi ở hạ lưu.
Ví dụ: khi xử lý phản hồi từ ListBatchJobResults:
- Đối với 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ộtAdGroupkhông thành công vớ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 rằng 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ô con nguyên tử không thành công. Để xác định nguyên nhân gốc rễ của vấn đề, hãy lặp lại 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 dùng chung cùng một AdGroup hoặc mã nhận dạng AssetGroup.