El procesamiento por lotes proporciona una forma de enviar un conjunto de operaciones, que pueden ser interdependientes, a varios servicios sin esperar de forma síncrona a que se completen las operaciones. Puedes usar el procesamiento por lotes para crear y administrar campañas de máximo rendimiento.
Esta guía proporciona detalles específicos de las campañas de máximo rendimiento cuando trabajas con el procesamiento por lotes. La guía genérica de procesamiento por lotes proporciona información general sobre el procesamiento por lotes, y la guía de solicitudes de estructura contiene información detallada sobre cómo crear solicitudes para crear o administrar campañas de máximo rendimiento.
Para crear una campaña de máximo rendimiento con el procesamiento por lotes, sigue estos pasos:
Crea un trabajo por lotes nuevo
Sigue el paso de creación de trabajos de procesamiento por lotes general para
crear un recurso BatchJob.
Prepara una lista de operaciones de mutación
Las campañas de máximo rendimiento requieren operaciones para crear varios recursos relacionados, que se detallan en la guía de solicitudes de estructura. Crea un
MutateOperation para cada recurso que se deba incluir
en el trabajo por lotes.
Requisitos de CampaignOperation y CampaignAssetOperation
Cuando los lineamientos de la marca están habilitados para una campaña de máximo rendimiento Campaign (brand_guidelines_enabled se establece de forma predeterminada en true, a menos que lo configures como false o crees una campaña de objetivos de viaje), debes vincular los recursos de marca Asset a la campaña con los recursos CampaignAsset.
Las campañas de máximo rendimiento de Servicios locales no admiten los lineamientos de la marca y omiten los recursos de marca CampaignAsset (establece brand_guidelines_enabled en false cuando crees la campaña). Las campañas de máximo rendimiento de venta minorista (con un feed de Merchant Center) pueden omitir los recursos de marca CampaignAsset en el mismo sublote atómico solo cuando creas una campaña sin recursos personalizados AssetGroupAsset (que no sean recursos HTML5 MEDIA_BUNDLE) o cuando brand_guidelines_enabled se establece en false.
En un trabajo por lotes, crea estos recursos CampaignAsset
inmediatamente después de crear el recurso Campaign (hasta
1,000 operaciones en total en el sublote atómico).
La operación create de Campaign (resource_name) y sus operaciones create de CampaignAsset consecutivas (campaign) deben especificar el mismo ID temporal negativo, y cualquier operación create de AssetOperation de requisito previo debe colocarse antes de la creación de Campaign. Si los recursos CampaignAsset no se crean inmediatamente después del recurso Campaign (cuando los lineamientos de la marca están habilitados; consulta la solución de problemas), la solicitud falla y devuelve un CampaignError que indica que faltan recursos. Incluir las operaciones de creación de CampaignAsset más adelante en la misma lista de operaciones no evitará este error.
Requisitos de AssetGroupOperation y AssetGroupAssetOperation
Cuando creas recursos AssetGroup con recursos Asset asociados usando AssetGroupAsset para cumplir con los requisitos mínimos de recursos, los objetos MutateOperation que crean los recursos AssetGroup y AssetGroupAsset en un trabajo por lotes deben ser secuenciales sin otras operaciones intermedias debido a la forma en que estas operaciones se agrupan en sublotes atómicos (hasta 1,000 operaciones en total por sublote). Especifica el mismo ID temporal negativo en la operación create de AssetGroup (resource_name) y sus operaciones create de AssetGroupAsset consecutivas (asset_group), y coloca cualquier operación create de AssetOperation de requisito previo antes de la creación de AssetGroup. De lo contrario, la solicitud fallará con un mensaje AssetGroupError que indica que faltan algunos recursos, incluso si las operaciones necesarias para cumplir con los requisitos mínimos de recursos se incluyen más adelante en la lista de operaciones.
Prácticas recomendadas de AssetGroupListingGroupFilterOperation
Cuando crees, actualices o quites recursos AssetGroupListingGroupFilter, agrega todas las operaciones AssetGroupListingGroupFilterOperation que se orienten al mismo AssetGroup al trabajo por lotes de forma consecutiva para que las operaciones se agrupen en un sublote atómico durante la división de lotes. Para obtener detalles sobre la división de lotes y otros factores que afectan los grupos de fichas, consulta la guía de procesamiento por lotes de grupos de fichas.
Agrega las operaciones de mutación al trabajo
Agrega las operaciones de mutación del paso 2 a una lista y llama al método AddBatchJobOperations para agregar la lista de mutaciones al trabajo por lotes creado en el paso 1. Sigue el
paso para agregar operaciones de la guía general de procesamiento por lotes
para agregar la lista de operaciones de mutación.
Ejecuta el trabajo por lotes
Para comenzar a ejecutar las operaciones subidas, llama al método RunBatchJob. Consulta el paso Ejecuta el trabajo por lotes
en la guía general de procesamiento por lotes para ver un ejemplo.
Sondea el estado del trabajo y recupera los resultados
Los trabajos por lotes se ejecutan como operaciones de larga duración y, por lo general, tardan en finalizar. Después
de iniciar el trabajo, usa el método Operations.GetOperation
en el servicio google.longrunning.Operations (o consulta
batch_job.status con GoogleAdsService) para
sondear el estado del trabajo hasta que finalice.
Cuando finalice el trabajo por lotes, llama al método ListBatchJobResults para recuperar el estado y la respuesta de cada operación del trabajo. Para ver un ejemplo, consulta
Enumera todos los resultados de los trabajos por lotes.