Proteção contra mensagens duplicadas
Uma mensagem duplicada é a segunda e cada uma das mensagens seguintes com o mesmo texto enviadas para o mesmo número. Raramente acontece de propósito — é mais frequente resultar da repetição de uma chamada à API após um tempo limite excedido, de um duplo clique num botão ou de um número que aparece várias vezes na lista de destinatários. O BulkGate protege-o contra isso, mas as rotas transacional e promocional tratam-no de forma diferente.
Em que diferem as duas proteções
| Mensagem transacional | Mensagem promocional | |
|---|---|---|
| O que vigia | a mesma mensagem repetida ao longo do tempo | destinatários duplicados numa lista |
| Alcance | entre pedidos, uma janela de 5 minutos | apenas dentro de um único pedido |
| Estado predefinido | desativada | desativada |
| O que irá ver | a mensagem falha com duplicity_message |
o destinatário desaparece discretamente da lista |
Mensagens transacionais: a mesma mensagem repetida ao longo do tempo
Ativa-se com o parâmetro duplicates_check na API transacional ou transacional simples. Aceita on e off (também entende true/false, 1/0, yes/no), e o valor predefinido é off.
Quando está ativada, o BulkGate memoriza esta combinação para cada mensagem enviada:
| Parte da impressão digital | Nota |
|---|---|
| Conta | aplica-se a todas as aplicações (application_id) de uma carteira |
| Canal | o mesmo texto por SMS e por Viber são duas mensagens diferentes |
| Número de telefone | no formato internacional |
| Texto da mensagem | tem de coincidir carácter a carácter — um nome, uma hora ou um código diferente tornam-na uma mensagem diferente |
Se chegar uma mensagem com a mesma impressão digital no prazo de cinco minutos, o BulkGate descarta-a e esta nunca chega ao operador.
A janela de cinco minutos começa com a primeira mensagem e as tentativas descartadas não a prolongam. Quando expira, a mesma mensagem volta a passar.
No caso de uma mensagem em cascata, a impressão digital utiliza o texto principal da cascata, e não os textos dos canais individuais.
O que irá ver na resposta
- Uma única mensagem — a API devolve o erro
duplicity_messagecom o código400. Consulte a lista de tipos de erro. - Uma mensagem transacional em massa — a mensagem descartada recebe o estado
duplicity_messagee é contabilizada emtotal.status.duplicity_message. O resto do lote é enviado normalmente.
Pense bem antes de utilizar a proteção para palavras-passe de utilização única. Se o código mudar a cada tentativa, a proteção nunca se aplica. Se enviar um texto fixo, descartará o segundo envio dentro de cinco minutos — e o utilizador que carregou em “Reenviar” não recebe qualquer mensagem.
Mensagens promocionais: destinatários duplicados num lote
Na rota promocional, nada é memorizado entre pedidos. Antes do envio, o BulkGate limita-se a percorrer a lista de destinatários criada a partir de um único pedido e mantém a primeira ocorrência. O parâmetro duplicates_check na API promocional ou promocional simples tem três valores:
| Valor | O que remove |
|---|---|
same_text |
a mesma mensagem repetida para o mesmo número |
same_number |
qualquer mensagem adicional para o mesmo número, mesmo com um texto diferente |
| não definido | nada — a lista é enviada exatamente como a submeteu |
A remoção é silenciosa — a resposta não contém nenhum estado nem nenhum contador de duplicados. O único vestígio é um número de destinatários inferior ao que submeteu. Se não restar ninguém após a remoção, o pedido falha com no_recipients.
Dois pedidos consecutivos não se veem um ao outro. Se enviar o mesmo destinatário em dois lotes, ambas as mensagens são enviadas.
Campanhas no portal
Uma campanha segue a rota promocional e faz a verificação de duplicados por si própria — depois de criada a lista de destinatários, mostra quantos encontrou sob o título Aviso de mensagem duplicada:
- Mesmo número e mesmo texto — a campanha remove-os sempre, sem oferecer escolha.
- Mesmo número, texto diferente — aqui a decisão é sua. Assinale Remover destinatários duplicados e cada número recebe uma única mensagem; deixe-a por assinalar e todas são enviadas.
Numa campanha com teste A/B, os destinatários duplicados são sempre removidos; caso contrário, uma pessoa receberia várias variantes testadas e o resultado do teste não teria valor.
A que deve estar atento
- O mesmo parâmetro significa duas coisas diferentes. Na rota transacional,
duplicates_checké um interruptor que protege entre pedidos ao longo do tempo; na rota promocional, seleciona um método e aplica-se apenas dentro de um pedido. - Uma conta partilhada significa uma janela partilhada. Várias integrações numa mesma carteira podem descartar as mensagens umas das outras se enviarem os mesmos textos para os mesmos números.
- Uma mensagem descartada não é enviada, pelo que não é entregue nem registada entre as mensagens enviadas.
- Verifique as contagens na resposta. A rota promocional não comunica remoções — se comparar as entregas com a sua lista de entrada, conte com a diferença.
Obrigado pelo seu feedback.