AdGroupCriterion.listing_group veya AssetGroupListingGroupFilter bağlamında listeleme grubu filtreleriyle çalışırken entegrasyonunuzu tasarlarken aşağıdaki hususları dikkate alın.
Toplu bölme
AdGroup
Bir toplu işte reklam grubu ölçütleri veya öğe grubu listeleme grubu filtreleri içeren işlemler varsa toplu işteki işlemler, Google Ads API sunucusu tarafından alındığında birden fazla alt topluya bölünür. Bir toplu işte yapılan standart işlemlerden farklı olarak, listeleme grubu filtresi işlemleri içeren her bir alt toplu iş atomik olarak değerlendirilir.
Listeleme grubu filtreleri içeren toplu işlerin alt gruplara bölünme şekli aşağıdaki faktörlere göre belirlenir:
- Listeleme grubu filtresinin türü
- Listeleme grubu filtresi
AdGroupveyaAssetGrouphedefliyor - İşlem sırası
İşlemlerin nasıl gruplandırıldığını göz önünde bulundurun:
- Aynı
AssetGroupöğesini hedefleyen tüm ardışıkAssetGroupListingGroupFilterOperationişlemleri (create,updateveremove) atomik bir alt toplu işlemde birlikte gruplandırılır (kısmi hata davranışı yoktur). - Aynı
AdGroupöğesini hedefleyenLISTING_GROUPölçütleri (AdGroupCriterion.listing_group) için tüm ardışıkAdGroupCriterionOperationişlemleri (create,updateveremove), atomik bir alt grupta (kısmi hata davranışı yok) gruplandırılır. - Diğer tüm ardışık işlemler, atomik olmayan alt toplu işlerde (kısmi hata davranışı) birlikte gruplandırılır.
Aşağıdaki şemada bu kavram gösterilmektedir. Gri kutuların her biri, Google Ads API kullanılarak gönderilen bir toplu işi temsil eder. Gri kutularda, Google Ads API sunucusunun oluşturduğu alt grupları temsil etmek için her bir işlem renge göre gruplandırılır. Gri kutulardaki işlemlerin sırası, işlemlerin toplu işe eklenme sırasına karşılık gelir.
Sınırlamalar
Toplu işler bağlamında listeleme grubu filtreleriyle çalışırken aşağıdaki sınırlamalar geçerlidir:
- Aynı
AdGroupöğesini hedefleyenLISTING_GROUPölçütleri (AdGroupCriterion.listing_group) için ardışıkAdGroupCriterionOperationişlemlerinin (create,updateveremove) tek bir atomik alt grubu, uzunluk olarak 20.000 işlemi aşamaz. Ancak 10.000 işlemi aşmamanız önerilir. HerAddBatchJobOperationsRequest10.000 işlemle sınırlı olduğundan, 10.001 ila 20.000 işlem içeren birAdGroupalt grubu en az iki ardışıkAddBatchJobOperationsisteğiyle yüklenmelidir. - Aynı
AssetGroupöğesini hedefleyen ardışıkAssetGroupListingGroupFilterOperationişlemlerinin (create,updateveremove) tek bir atomik alt grubu 10.000 işlemi aşamaz. - Bu işlem sayısı sınırlarından birinin ihlal edilmesi (veya tek bir alt toplu işlem için sunucunun dahili serileştirilmiş bayt boyutu sınırının aşılması), toplu işi söz konusu alt toplu işlemde iptal eder: Tamamlanmış olan önceki alt toplu işlemler işlenmiş olarak kalırken, ihlalde bulunan alt toplu işlemdeki ve sonraki alt toplu işlemlerdeki tüm işlemler
InternalError.INTERNAL_ERRORhatasıyla başarısız olur.
Sorun giderme
Toplu işteki listeleme grubu filtre işlemleri tek bir işlem olarak işlenir. Bu durum, az sayıda hatalı işlem nedeniyle birçok işlemin başarısız olduğu senaryolara yol açabilir. Ayrıca, BatchJob işlemlerinin işlenme şekli nedeniyle, hataların temel nedeni, alt hatalardan önceki veya sonraki bir dizinde görünebilir.
Örneğin, ListBatchJobResults adlı kullanıcının yanıtı işlenirken:
AdGroupCriterionOperationlisteleme grupları için aynıAdGroupöğesini hedefleyen ardışık işlemlerinCriterionError.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.) hatasıyla başarısız olduğunu görebilirsiniz.AssetGroupListingGroupFilterOperationişlemleri için aynıAssetGroupöğesini hedefleyen ardışık işlemlerinBatchJobError.ASSET_GROUP_LISTING_GROUP_FILTER_TRANSACTION_FAILUREile başarısız olduğunu görebilirsiniz.
Bu hatalar, aynı atomik alt gruptaki başka bir işlem başarısız olduğu için ilgili dizindeki işlemin geri alındığını gösterir. Sorunun temel nedenini belirlemek için aynı AdGroup veya AssetGroup kimliğini paylaşan işlemler için her BatchJobResult içindeki status mesajlarını (işlem hatasının operation_index öncesinde ve sonrasında) yineleyin.