O que raios é um segmento?

March 02, 2017
Escrito por

Looking for information on Twilio Segment, acquired by Twilio in 2020?

- Acquisition Announcement

- Why Twilio acquired Segment

Você criou a mensagem de texto perfeita. A intensidade de um romance condensada em um único SMS, digno do próprio Shakespeare. Sua campanha começa sem nenhum problema. E então, quando você examina os custos, vê que eles são quatro vezes o que você esperava.  O que faz você pensar: O que raios é um segmento e por que estou sendo cobrado por tantos deles?

Vamos abrir o jogo dos padrões do SMS para lhe dar uma resposta. Isso é o que iremos bordar:

Revisitar o Tijolão da Nokia para entender os segmentos de mensagens

Pense em quando você começou a enviar mensagens de texto no seu bom e velho tijolão da Nokia indestrutível. Ao martelar mensagens em um teclado T9, você pode ter notado um contador diminuindo de 160 ao lado de um 1. Quando esse o contador chegava a 0, você via que o 1 que estava ao lado do 160 subia para 2.
Isso significa que você tinha ficado com duas mensagens na sua conta. Este primeiro número estava contando quantos caracteres você havia deixado por segmento e o segundo estava contando quantos segmentos você tinha usado.

O que mudou em relação aos segmentos desde então

Os padrões de SMS quase não mudaram desde os dias do telefone tijolão. As mensagens ainda são enviadas em blocos de 140 bytes conhecidos como segmentos de mensagens.

Quando a Twilio se comunica com as operadoras para enviar mensagens SMS, nós as enviamos um segmento de cada vez. Para descobrir quantos caracteres isso proporciona a você, teremos de dar calculada.

Dando uma calculada, um insight muito mais claro sobre os segmentos

A codificação SMS padrão usa o conjunto de caracteres GSM 03.38, que leva 7 bits para codificar um caractere. 140 bytes x 8 bits em um byte dividido 7 bits nos deixa com o segmento de mensagem de 160 caracteres.

Os segmentos de mensagens são como a Twilio (e o setor de SMS como um todo) conta as mensagens.

Isso significa que, além dos custos, você também deveria pensar em termos de segmentos ao analisar a taxa de transferência de SMS. A taxa de transferência varia de acordo com o número de envio que você está usando, mas em todos os casos é contado em termos de segmentos de mensagens por segundo, em vez do total de mensagens.

Se a mensagem aparecer em uma determinada janela for importante para você, certifique-se de saber quantos segmentos você está enviando.

Como a mensagem perfeita se comporta?

Voltando à sua mensagem de texto perfeita, você conta os caracteres e algo ainda parece errado. Você usou apenas 210 caracteres, mas parece que cada uma dessas mensagens tem mais de dois segmentos.

Quatro segmentos devido à codificação UCS-2

Parte da resposta está na codificação. Observe que esta mensagem tem UCS-2 listado como codificação em vez de GSM. Para acomodar uma mensagem tão legal como essa, a Twilio precisa usar um conjunto de caracteres diferente. Você pode ter notado que, se você clicou no link GSM acima, ele não continha nenhum "?". Quando você envia mensagens com caracteres não GSM, como emojis, precisamos usar um tipo diferente de codificação conhecido como UCS-2. O UCS2 leva 16 bits para codificar cada caractere, portanto, voltando para o cálculo que fizemos acima, agora temos um limite de 70 caracteres (140 bytes x 8 bits em um byte/16 bits). Além dos emojis, você também deve ter cuidado com caracteres acentuados. O GSM 03.38 inclui alguns caracteres acentuados, como "ñ", "à" e "ö", mas não inclui outros, como "á", "í" ou "ú".

O que um cabeçalho de dados faz exatamente?

Ainda assim, parece que com esse limite de 70 caracteres, essa mensagem ainda deve ser apenas três segmentos e não quatro. A última peça do quebra-cabeça está na concatenação. Quando você envia vários segmentos, as mensagens Twilio usa cabeçalhos de dados do usuário para informar ao destino como reagrupá-lo. Eles têm 6 bytes por mensagem, deixando apenas 67 caracteres para mensagens codificadas UCS-2 ou 153 para mensagens codificadas GSM.

No fim, talvez os emojis de fogo não valham tanto a pena assim. No entanto, quando você reduz a mesma mensagem e envia-a novamente, ela ainda não parece funcionar corretamente:

Três segmentos de SMS devido à codificação

Esta mensagem contém dois dos "truques" que normalmente causam problemas de codificação: aspas inteligentes e espaços não GSM. Dê uma olhada nesta mensagem que parece quase idêntica:

1 segmento codificado GSM-7

Existem apenas três caracteres que foram alternados: os espaços entre as frases foram alterados de ‘ ’ para ‘ ’ (U+2002 para U+0020) e a "aspa inteligente" depois de Shakespeare foi substituída por um apóstrofe padrão ‘ em vez de um ‘ (U+2019 para U+0027). As aspas inteligentes geralmente são resultado de editores de texto sendo úteis até demais. Espaços não GSM geralmente são resultado de copiar e colar. Tenha muito cuidado com aqueles que são frequentemente convertidos em espaços convencionais para exibição. O console twilio.com é um desses locais, o que significa que os corpos de mensagem que contêm espaços não GSM na API serão formatados como espaços normais U+0020 para exibição.

UPDATE: Twilio's Copilot service now includes a Smart Encoding feature which will automatically translate Unicode characters into GSM7/ASCII characters for you if there are GSM7/ASCII alternatives and no characters that can’t be converted in the message, e.g. emoji or language based characters. For more details see these pages:

É sempre importante conhecer o conjunto de caracteres antes de enviar mensagens. Você também pode usar este aplicativo para verificar mensagens específicas com antecedência: https://twiliodeved.github.io/message-segment-calculator/.

Depois de ler este post no blog, você está totalmente equipado para tomar decisões sobre se os emojis valem a pena, eliminar aspas inteligentes e espaços não GSM antes de enviar mensagens e contar com precisão os segmentos antes de executar uma campanha e não depois.