La API de Google Ads proporciona varias formas de mutar recursos según tu caso de uso:
- El servicio de recursos realiza mutaciones: Cada recurso mutable tiene un servicio dedicado que ejecuta operaciones para ese tipo de recurso específico. Por ejemplo, el recurso
Campaignusa el extremoCampaignService.MutateCampaignspara crear, actualizar o quitar campañas. - Mutaciones masivas: El endpoint de
GoogleAdsService.Mutateencapsula una secuencia de operaciones de mutación en varios tipos de recursos (y, en la versión 23 y versiones posteriores, operaciones de acción admitidas, como campañas de reserva o cotización) en una sola solicitud síncrona. - Trabajos por lotes asíncronos: Para mutaciones a gran escala o cargas de trabajo de larga duración,
BatchJobServiceejecuta operaciones de forma asíncrona sin riesgo de que se agote el tiempo de espera de las solicitudes síncronas. A diferencia deGoogleAdsService.Mutate,BatchJobServicesiempre se ejecuta con semántica de falla parcial y no admite el modovalidate_onlyni las operaciones de acción (book_campaigns_operation,quote_campaigns_operation). Debido a que la falla parcial siempre está activa,BatchJobServicerechaza las operaciones de recursos cuyos servicios subyacentes no admiten la falla parcial (comoCustomerOperation,CampaignConversionGoalOperation,ConversionGoalCampaignConfigOperation,CustomConversionGoalOperationyCustomerConversionGoalOperation) conMutateError.OPERATION_DOES_NOT_SUPPORT_PARTIAL_FAILURE.
Beneficios de las mutaciones masivas
El uso de GoogleAdsService.Mutate proporciona los siguientes beneficios (consulta las prácticas recomendadas para Mutate para obtener orientación sobre la implementación):
- Acciones agrupadas en diferentes servicios de recursos: Mientras que las llamadas individuales a los servicios de recursos solo aceptan operaciones para un solo tipo de recurso,
GoogleAdsService.Mutatete permite mutar varios tipos de recursos en una sola llamada. - Nombres de recursos temporales: Puedes asignar IDs de números enteros negativos (como
customers/CUSTOMER_ID/campaigns/-1) a las entidades principales creadas recientemente y hacer referencia a esos IDs temporales en las operaciones secundarias dentro de la misma solicitud.
Con estas capacidades, puedes usar GoogleAdsService.Mutate para crear una jerarquía de campañas completa de forma atómica, de modo que todas las operaciones se realicen correctamente o fallen juntas, o bien establecer partial_failure en true para confirmar las operaciones válidas de forma independiente.