Um telefone pode exibir um texto longo como uma única mensagem mesmo quando a rede transporta várias partes. O alfabeto usado para codificar o texto determina quantas partes Bird cobra.
O que é um segmento?
Um segmento é o maior trecho de texto que uma mensagem de rede consegue transportar. Texto latino simples cabe em 160 caracteres por segmento. Se a mensagem contém sequer um caractere fora desse conjunto, como um emoji, aspas curvas ou a maioria das letras acentuadas, cada segmento comporta apenas 70 caracteres.
Quando uma mensagem precisa de mais de um segmento, cada parte cede um pouco de espaço a um cabeçalho que o telefone usa para reagrupá-las: 153 caracteres por parte para texto simples, 67 para o conjunto mais amplo. Assim, 161 letras simples custam dois segmentos, 153 no primeiro e oito no segundo.
Bird conta texto simples no alfabeto GSM-7 e todo o restante como UCS-2, as duas codificações que as operadoras aceitam. Alguns caracteres contam em dobro mesmo dentro do GSM-7, e alguns emoji contam em dobro no UCS-2; a página de codificação lista todos eles.
Por que uma mensagem custou três?
Bird cobra pela quantidade de segmentos, então uma mensagem de três segmentos gera três unidades pela tarifa aplicável.
Bird calcula a contagem ao aceitar o envio. O destino, a categoria da mensagem e o tipo de remetente também determinam o preço aplicável. Consulte os preços de SMS para a rota que você usa.
Por exemplo, 150 letras latinas comuns cabem em um segmento. Adicione um emoji de rosto sorridente e todo o corpo passa a usar UCS-2. Esse emoji conta em dobro, elevando o total para 152. Dividir 152 pela capacidade multiparte de 67 exige três segmentos.
Quais caracteres mudam a codificação?
Qualquer caractere fora do GSM-7 move o corpo inteiro para UCS-2.
Aspas retas cabem no GSM-7. Aspas curvas não cabem. As letras é e ü cabem. As letras á, í e ú não cabem. Textos em chinês, japonês, coreano, árabe, tailandês e hindi também exigem a codificação mais ampla.
Um nome ou título de produto inserido em um template pode, portanto, mudar a codificação de toda a mensagem. Verifique o texto completo depois de inserir esses valores.
Por que a contagem de caracteres dá um resultado diferente?
Alguns caracteres contam em dobro no limite do segmento.
GSM-7 conta cada um dos caracteres €, [, ], {, }, \, ~, ^ e | como dois caracteres. O caractere de avanço de página, que solicita uma quebra de página, também conta em dobro. Oitenta símbolos de euro, portanto, preenchem um segmento.
Um corpo de 159 letras latinas comuns seguido de € tem 160 caracteres. Ele conta como 161 no limite. Precisa de dois segmentos.
Alguns emoji, como 😀, contam em dobro no UCS-2. Trinta e cinco deles preenchem um segmento. A página de codificação lista os caracteres que exigem atenção especial.
Como verifico a contagem no Bird?
Você lê a contagem calculada no objeto segments da resposta da mensagem.
counté um inteiro de no mínimo 1. Cada segmento contado é uma unidade faturável. Mensagens enviadas são limitadas a 12. Um corpo mais longo recebe HTTP422, rejeitando a solicitação sem truncar o texto.encodingéGSM_7BITouUCS2, identificando qual capacidade se aplica.charactersconta os caracteres no texto antes de aplicar as regras de contagem dupla. Usecountpara verificar os segmentos faturáveis.
Para uma mensagem que precisa caber em um segmento, verifique count depois de preparar o corpo completo. Inclua nomes inseridos e conte caracteres como 😀 em dobro.
Você também pode definir options.smart_encoding como true ou false. O padrão é false. Quando habilitado, ele substitui pontuação compatível somente se o resultado inteiro couber no GSM-7. Um emoji restante no corpo impede todas as substituições. Codificação inteligente explica esse comportamento.
O guia de limites de caracteres documenta as regras de contagem e os campos de resposta.
Em resumo
Cada segmento é uma unidade faturável.
Uma mensagem dividida em três segmentos é cobrada como três unidades pela tarifa aplicável.
A codificação determina a capacidade.
Um único caractere fora do alfabeto compacto SMS move todo o corpo para a codificação Unicode.
Alguns caracteres contam em dobro.
O símbolo do euro conta como dois caracteres no limite. Alguns emoji também contam em dobro.
Todo segmento multiparte reserva espaço para cabeçalho.
A divisão reduz a capacidade em todas as partes, incluindo a primeira.