Cuando trabajes con filtros de grupos de fichas en el contexto de un objeto AdGroupCriterion.listing_group o AssetGroupListingGroupFilter, ten en cuenta las siguientes consideraciones cuando diseñes tu integración.
División por lotes
Si hay operaciones en un trabajo por lotes que contienen criterios del grupo de anuncios o filtros del grupo de fichas del grupo de recursos, las operaciones del trabajo por lotes se dividen en varios sublotes cuando las recibe el servidor de la API de Google Ads. A diferencia de las operaciones estándar en un trabajo por lotes, cada sublote que contiene operaciones de filtro de grupos de fichas se trata de forma atómica.
La forma en que los trabajos por lotes que contienen filtros de grupos de fichas se dividen en sub-lotes se determina según los siguientes factores:
- Tipo de filtro de grupo de fichas
- El
AdGroupoAssetGroupal que se segmenta el filtro del grupo de fichas - Orden de las operaciones
Considera cómo se agrupan las operaciones:
- Todas las operaciones
AssetGroupListingGroupFilterOperationconsecutivas (create,updateyremove) que tienen como objetivo el mismoAssetGroupse agrupan en un sub-lote atómico (sin comportamiento de falla parcial). - Todas las operaciones consecutivas de
AdGroupCriterionOperation(create,updateyremove) para los criterios deLISTING_GROUP(AdGroupCriterion.listing_group) que segmentan para el mismoAdGroupse agrupan en un sublote atómico (sin comportamiento de falla parcial). - Todas las demás operaciones consecutivas se agrupan en sub-lotes no atómicos (comportamiento de falla parcial).
En el siguiente diagrama, se ilustra este concepto. Cada una de las casillas grises representa un trabajo por lotes enviado con la API de Google Ads. Dentro de los cuadros grises, las operaciones individuales se agrupan por color para representar los sublotes que crea el servidor de la API de Google Ads. El orden de las operaciones en cada uno de los cuadros grises corresponde al orden en el que se habrían agregado las operaciones al trabajo por lotes.
Limitaciones
Cuando trabajes con filtros de grupos de fichas en el contexto de trabajos por lotes, se aplicarán las siguientes limitaciones:
- Un solo lote secundario atómico de operaciones
AdGroupCriterionOperationconsecutivas (create,updateyremove) para criterios deLISTING_GROUP(AdGroupCriterion.listing_group) dirigidos al mismoAdGroupno puede superar las 20,000 operaciones de longitud. Sin embargo, se recomienda no exceder las 10,000 operaciones. Dado que cadaAddBatchJobOperationsRequesttiene un límite de 10,000 operaciones, se debe subir un lote secundario deAdGroupde 10,001 a 20,000 operaciones en al menos dos solicitudes deAddBatchJobOperationsconsecutivas. - Un solo lote secundario atómico de operaciones
AssetGroupListingGroupFilterOperationconsecutivas (create,updateyremove) que se dirigen al mismoAssetGroupno puede superar las 10,000 operaciones. - Si se incumple cualquiera de estos límites de recuento de operaciones (o se supera el límite interno de tamaño de bytes serializados del servidor para un solo lote secundario), se anula el trabajo por lotes en ese lote secundario: todos los lotes secundarios anteriores que ya se completaron permanecen confirmados, mientras que todas las operaciones del lote secundario infractor y los lotes secundarios posteriores fallan con
InternalError.INTERNAL_ERROR.
Solución de problemas
Las operaciones de filtrado de grupos de fichas en un trabajo por lotes se procesan como una sola transacción, lo que puede generar situaciones en las que muchas operaciones fallan debido a una pequeña cantidad de operaciones erróneas. Además, debido a la forma en que se procesan las operaciones de BatchJob, la causa raíz de las fallas puede aparecer en un índice antes o después de las fallas posteriores.
Por ejemplo, cuando se procesa una respuesta de ListBatchJobResults:
- En el caso de los grupos de fichas
AdGroupCriterionOperation, es posible que las operaciones consecutivas dirigidas al mismoAdGrouphayan fallado 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.). - En el caso de las operaciones de
AssetGroupListingGroupFilterOperation, es posible que las operaciones consecutivas dirigidas al mismoAssetGrouphayan fallado conBatchJobError.ASSET_GROUP_LISTING_GROUP_FILTER_TRANSACTION_FAILURE.
Estos errores indican que la operación en ese índice se revirtió porque falló otra operación en el mismo sublote atómico. Para identificar la causa raíz del problema, itera a través de los mensajes status en cada BatchJobResult (antes y después del operation_index del error de transacción) para las operaciones que comparten el mismo ID de AdGroup o AssetGroup.