Todos os artigos

O SMS de verificacao que para de chegar: o que o filtro SHAFT realmente bloqueia num site de anuncios adultos

11 min de leitura

O codigo que nunca chega, e ninguem explica porque

Um visitante regista-se, digita um numero de telefone e espera o codigo de seis digitos que lhe permite entrar. Num dia bom, chega em tres segundos. Num dia mau, nunca chega, e nada no produto explica o motivo. O formulario de registo nao mostra nenhum erro. A operadora nao envia um aviso de falha de entrega. A mensagem simplesmente nao existe do outro lado, e o unico sintoma visivel e uma taxa de abandono um pouco mais alta, que se poderia atribuir a uma duzia de outras causas.

Esse silencio e pior do que uma falha, porque uma falha se resolve. Um filtro de conteudo do lado da operadora, que decidiu em silencio que o seu trafico pertence a uma categoria bloqueada, nao se resolve reiniciando um servidor ou trocando uma chave de API. Resolve-se apenas entendendo o que o desencadeou, e a maioria dos operadores nunca chega ate ai, porque o motivo da rejeicao vive numa consola para programadores que eles nunca abrem, escrita numa linguagem pensada para quem programa, nao para quem gere o negocio.

O mecanismo por tras disto nao e boato. Tem uma sigla, um conjunto de codigos de erro publicados pelas empresas que encaminham o trafico, e uma ligacao direta com a palavra que consta no proprio nome do negocio: adulto. As operadoras americanas filtram os SMS comerciais comparando-os com um pequeno conjunto de categorias de conteudo, e uma dessas categorias e sexo e conteudo adulto. Um diretorio de anuncios de escorts entra ai por definicao, seja qual for o texto real da mensagem.

Esta nao e a mesma falha tratada noutro ponto deste blog. A entrega de emails quebra porque os filtros de spam pontuam uma mensagem pela reputacao do remetente e pela formatacao, e um remetente cuidadoso consegue recuperar com melhor autenticacao e um aquecimento gradual. A filtragem de SMS para conteudo adulto funciona de outra forma: nao e uma pontuacao de reputacao que se recupera com o tempo, e uma correspondencia de categoria que o sistema de uma operadora verifica uma unica vez, no registo, e muitas vezes nem permite voltar a submeter o pedido.

O filtro SHAFT: o que as operadoras assinalam de facto, nas suas proprias palavras

A sigla usada pelo setor para as categorias bloqueadas e SHAFT: sexo, odio, alcool, armas de fogo e tabaco (no original em ingles sex, hate, alcohol, firearms, tobacco). Nao e um termo que as operadoras tenham criado para marketing; aparece dentro dos codigos de rejeicao que as plataformas de mensagens devolvem quando um pedido falha. A documentacao de erros da Twilio para o codigo 30953 afirma claramente que uma campanha foi rejeitada porque contem sexo ou conteudo adulto que viola as diretrizes SHAFT da CTIA, e acrescenta um detalhe mais importante do que a propria rejeicao: essa categoria de rejeicao nao e elegivel para reenvio. Nao ha formulario de recurso, nao ha uma redacao revista que resolva isso, nao ha uma segunda tentativa pela via normal de registo.

O mesmo padrao aparece do lado dos numeros gratuitos, aos quais muitos operadores recorrem precisamente porque parece menos burocratico do que o registo padrao de numero local. O codigo de erro 30441 corresponde a uma verificacao de numero gratuito rejeitada porque quem a analisa, olhando para o site real, o fluxo de consentimento ou as mensagens de exemplo submetidas com o pedido, decide que o caso de uso "parece estar relacionado com sexo". A rejeicao nao se limita ao que diz cada mensagem. Olha para o site que o numero esta registado para representar, que num diretorio de anuncios e o negocio inteiro.

O que torna isto diferente do encerramento de uma conta por um processador de pagamentos e a ausencia total de uma conversa de analise. Um processador de pagamentos encerra um comerciante com um prazo de aviso, um codigo de motivo e por vezes um responsavel de conformidade disposto a discuti-lo. O filtro automatico de conteudo de uma operadora devolve um codigo de rejeicao num painel para programadores e segue em frente. Ninguem na operadora decide que o seu negocio nao merece o servico; uma regra escrita ha anos por outro motivo faz isso automaticamente, e nao sabe nem lhe importa que as mensagens em questao sejam codigos de acesso inofensivos de seis digitos.

