Solicitações de isenção de política

As solicitações de isenção permitem o envio automático de solicitações de análise de palavras-chave e anúncios que acionam violações de política.

É possível usar este recurso, por exemplo, quando:

  • o anúncio contém sinais de pontuação que normalmente são considerados pouco convencionais, mas que seguem os padrões do setor;
  • a palavra-chave no seu grupo de anúncios contém termos médicos, mas você (ou os usuários) acredita que o uso do termo obedece às políticas do Google AdWords e requer uma análise mais criteriosa.

Nessas situações, sua primeira tentativa de criar o anúncio ou palavra-chave apresentará falha com um PolicyViolationError.

Se você preencheu o conjunto exemptionRequests dos seus anúncios e palavras-chave, eles serão enviados para análise automaticamente. Dependendo do resultado da análise, talvez você seja capaz de reenviar seus anúncios ou palavras-chave com êxito usando a operação ADD.

Importante: não basta reenviar todos os anúncios ou palavras-chave que geram um PolicyViolationError após adicionar as solicitações de isenção. Tente reenviar somente os anúncios ou palavras-chave que, na sua visão, obedecem às nossas políticas de publicidade e requerem uma análise mais criteriosa. Se seus anúncios ou palavras-chave forem reprovados repetidamente por violar nossas políticas de publicidade, sua conta do Google AdWords poderá ser suspensa.

As seções abaixo explicam as etapas necessárias para o envio de solicitações de isenção.

Procurar erros de violação da política em cada operação com falha

Digamos que você esteja criando três anúncios em uma única chamada para AdGroupAdService.mutate():

  • Os anúncios A e B contêm o mesmo termo médico no título.
  • O anúncio B também contém sinais de pontuação não convencionais no título.
  • O anúncio C contém um texto que não está na forma padrão ou que não é fiel ao conteúdo do site de destino.

Quando você envia a chamada de serviço que contém três exemplares de AdGroupAdOperation, a solicitação apresenta falhas com os seguintes erros:

Erro PolicyViolationError.fieldPath PolicyViolationError.isExemptable PolicyViolationKey.policyName
PolicyViolationError 0 (anúncio A) verdadeiro pharma
PolicyViolationError 1 (anúncio B) verdadeiro pharma
PolicyViolationError 1 (anúncio B) verdadeiro nonstandard_punctuation
PolicyViolationError 2 (anúncio C) falso unclear_or_inaccurate_ad_text

Manter as operações com violações de políticas passíveis de isenção

Como os erros das operações 0 e 1 são passíveis de isenção, é possível reenviá-los com solicitações de isenção. No entanto, o erro da operação 2 não é passível de isenção, portanto não há motivo para reenviar a operação.

Atualizar as operações com solicitações de isenção

Para cada operação que você deseja reenviar, será necessário incluir um ou mais exemplares de ExemptionRequest no conjunto ExemptionRequests da operação. Um ExemptionRequest tem apenas um atributo, um PolicyViolationKey, que é composto por:

  • uma string que identifica o nome da política;
  • uma string que identifica o texto que viola a política.

Uma vantagem é que essas informações podem ser consultadas em todos os PolicyViolationError que você encontrar. Conforme mostrado no snippet de código Java a seguir, você pode usar o atributo key de cada PolicyViolationError para o atributo key do ExemptionRequest correspondente.

// Uses a regular expression to find the operation index in the field path.
int operationIndex = Integer.parseInt(matcher.group(1));
AdGroupAdOperation operation = operations.get(operationIndex);
if (policyViolationError.getIsExemptable()) {
  // Adds exemption request to the operation.
  List exemptionRequests;
  if (operation.getExemptionRequests() == null) {
    exemptionRequests = new ArrayList();
  } else {
    exemptionRequests = new ArrayList(
        Arrays.asList(operation.getExemptionRequests()));
  }
  // Uses the key from the PolicyViolationError to construct the ExemptionRequest.
  ExemptionRequest exemptionRequest =
    new ExemptionRequest(policyViolationError.getKey());
  // Adds the ExemptionRequest to the operation's collection of requests.
  exemptionRequests.add(exemptionRequest);
  operation.setExemptionRequests(
      exemptionRequests.toArray(new ExemptionRequest[exemptionRequests.size()]));
} else {
  // Removes the operation with a non-exemptible error from the list of operations
  // to resubmit.
  operations.remove(operationIndex);
}

Reenviar as operações modificadas

Usando o exemplo, neste ponto você terá os seguintes exemplares de AdGroupAdOperation:

  • Um AdGroupAdOperation do anúncio A com uma única solicitação de isenção: o nome de política "pharma" e o texto que viola a política retirados do primeiro PolicyViolationError.
  • Um AdGroupAdOperation do anúncio B com duas solicitações de isenção: uma com o nome de política "pharma" e o texto que viola a política retirados do segundo PolicyViolationError e outra com o nome de política "nonstandard_punctuation" e o texto que viola a política retirados do terceiro PolicyViolationError.

O AdGroupAdOperation do anúncio C foi descartado, pois o PolicyViolationError dele não era passível de isenção.

Depois de fazer tudo isso, você pode enviar os exemplares de AdGroupAdOperation modificados dos anúncios A e B. Essas operações terão êxito e resultarão em dois novos anúncios com análise pendente.

Monitorar o status de aprovação de cada anúncio ou palavra-chave

Como ocorre com outros anúncios novos, é possível enviar solicitações AdGroupAdService.get() ou AdGroupAdService.query() que incluem o campo AdGroupCreativeApprovalStatus periodicamente. Isso é útil para monitorar o anúncio e conferir se ele finalmente foi aprovado ou rejeitado.

Exemplos de código

Cada biblioteca cliente contém dois exemplos de código relacionados a violações de políticas:

  • Lidar com erros de violação de política: este exemplo mostra como identificar e reenviar AdGroupAdOperations que falharam devido a violações de políticas passíveis de isenção.
  • Validar anúncio de texto: este exemplo mostra como enviar anúncios para validação usando o cabeçalho SOAP validateOnly, descrito no guia Estrutura da chamada de API.

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.