on February 18, 2020
You’ve crafted the perfect text message. The punch of a novel packed into a single SMS, worthy of the bard himself. Your campaign goes off without a hitch. Then, when you take a look at the estimated costs, you see they’re four times what you expected. The segment counter shows four segments, leading you to think: What the heck is a segment and why am I being charged for so many of them?
We’ll pull back the covers on SMS standards to give you an answer. Here’s where we’ll cover:
- What you pay for using SuperPhone
- Understanding what a segment is and how it affects your bill
- Encoding standards and headers you use to send messages
- Crafting the perfect message
- Subtle gotchas & pro-tips
With SuperPhone you only pay what you actually use
First of all it’s important to understand that SuperPhone’s usage fees are directly depending on your actual usage. We don’t charge in packages with a flat fee for a certain amount of messages, where you would pay extra every time you don’t send exactly what’s included in the package.
By paying only what you are actually using, you as the user benefit the most, because you are in direct control of your spending.
Looking Back On The Nokia Brick Phone To Understand Message Segments
Think back to when you first started texting on your good ol’ indestructible Nokia brick. While hammering out messages on a T9 keyboard, you may have noticed a counter ticking down from 160 next to a 1. When that counter hit 0, you’d see that 1 that was sitting next to the 160 jump up to a 2.
This means you’d end up with two messages on your bill. This first number was counting how many characters you had left per segment and the second one was counting how many segments you had used.
What’s Changed About Segments Since Back In The Day
SMS standards have barely changed since the days of the brickphone. Messages are still sent in 140 byte chunks known as message segments.
When SuperPhone communicates with carriers to send out SMS messages, we send them one segment at a time. To figure out how many characters this affords you, we’re going to have to do a little math.
A Little Math, Much Clearer Insight Into Segments
Standard SMS encoding uses the GSM 03.38 character set which takes 7 bits to encode a character. 140 bytes x 8 bits in a byte divided 7 bits leaves us with the 160 character message segment.
Message segments are how SuperPhone (and the SMS industry as a whole) counts messages.
How Does The Perfect Message Behave?
Going back to your perfect text message, you count up the characters, and something still seems off. You’ve only used 135 characters but SuperPhone tells you that each of these messages has two segments.
Part of the answer lies in the encoding. Notice that this message has a maximum of 70 characters per segment vs. the usual 160? This is because it’s using UCS2 as the encoding instead of GSM. To accommodate a message as lit as this one, SuperPhone has to use a different character set. When you send messages with non-GSM characters such as Emojis we have to use a different type of encoding known as UCS2. UCS2 takes 16 bits to encode each character so going back to the math we did above we now have a limit of 70 characters (140 bytes * 8 bits in a byte / 16 bits). Besides emojis you should also be careful with accented characters. GSM 03.38 includes some accented characters such as ñ, à, and ö, but does not include others such as á, í, or ú.
What Exactly Does A Data Header Do?
Still, it looks like with this 70 character limit, this message should still only be three segments, not four. The last piece of the puzzle lies in concatenation. When you send multi segment messages, SuperPhone uses User Data Headers to tell the destination how to reassemble it. This takes up 6 bytes per message leaving only 67 characters for UCS2 encoded messages or 153 for GSM encoded messages.
Maybe it turns out the fire emojis aren’t worth it after all. However, when you trim the same message down, it still doesn’t seem to work out quite right:
This message contains one of the “gotchas” that commonly cause encoding issues: smart quotes. Take a look at this message that appears almost identical but only counts as one segment:
There is only one character that has been switched: the “smart quote” after Shakespeare was replaced with a standard apostrophe ‘ instead of ´. Smart quotes are usually a result of text editors being too darn helpful.
After reading this post you’re fully equipped to make decisions about whether Emojis are worth it, eliminate smart quotes and non-GSM spaces before sending messages, and accurately count up segments before you run a campaign instead of after.
Should any questions remain, please always reach out via our chat at the bottom right.