Usar o serviço dedicado de um recurso é a maneira mais direta de criar, atualizar ou remover entidades de um único tipo de recurso na API Google Ads.
Endpoints de mutação
Cada recurso mutável tem um serviço e um tipo de operação correspondentes. Para fazer uma mutação de um recurso usando o serviço dedicado, preencha um dos seguintes campos na operação e envie para o endpoint de mutação do serviço:
- Criar (
create): um novo objeto de recurso a ser criado. - Atualização (
update): o objeto de recurso modificado, acompanhado de umupdate_maskque especifica os campos alterados. - Remover (
remove): a stringresource_namedo recurso de destino a ser removida.
Por exemplo, para criar um novo Campaign, siga estas
etapas:
- Construa um objeto
Campaigncom os atributos escolhidos. - Atribua-o ao campo
createde umCampaignOperation. - Envie a operação em um
MutateCampaignsRequestparaCampaignService.MutateCampaigns.
Esse mesmo padrão se aplica a todos os serviços específicos de recursos na API Google Ads:
AdGroup:transmita umAdGroupOperationparaAdGroupService.MutateAdGroups.CampaignCriterion:transmita umCampaignCriterionOperationparaCampaignCriterionService.MutateCampaignCriteria.
O payload JSON REST a seguir ilustra uma solicitação para
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
}
Várias operações e limitações
Como o campo operations de uma solicitação de mutação é repetido, uma única solicitação
pode conter várias operações (até 10.000 por solicitação) para esse
tipo de recurso. Por padrão, todas as operações na solicitação são executadas de forma atômica, a menos que você defina partial_failure como true.
No entanto, os serviços de recursos individuais têm duas limitações importantes:
- Tipo de recurso único:uma solicitação para um serviço de recursos só pode mudar recursos gerenciados por esse serviço específico.
- Sem IDs de recursos temporários ou referências cruzadas:as operações em uma
chamada de mutação específica do recurso são processadas de forma independente. Não é possível atribuir IDs negativos temporários (como
customers/CUSTOMER_ID/campaigns/-1) ou referenciar entidades recém-criadas de outras operações na mesma solicitação.
Se você precisar fazer mutações em vários tipos de recursos em uma única solicitação ou referenciar nomes de recursos temporários em operações dependentes, use GoogleAdsService.Mutate.
Diferenças específicas da versão
Considere as seguintes diferenças entre as versões compatíveis da API Google Ads ao fazer mutações em recursos:
- Serviços de meta de ciclo de vida:na v25 e em versões mais recentes, todas as metas de ciclo de vida, incluindo aquisição de novos clientes (
new_customer_acquisition_goal_settings), retenção de clientes (retention_goal_settings) e retenção de fidelidade (loyalty_retention_goal_settings), são modificadas porGoalService.MutateGoalseCampaignGoalConfigService.MutateCampaignGoalConfigsusando um campooperationsrepetido padrão. Isso substituiCustomerLifecycleGoalService.ConfigureCustomerLifecycleGoalseCampaignLifecycleGoalService.ConfigureCampaignLifecycleGoals, que são usados para aquisição de novos clientes na v24 e em versões anteriores e aceitam um campooperationsingular. - Campos de data e hora da campanha:ao criar ou atualizar um
Campaign, a v23 e versões mais recentes usamstart_date_timeeend_date_time(yyyy-MM-dd HH:mm:ss), substituindo os camposstart_dateeend_date, que só têm data e eram usados na v22. - Mutabilidade da atestação de conteúdo sintético:embora
Asset.synthetic_content_infoeAd.synthetic_content_infoapareçam no esquema da v22 e versões mais recentes, os campossynthetic_content_info.advertiser_attestation.statusesynthetic_content_info.advertiser_attestation.sourcesó são mutáveis na v23 e versões mais recentes (system_attestationé sempreOUTPUT_ONLY). A tentativa de mudar os subcamposadvertiser_attestationna v22 retorna um erro de campo imutável ("The field attempted to be mutated is immutable"ou"Field cannot be set").