Quando lavori con i filtri dei gruppi di schede nel contesto di un
AdGroupCriterion.listing_group o di un
AssetGroupListingGroupFilter, tieni presente le
seguenti considerazioni durante la progettazione dell'integrazione.
Suddivisione batch
Se in un job batch sono presenti operazioni che contengono criteri del gruppo di annunci o filtri dei gruppi di schede del gruppo di asset, le operazioni nel job batch vengono suddivise in più sub-batch quando vengono ricevute dal server dell'API Google Ads. A differenza delle operazioni standard in un job batch, ogni sub-batch contenente operazioni di filtro dei gruppi di schede viene trattato in modo atomico.
Il modo in cui i job batch contenenti filtri dei gruppi di schede vengono suddivisi in sub-batch è determinato dai seguenti fattori:
- Tipo di filtro dei gruppi di schede
- L'
AdGroupo l'AssetGroupa cui è destinato il filtro dei gruppi di schede - Ordine delle operazioni
Considera come vengono raggruppate le operazioni:
- Tutte le operazioni
AssetGroupListingGroupFilterOperationconsecutive (create,update, eremove) che hanno come target lo stessoAssetGroupvengono raggruppate in un sub-batch atomico (nessun comportamento di errore parziale). - Tutte le operazioni
AdGroupCriterionOperationconsecutive (create,update, eremove) per i criteriLISTING_GROUP(AdGroupCriterion.listing_group) che hanno come target lo stessoAdGroupvengono raggruppate in un sub-batch atomico (nessun comportamento di errore parziale). - Tutte le altre operazioni consecutive vengono raggruppate in sub-batch non atomici (comportamento di errore parziale).
Il seguente diagramma illustra questo concetto. Ogni riquadro grigio rappresenta un job batch inviato utilizzando l'API Google Ads. All'interno dei riquadri grigi, le singole operazioni sono raggruppate per colore per rappresentare i sub-batch creati dal server dell'API Google Ads. L'ordine delle operazioni in ciascuno dei riquadri grigi corrisponde all'ordine in cui le operazioni sarebbero state aggiunte al job batch.
Limitazioni
Quando lavori con i filtri dei gruppi di schede nel contesto dei job batch, si applicano le seguenti limitazioni:
- Un singolo sub-batch atomico di operazioni consecutive
AdGroupCriterionOperation(create,update, eremove) per i criteriLISTING_GROUP(AdGroupCriterion.listing_group) che hanno come target lo stessoAdGroupnon può superare le 20.000 operazioni in lunghezza. Tuttavia, ti consigliamo di non superare le 10.000 operazioni. Poiché ogniAddBatchJobOperationsRequestè limitata a 10.000 operazioni, un sub-batchAdGroupdi 10.001-20.000 operazioni deve essere caricato in almeno due richiesteAddBatchJobOperationsconsecutive. - Un singolo sub-batch atomico di operazioni consecutive
AssetGroupListingGroupFilterOperation(create,update, eremove) che hanno come target lo stessoAssetGroupnon può superare le 10.000 operazioni. - La violazione di uno di questi limiti del numero di operazioni (o il superamento del limite di dimensioni in byte serializzati interni del server per un singolo sub-batch) interrompe il job batch in quel sub-batch: tutti i sub-batch precedenti già completati rimangono impegnati, mentre tutte le operazioni nel sub-batch in violazione e in tutti i sub-batch successivi non riescono con
InternalError.INTERNAL_ERROR.
Risoluzione dei problemi
Le operazioni di filtro dei gruppi di schede in un job batch vengono elaborate come una transazione, il che può portare a scenari in cui molte operazioni non riescono a causa di un piccolo numero di operazioni errate. Inoltre, a causa del modo in cui BatchJob
le operazioni vengono elaborate, la causa principale degli errori potrebbe apparire in un indice
prima o dopo gli errori downstream.
Ad esempio, quando elabori una risposta da
ListBatchJobResults:
- Per
AdGroupCriterionOperationgruppi di schede, potresti scoprire che le operazioni consecutive che hanno come target lo stessoAdGroupnon sono riuscite conCriterionError.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.). - Per
AssetGroupListingGroupFilterOperationoperazioni, potresti scoprire che le operazioni consecutive che hanno come target lo stessoAssetGroupnon sono riuscite conBatchJobError.ASSET_GROUP_LISTING_GROUP_FILTER_TRANSACTION_FAILURE.
Questi errori indicano che è stato eseguito il rollback dell'operazione in quell'indice perché un'altra operazione nello stesso sub-batch atomico non è riuscita. Per identificare la causa principale del problema, scorri i messaggi status in ogni BatchJobResult, prima e dopo l'operation_index dell'errore di transazione, per le operazioni che condividono lo stesso ID AdGroup o AssetGroup.