Utilizzare i filtri dei gruppi di schede nei job batch

Quando utilizzi 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 dei batch

Se un job batch contiene operazioni con criteri del gruppo di annunci o filtri del gruppo 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 del gruppo 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:

  1. Tipo di filtro del gruppo di schede
  2. AdGroup o AssetGroup il filtro del gruppo di schede scelto come target
  3. Ordine delle operazioni

Considera il modo in cui sono raggruppate le operazioni:

  • Tutte le operazioni AssetGroupListingGroupFilterOperation consecutive (create, update e remove) che hanno come target lo stesso AssetGroup vengono raggruppate in un batch secondario atomico (nessun comportamento di errore parziale).
  • Tutte le operazioni AdGroupCriterionOperation consecutive (create, update e remove) per i criteri LISTING_GROUP (AdGroupCriterion.listing_group) che hanno come target lo stesso AdGroup vengono raggruppate in un sub-batch atomico (nessun comportamento di errore parziale).
  • Tutte le altre operazioni consecutive vengono raggruppate in sottogruppi non atomici (comportamento di errore parziale).

Il seguente diagramma illustra questo concetto. Ognuna delle caselle grigie rappresenta un job batch inviato utilizzando l'API Google Ads. All'interno delle caselle grigie, le singole operazioni sono raggruppate per colore per rappresentare i sottogruppi creati dal server dell'API Google Ads. L'ordine delle operazioni in ciascuna delle caselle grigie corrisponde all'ordine in cui le operazioni sarebbero state aggiunte al job batch.

Diagramma che mostra le operazioni batch raggruppate in sottobatch

Limitazioni

Quando utilizzi i filtri dei gruppi di schede nel contesto dei job batch, si applicano le seguenti limitazioni:

  • Un singolo sub-batch atomico di operazioni AdGroupCriterionOperation consecutive (create, update e remove) per i criteri LISTING_GROUP (AdGroupCriterion.listing_group) che hanno come target lo stesso AdGroup non può superare le 20.000 operazioni. Tuttavia, è consigliabile non superare le 10.000 operazioni. Poiché ogni AddBatchJobOperationsRequest ha un limite di 10.000 operazioni, un sub-batch AdGroup di 10.001-20.000 operazioni deve essere caricato in almeno due richieste AddBatchJobOperations consecutive.
  • Un singolo sub-batch atomico di operazioni AssetGroupListingGroupFilterOperation consecutive (create, update e remove) che hanno come target lo stesso AssetGroup non può superare le 10.000 operazioni.
  • La violazione di uno di questi limiti del numero di operazioni (o il superamento del limite interno di dimensioni dei byte serializzati del server per un singolo batch secondario) interrompe il job batch in quel batch secondario: tutti i batch secondari precedenti già completati rimangono confermati, mentre tutte le operazioni nel batch secondario incriminato e in tutti i batch secondari successivi non vanno a buon fine con InternalError.INTERNAL_ERROR.

Risoluzione dei problemi

Le operazioni di filtro del gruppo di schede in un job batch vengono elaborate come un'unica transazione, il che può portare a scenari in cui molte operazioni non vanno a buon fine a causa di un numero ridotto di operazioni errate. Inoltre, a causa del modo in cui vengono elaborate le operazioni BatchJob, la causa principale degli errori potrebbe apparire in un indice prima o dopo gli errori downstream.

Ad esempio, quando elabori una risposta da ListBatchJobResults:

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, esamina i messaggi status in ogni BatchJobResult, prima e dopo il operation_index dell'errore della transazione, per le operazioni che condividono lo stesso ID AdGroup o AssetGroup.