Lorsque vous créez un message SMS, il est important de tenir compte du nombre de fragments que contient votre message. En effet, le coût d’envoi d’un SMS est variable et dépend du nombre de fragments requis pour transmettre le message. Ainsi, plus un SMS comporte de fragments, plus il sera coûteux. Le système va envoyer le SMS de la manière la plus efficace mais idéalement, un SMS devrait comporter un seul fragment.


Ce nombre de fragments dépend de deux facteurs : la longueur du message et le format d'encodage dans lequel il est transmis.

  • Le format GSM-x permet plus de caractères par fragment que le format UCS-2 mais supporte une étendue limitée de caractères.
  • Un format variable indique que le contenu statique de votre message supporte le format GSM mais que l’ajout d’éléments personnalisés pourrait forcer l’utilisation du format UCS-2


Longueur du SMS

Bien que le protocole SMS autorise160 caractères, le nombre réel de caractères acceptés pour un fragment va dépendre du fournisseur SMS du client. Par exemple, avec Twillio, le nombre de caractères est de 140 par fragment, en raison de l’encodage utilisé, le format GSM : https://www.twilio.com/docs/glossary/what-is-gsm-7-character-encoding

Ainsi, si l’utilisateur saisit un 141e caractère dans son message, cela va créer un 2e fragment (un premier de 140 caractères et un autre de 1 caractère seulement).

Ceci va donc doubler le coût du SMS.

Un SMS de 140 caractères ou moins :

Avec un caractère de plus :

Encodage

Lorsqu’on dit qu’un SMS autorise 140 caractères, cela sous-entend que chaque caractère est encodé sur 1 octet.

Or, certains caractères plus rares ont besoin d’être encodés sur 2 octets. Dans ce cas, le message au complet est encodé dans un format où chaque caractère est sur 2 octets.

Par conséquent, le nombre de caractères autorisé n’est plus de 140, mais de 70.

Dans l’exemple ci-dessous, le message fait 94 caractères, où chaque caractère est encodé sur 1 seul octet (format GSM). Le message fera donc 1 seul fragment. Toutefois, si j’ajoute le symbole du copyright, qui nécessite un encodage sur 2 octets, le message au complet est alors encodé en UCS et chaque caractère compte pour 2 octets.

Le message comportera donc 2 fragments, car 95 caractères excèdent le maximum de 70 autorisés dans un fragment UCS.

Un SMS avec 1 seul fragment :

Le même SMS avec l'ajout d'un signe encodé en UCS :

Personnalisation

Si votre message comporte des éléments de personnalisation, comme par exemple, le nom du destinataire, il faudra tenir compte du nombre de caractères que le champ du prénom peut contenir. 

Comme le contenu du champ n'est défini qu'à l'envoi du message, l'analyse ne présente qu'une estimation du nombre minimal et maximal de caractères que peut contenir le message. 

L'analyse approximative tient compte de deux facteurs :

  • Le nombre de caractères
    L'analyse tient compte du nombre minimal de caractères (sans valeur dans le champ) et du nombre maximal de caractères autorisés dans le champ (qui est de 50 dans l'exemple ci-dessous).
  • Le nombre de fragments
    Le nombre de fragment est établi séparément pour chaque contact en fonction de la valeur précise contenue dans le champ. Le type de valeur détermine le format d'encodage utilisé. 
    • Si la valeur du champ ne comporte aucun caractère spécial, on utilisera le format GSM, qui accepte 140 caractères par fragment.
    • Si la valeur comporte au moins un caractère spécial, comme le signe de copyright © par exemple, on utilisera le format UCS, lequel réduit à 70 le nombre de caractères par fragment.
      --> Donc si le champ contient des caractères spéciaux, une longueur de 124 caractères donnera 2 fragments en UCS, alors que si le message était encodé en GSM, il ne prendrait qu'un seul fragment.

Exemple :

Si on envoie un SMS à 100 contacts, il se peut que certains soient encodés en GSM et d'autres en UCS, selon que la valeur du champ de personnalisation contient des caractères spéciaux ou non; les messages n'auront pas tous le même nombre de fragments.