When dealing with notifications, transactional messages, or marketing campaigns via SMS (Short Message Service), it is essential to understand the rules regarding the number of characters in an SMS. This article aims to explain these rules in detail to help you optimize your applications and avoid surprises.
1. Character Limit for an SMS
A standard SMS is limited to 160 characters. This limit was set in the 1980s and is still in effect today. However, it is possible to send longer messages using concatenated (or multi-part) SMS.
1.1. GSM 7-bit Characters
Most common Latin characters use GSM 7-bit encoding. With this encoding, an SMS can contain up to 160 characters. This is typically used for classic SMS.
- Capacity: 160 characters per SMS.
- Usage: Simple Latin characters such as letters, numbers, and certain symbols.
- Technical Details: GSM 7-bit uses a specific alphabet to optimize the use of each byte, allowing more characters per message. This encoding is ideal for messages primarily using the Latin alphabet without special characters.
1.2. UCS-2 / UTF-16 Characters
If the message contains special characters, such as emojis or non-Latin characters (e.g., Chinese, Arabic, etc.), it uses UCS-2 encoding. This encoding reduces the limit to 70 characters per SMS. This is typically used for Unicode SMS.
- Capacity: 70 characters per SMS.
- Usage: Special characters, emojis, and non-Latin alphabets.
- Technical Details: UCS-2 (Universal Coded Character Set) and UTF-16 (Unicode Transformation Format) are encoding systems that use 16 bits to represent each character. UCS-2 is a fixed 2-byte format per character, while UTF-16 can use 4-byte sequences for characters outside the Basic Multilingual Plane (BMP). However, this reduces the number of characters that can be sent in a single SMS.
2. Long SMS and Concatenation
For messages exceeding the 160 or 70 character limits, SMS can be divided into segments. Each segment includes special headers to allow the recipient’s phone to reconstruct the complete message.
2.1. Concatenation with GSM 7-bit
- Number of segments: Each segment of a concatenated message can contain up to 153 characters. The 7 extra characters per segment are used for concatenation headers.
- Example: A 320-character message will be divided into 3 segments of 153 + 153 + 14 characters.
2.2. Concatenation with UCS-2 / UTF-16
- Number of segments: Each segment can contain up to 67 characters. The 3 extra characters are reserved for concatenation headers.
- Example: A 150-character message in UCS-2 / UTF-16 will be divided into 3 segments of 67 + 67 + 16 characters.
3. Optimizing SMS Content
3.1. Use GSM 7-bit Characters
Try to limit your messages to characters supported by GSM 7-bit encoding to maximize space.
3.2. Be Concise and Use Abbreviations
Reduce the length of messages by using common abbreviations and keeping the language concise. This helps minimize the number of segments needed.
3.3. Test Your Messages
Before launching a campaign, test your messages on different devices and operators to ensure they are received correctly.
4. Costs and Billing
Concatenated SMS are billed per segment. Therefore, a long message may cost more than a short message.
- GSM 7-bit: A 320-character message costs the same as three SMS.
- UCS-2 / UTF-16: A 150-character message costs the same as three SMS.
Important for SMS Marketing
For any SMS marketing, you must include a STOP SMS option to allow the recipient to unsubscribe. The STOP SMS is charged to you.
Conclusion
Mastering the character rules of SMS is essential for developers of messaging applications. By optimizing the length and content of your messages, you can reduce costs and improve the efficiency of your communications. Don’t forget to test your messages to ensure a smooth and consistent user experience.