A correspondencia de categoria acontece ao nivel da marca e do caso de uso registados, nao apenas das palavras dentro de cada mensagem. Uma campanha e registada com um nome de negocio, uma descricao da finalidade das mensagens e muitas vezes um link para o site. Se qualquer uma dessas tres coisas se ler como conteudo adulto, o filtro pode rejeitar toda a campanha mesmo que o texto real do SMS nao seja mais do que um numero e a palavra "codigo". Este e o detalhe que os operadores mais frequentemente ignoram: sanitizar o corpo da mensagem nao sanitiza o registo que esta por tras dela.

Porque "basta mudar para o Verify" nao e a solucao completa

O conselho habitual, depois de um operador entender o problema, e deixar de tentar registar uma campanha completa de mensagens comerciais e usar em vez disso um produto dedicado a autenticacao, como a API Verify da Twilio ou um equivalente de outro fornecedor. Este conselho esta correto ate certo ponto: um produto pensado apenas para codigos de utilizacao unica esta explicitamente isento do processo completo de registo de marca e campanha que aciona o filtro SHAFT, e a documentacao de integracao da Twilio confirma que um negocio que apenas envia codigos OTP nao precisa de registar Marca nem Campanha ao usar esse produto.

A isencao vem com uma condicao que raramente entra no conselho que se repete entre colegas: aplica-se especificamente ao envio atraves dos numeros partilhados e agrupados do proprio fornecedor, nao ao encaminhamento de codigos de verificacao atraves de um numero de telefone que o negocio registou e possui. Se se direcionar esse mesmo trafico OTP para o proprio numero registado, as regras normais de registo voltam a aplicar-se, categoria SHAFT incluida. O atalho e real, mas esta ligado a uma via de entrega especifica, nao e uma isencao geral para qualquer mensagem que por acaso contenha um codigo de seis digitos.

Ha tambem um custo em aceitar a isencao. As operadoras dao prioridade de entrega e maior capacidade a campanhas registadas e verificadas precisamente porque o negocio por tras delas foi verificado. Um numero partilhado e agrupado que transporta trafico semelhante ao nao registado fica mais abaixo nessa ordem de prioridade, o que se traduz num aumento pequeno mas real do atraso na entrega e em estrangulamentos ocasionais em periodos de grande volume, como uma campanha promocional ou um pico de novos registos apos o lancamento de uma funcionalidade. Para um diretorio pequeno, isto raramente importa. Para um que gere promocoes ou picos sazonais de novos anunciantes, a diferenca entre "entregue em dois segundos" e "entregue em vinte" e a diferenca entre um registo concluido e um abandonado.

O filtro que decide se uma mensagem passa tambem olha alem da via de envio, para sinais que um negocio raramente controla diretamente: o quanto o conteudo real das mensagens corresponde ao caso de uso aprovado, e como esta a evoluir a reputacao do numero remetente. Uma mensagem de suporte aqui, uma campanha promocional ali, enviadas pelo mesmo canal preparado para uma entrega OTP limpa, podem deslocar esse sinal sem que apareca uma unica palavra de conotacao sexual em lado nenhum. Manter o canal de verificacao completamente separado de qualquer outro tipo de mensagem enviada pelo negocio nao e aqui um extra desejavel; e a unica forma de a isencao continuar a funcionar.

Contornar o registo ja nao funciona

Antes de toda esta filtragem se ter tornado mais rigida, o atalho comum era simplesmente nao se registar: comprar um numero local, enviar mensagens, aceitar que uma parte seria filtrada e tratar a perda como um custo do negocio. Esse atalho deixou de existir. O registo de alteracoes da Twilio sobre o encerramento da mensagem 10DLC dos EUA nao registada descreve um regime de filtragem que se agravou ao longo de meados de 2023 e, depois do final de agosto desse ano, passou a ser um bloqueio total de todo o trafico nao registado com destino aos EUA, devolvido ao remetente com o codigo de erro 30034. Isto nao e uma filtragem mais pesada com uma sobretaxa. E trafico que nao chega, ponto final, sem nenhuma tarifa que o recupere.

Esta distincao importa porque um negocio que se registou uma vez, foi assinalado e deixou silenciosamente de acompanhar o seu estado de registo tambem nao esta no regime anterior, mais leve. Uma campanha cuja pontuacao de confianca desceu, seja por uma discordancia de conteudo, um aumento de reclamacoes de cancelamento ou simples inatividade, desliza para o mesmo tratamento do trafico nao registado: menor capacidade, mais filtragem, e nenhum aviso claro de que algo mudou, porque o bloqueio acontece na infraestrutura da operadora, varios passos afastado de onde o negocio esta a observar os seus proprios registos.

