Usar el servicio dedicado de un recurso es la forma más directa de crear, actualizar o quitar entidades de un solo tipo de recurso en la API de Google Ads.
Endpoints de mutación
Cada recurso mutable tiene un servicio y un tipo de operación correspondientes. Para mutar un recurso con su servicio dedicado, completa uno de los siguientes campos en la operación y envíalo al extremo de mutación del servicio:
- Create (
create): Es un objeto de recurso nuevo que se creará. - Actualización (
update): Es el objeto de recurso modificado, acompañado de unupdate_maskque especifica los campos modificados. - Quitar (
remove): Es la cadenaresource_namedel recurso de destino que se quitará.
Por ejemplo, para crear un nuevo Campaign, completa los siguientes pasos:
- Construye un objeto
Campaigncon los atributos que elegiste. - Asigna el valor al campo
createde unCampaignOperation. - Envía la operación en un
MutateCampaignsRequestaCampaignService.MutateCampaigns.
Este mismo patrón se aplica a todos los servicios específicos de recursos en la API de Google Ads:
AdGroup: Pasa unAdGroupOperationaAdGroupService.MutateAdGroups.CampaignCriterion: Pasa unCampaignCriterionOperationaCampaignCriterionService.MutateCampaignCriteria.
La siguiente carga útil JSON de REST ilustra una solicitud a CampaignService.MutateCampaigns:
{
"customerId": "CUSTOMER_ID",
"operations": [
{
"create": {
"name": "Interplanetary Cruise #1",
"advertisingChannelType": "SEARCH",
"status": "PAUSED",
"manualCpc": {},
"campaignBudget": "customers/CUSTOMER_ID/campaignBudgets/BUDGET_ID",
"containsEuPoliticalAdvertising": "DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING"
}
}
],
"partialFailure": false,
"validateOnly": false
}
Varias operaciones y limitaciones
Dado que el campo operations de una solicitud de modificación se repite, una sola solicitud puede contener varias operaciones (hasta 10,000 operaciones por solicitud) para ese tipo de recurso. De forma predeterminada, todas las operaciones de la solicitud se ejecutan de forma atómica, a menos que establezcas partial_failure en true.
Sin embargo, los servicios de recursos individuales tienen dos limitaciones importantes:
- Un solo tipo de recurso: Una solicitud a un servicio de recursos solo puede mutar los recursos administrados por ese servicio específico.
- No hay IDs de recursos temporales ni referencias cruzadas: Las operaciones en una llamada de mutación específica del recurso se procesan de forma independiente. No puedes asignar IDs negativos temporales (como
customers/CUSTOMER_ID/campaigns/-1) ni hacer referencia a entidades creadas recientemente a partir de otras operaciones en la misma solicitud.
Si necesitas mutar varios tipos de recursos en una sola solicitud o hacer referencia a nombres de recursos temporales en operaciones dependientes, usa GoogleAdsService.Mutate en su lugar.
Diferencias específicas de la versión
Ten en cuenta las siguientes diferencias entre las versiones compatibles de la API de Google Ads cuando modifiques recursos:
- Servicios de objetivos de ciclo de vida: En la versión 25 y posteriores, todos los objetivos de ciclo de vida, incluidos los de adquisición de clientes nuevos (
new_customer_acquisition_goal_settings), retención de clientes (retention_goal_settings) y retención de lealtad (loyalty_retention_goal_settings), se modifican a través deGoalService.MutateGoalsyCampaignGoalConfigService.MutateCampaignGoalConfigscon un campooperationsrepetido estándar. Esto reemplaza aCustomerLifecycleGoalService.ConfigureCustomerLifecycleGoalsyCampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals(que se usan para la adquisición de clientes nuevos en la versión 24 y anteriores, y aceptan un campooperationsingular). - Campos de fecha y hora de la campaña: Cuando se crea o actualiza un objeto
Campaign, la versión 23 y las posteriores usanstart_date_timeyend_date_time(yyyy-MM-dd HH:mm:ss), lo que reemplaza los camposstart_dateyend_datesolo de fecha que se usaban en la versión 22. - Mutabilidad de la certificación de contenido sintético: Si bien
Asset.synthetic_content_infoyAd.synthetic_content_infoaparecen en el esquema para la versión 22 y posteriores, los campossynthetic_content_info.advertiser_attestation.statusysynthetic_content_info.advertiser_attestation.sourcesolo son mutables en la versión 23 y posteriores (system_attestationsiempre esOUTPUT_ONLY). Si intentas mutar los subcamposadvertiser_attestationen la versión 22, se mostrará un error de campo inmutable ("The field attempted to be mutated is immutable"o"Field cannot be set").