Gdy pracujesz z filtrami grup informacji o produktach w kontekście AdGroupCriterion.listing_group lub AssetGroupListingGroupFilter, podczas projektowania integracji weź pod uwagę te kwestie.
Dzielenie wsadowe
Jeśli w zadaniu wsadowym występują operacje, które zawierają kryteria grupy reklam lub filtry grup informacji o produktach w grupie komponentów, po odebraniu przez serwer interfejsu Google Ads API operacje te są dzielone na kilka podzadań wsadowych. W przeciwieństwie do standardowych operacji w zadaniu wsadowym każda podgrupa zawierająca operacje filtrowania grup informacji o produktach jest traktowana jako niepodzielna.
Sposób, w jaki zadania wsadowe zawierające filtry grup informacji o produktach są dzielone na podzbiory, zależy od tych czynników:
- Typ filtra grupy informacji o produktach
AdGrouplubAssetGroup, na które kieruje filtr grup informacji o produktach- Kolejność działań
Zastanów się, jak są grupowane operacje:
- Wszystkie kolejne operacje
AssetGroupListingGroupFilterOperation(create,updateiremove) dotyczące tego samegoAssetGroupsą grupowane w niepodzielną podgrupę (brak częściowego niepowodzenia). - Wszystkie kolejne operacje
AdGroupCriterionOperation(create,updateiremove) dotyczące kryteriówLISTING_GROUP(AdGroupCriterion.listing_group) kierowanych na ten sam elementAdGroupsą grupowane w niepodzielną podgrupę (brak częściowego niepowodzenia). - Wszystkie pozostałe kolejne operacje są grupowane w nieatomowe podwsady (zachowanie częściowego niepowodzenia).
Tę koncepcję ilustruje poniższy diagram. Każde z szarych pól reprezentuje zadanie wsadowe przesłane za pomocą interfejsu Google Ads API. W szarych polach poszczególne operacje są pogrupowane według kolorów, które reprezentują podzbiory utworzone przez serwer interfejsu Google Ads API. Kolejność operacji w każdym z szarych pól odpowiada kolejności, w jakiej operacje zostałyby dodane do zadania wsadowego.
Ograniczenia
Podczas pracy z filtrami grup informacji o produktach w kontekście zadań wsadowych obowiązują te ograniczenia:
- Pojedyncza niepodzielna podgrupa kolejnych operacji
AdGroupCriterionOperation(create,updateiremove) dotyczących kryteriówLISTING_GROUP(AdGroupCriterion.listing_group) kierowanych na ten sam elementAdGroupnie może przekraczać 20 000 operacji. Zalecamy jednak, aby nie przekraczać 10 000 operacji. Ponieważ każda operacjaAddBatchJobOperationsRequestjest ograniczona do 10 000 operacji, podzbiórAdGroupzawierający od 10 001 do 20 000 operacji musi zostać przesłany w co najmniej 2 kolejnych żądaniachAddBatchJobOperations. - Pojedynczy niepodzielny podzbiór kolejnych operacji
AssetGroupListingGroupFilterOperation(create,updateiremove) kierowanych na ten sam elementAssetGroupnie może przekraczać 10 000 operacji. - Naruszenie któregokolwiek z tych limitów liczby operacji (lub przekroczenie wewnętrznego limitu rozmiaru zserializowanego bajtu dla pojedynczego podzestawu) powoduje przerwanie zadania wsadowego na tym podzestawie: wszystkie wcześniejsze podzestawy, które zostały już ukończone, pozostają zatwierdzone, a wszystkie operacje w podzestawie, który spowodował błąd, oraz we wszystkich kolejnych podzestawach kończą się niepowodzeniem z błędem
InternalError.INTERNAL_ERROR.
Rozwiązywanie problemów
Operacje filtrowania grup informacji o produktach w zadaniu wsadowym są przetwarzane jako jedna transakcja, co może prowadzić do sytuacji, w których wiele operacji kończy się niepowodzeniem z powodu niewielkiej liczby błędnych operacji. Ponadto ze względu na sposób przetwarzania operacji BatchJob główna przyczyna niepowodzeń może pojawić się w indeksie przed niepowodzeniami w dalszej części procesu lub po nich.
Na przykład podczas przetwarzania odpowiedzi z ListBatchJobResults:
- W przypadku grup informacji o produktach
AdGroupCriterionOperationmoże się okazać, że kolejne operacje kierowane na ten sam elementAdGroupnie powiodły się z powodu błęduCriterionError.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.). - W przypadku operacji
AssetGroupListingGroupFilterOperationmoże się okazać, że kolejne operacje kierowane na ten samAssetGroupnie powiodły się z powodu błęduBatchJobError.ASSET_GROUP_LISTING_GROUP_FILTER_TRANSACTION_FAILURE.
Te błędy wskazują, że operacja o tym indeksie została wycofana, ponieważ nie powiodła się inna operacja w tej samej niepodzielnej podgrupie. Aby zidentyfikować główną przyczynę problemu, przejrzyj komunikaty status w każdym BatchJobResult przed i po operation_index błędu transakcji w przypadku operacji o tym samym identyfikatorze AdGroup lub AssetGroup.