E o mesmo tipo de risco que este blog ja descreveu para a infraestrutura de hospedagem, CDN e dominio: um fornecedor varias camadas afastado do produto pode desligar uma peca dele segundo o seu proprio calendario, pelas suas proprias razoes de politica, e o primeiro sinal e a ausencia de algo que antes funcionava. A diferenca com a filtragem de SMS e que o "interruptor" nao e a decisao de uma unica empresa. E uma regra aplicada em conjunto por todas as grandes operadoras dos EUA, aplicada de forma uniforme independentemente de qual plataforma de mensagens esteja no meio, o que significa que mudar de fornecedor nao permite contorna-la como por vezes permite contornar a politica de uma unica empresa ao mudar de hospedagem.

Nao existe uma forma legitima de disfarcar um diretorio de anuncios adultos como outra coisa durante o registo para evitar a correspondencia de categoria. Faze-lo arrisca uma rejeicao permanente no unico pedido que um tipo de campanha pode submeter, e uma rejeicao ligada a uma declaracao falsa e um resultado pior do que nunca se ter registado, porque tambem fecha a via legitima. A via honesta, por mais incomoda que seja, e a unica que deixa uma segunda tentativa em aberto.

O que construir antes de o numero de telefone deixar de ser fiavel

O primeiro passo concreto e deixar de tratar o numero de telefone como infraestrutura garantida e construir um segundo canal no fluxo de registo e login desde o inicio, nao depois do primeiro pedido de suporte sobre um codigo que nao chegou. Um codigo gerado por uma aplicacao de autenticacao, um link magico enviado por email ou um codigo de reserva gerado no registo contornam por completo um filtro de operadora, porque nenhum deles depende de uma categoria de mensagem que uma rede telefonica esteja a analisar. Nenhuma destas opcoes funciona fora do fluxo construido para elas, por isso construir pelo menos uma agora custa muito menos do que a acrescentar depois de um filtro ja ter comecado a consumir uma parcela visivel dos registos.

O segundo passo e separar os canais por completo: o numero ou produto que envia codigos de utilizacao unica nunca deveria enviar tambem um SMS promocional, um lembrete de reativacao ou um aviso de pagamento. Misturar tipos de mensagem numa unica via de envio e exatamente o padrao que corroi o sinal de reputacao que um filtro observa, e coloca em risco o unico canal de que um negocio realmente precisa, o codigo de acesso, para proteger um canal de marketing que tem outras opcoes.

O terceiro passo e registar-se com honestidade e tratar o resultado como definitivo. Como uma rejeicao na categoria SHAFT normalmente nao pode ser reenviada, o registo deve ser feito uma unica vez, com uma descricao exata do negocio, depois de decidir de antemao se o negocio pode aceitar os compromissos de capacidade e prioridade de uma isencao ao estilo Verify ou precisa do registo completo e esta preparado para que seja recusado. Adivinhar e esperar desperdica a unica tentativa que conta.

O quarto passo e observar diretamente os dados de entrega em vez de esperar que um utilizador se queixe. Todas as grandes plataformas de mensagens expoem recibos de entrega e codigos de erro por mensagem; uma proporcao crescente de codigos como o 30034, ou uma taxa de entrega a cair especificamente no canal de verificacao, e o sinal mais precoce disponivel de que algo mudou, e chega muito antes de aparecer como uma queda nos registos concluidos num relatorio mensal. Um operador que verifica esse numero todos os meses deteta uma alteracao de filtragem em semanas. Um que so verifica a conversao deteta-a num trimestre, depois de ja ter custado negocio real.

Nada disto torna o numero de telefone inutil. Coloca-o no seu devido lugar: um canal que um negocio toma de emprestimo a operadoras que nao o construiram a pensar num diretorio de anuncios adultos, e que se reservam o direito de dizer nao sem se explicarem. Trata-lo assim, com uma reserva real e uma separacao clara daquilo que transporta, e o que mantem um fluxo de login a funcionar no dia em que o filtro decide que o seu negocio e precisamente aquele que foi escrito para parar.

Experimente a DEMO

Software para diretório de acompanhantes, pronto a usar