Saat Anda menggunakan filter kelompok listing dalam konteks
AdGroupCriterion.listing_group atau
AssetGroupListingGroupFilter, perhatikan
pertimbangan berikut saat mendesain integrasi Anda.
Pemisahan batch
Jika ada operasi dalam tugas batch yang berisi kriteria grup iklan atau filter kelompok listingan grup aset, operasi dalam tugas batch akan dibagi menjadi beberapa sub-batch saat diterima oleh server Google Ads API. Tidak seperti operasi standar dalam tugas batch, setiap sub-batch yang berisi operasi filter kelompok listingan diperlakukan secara atomik.
Cara tugas batch yang berisi filter kelompok listingan dibagi menjadi sub-batch ditentukan oleh faktor-faktor berikut:
- Jenis filter kelompok listing
AdGroupatauAssetGroupyang ditargetkan oleh filter kelompok listing- Urutan operasi
Pertimbangkan cara pengelompokan operasi:
- Semua operasi
AssetGroupListingGroupFilterOperationberturut-turut (create,update, danremove) yang menargetkanAssetGroupyang sama dikelompokkan bersama dalam sub-batch atomik (tidak ada perilaku kegagalan parsial). - Semua operasi
AdGroupCriterionOperationberturut-turut (create,update, danremove) untuk kriteriaLISTING_GROUP(AdGroupCriterion.listing_group) yang menargetkanAdGroupyang sama dikelompokkan bersama dalam sub-batch atomik (tidak ada perilaku kegagalan parsial). - Semua operasi berurutan lainnya dikelompokkan bersama dalam sub-batch non-atomik (perilaku kegagalan parsial).
Diagram berikut menggambarkan konsep tersebut. Setiap kotak abu-abu mewakili tugas batch seperti yang dikirim menggunakan Google Ads API. Dalam kotak abu-abu, setiap operasi dikelompokkan berdasarkan warna untuk mewakili sub-batch yang dibuat oleh server Google Ads API. Urutan operasi di setiap kotak abu-abu sesuai dengan urutan penambahan operasi ke tugas batch.
Batasan
Saat menggunakan filter kelompok listing dalam konteks tugas batch, batasan berikut berlaku:
- Satu sub-batch atomik dari operasi
AdGroupCriterionOperationberturut-turut (create,update, danremove) untuk kriteriaLISTING_GROUP(AdGroupCriterion.listing_group) yang menargetkanAdGroupyang sama tidak boleh melebihi 20.000 operasi. Namun, sebaiknya jangan melebihi 10.000 operasi. Karena setiapAddBatchJobOperationsRequestdibatasi hingga 10.000 operasi, sub-batchAdGroupyang berisi 10.001 hingga 20.000 operasi harus diupload di setidaknya dua permintaanAddBatchJobOperationsberturut-turut. - Satu sub-batch atomik dari operasi
AssetGroupListingGroupFilterOperationberturut-turut (create,update, danremove) yang menargetkanAssetGroupyang sama tidak boleh melebihi 10.000 operasi. - Melanggar salah satu batas jumlah operasi ini (atau melebihi batas ukuran byte serial internal server untuk satu sub-batch) akan membatalkan tugas batch pada sub-batch tersebut: sub-batch sebelumnya yang sudah selesai tetap di-commit, sedangkan semua operasi dalam sub-batch yang melanggar dan sub-batch berikutnya akan gagal dengan
InternalError.INTERNAL_ERROR.
Pemecahan masalah
Operasi filter kelompok listing dalam tugas batch diproses sebagai satu transaksi, yang dapat menyebabkan skenario saat banyak operasi gagal karena sejumlah kecil operasi yang salah. Selain itu, karena cara operasi BatchJob diproses, akar masalah kegagalan mungkin muncul pada indeks sebelum atau setelah kegagalan downstream.
Misalnya, saat memproses respons dari
ListBatchJobResults:
- Untuk kelompok listing
AdGroupCriterionOperation, Anda mungkin mendapati bahwa operasi berturut-turut yang menargetAdGroupyang sama gagal denganCriterionError.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.). - Untuk operasi
AssetGroupListingGroupFilterOperation, Anda mungkin mendapati bahwa operasi berturut-turut yang menargetkanAssetGroupyang sama gagal denganBatchJobError.ASSET_GROUP_LISTING_GROUP_FILTER_TRANSACTION_FAILURE.
Error ini menunjukkan bahwa operasi pada indeks tersebut di-roll back karena
operasi lain dalam sub-batch atomik yang sama gagal. Untuk mengidentifikasi akar
masalah, lakukan iterasi melalui pesan status
di setiap BatchJobResult—sebelum dan sesudah
operation_index error transaksi—untuk
operasi yang memiliki ID AdGroup atau AssetGroup
yang sama.