A campaign can contain a shortened link even when its message fits the segment limit. The shared domain gives the link a reputation you do not control. The hidden destination gives carriers another filtering signal.
What is wrong with a public shortener?
The domain is not yours, and neither is its reputation.
A public shortener puts thousands of unrelated senders behind one hostname. Filters assess the domain, so you inherit everyone's reputation. A phishing campaign on that domain becomes your problem. You cannot repair that shared reputation.
The second problem is structural rather than reputational. A shortened link deliberately conceals its destination: that is the feature. From a filter's position, an unfamiliar sender with a link that hides where it goes is indistinguishable from a phishing message, because it is the same shape. Carriers are not making a judgement about your intent; they are pattern-matching on something that genuinely correlates with abuse.
Bird's own character limits guide flags the practice for the same reason. Embedded links have their own section in the CTIA messaging principles, which is the document to read for what the industry asks of senders here; that page describes it and links it rather than quoting, since CTIA publishes only a PDF.
What should I use instead?
Use a recognisable link on a domain you control. Its destination should match the message so recipients reach the action they expected.
A branded link domain is a hostname you control that rewrites the links in your messages. You can control who uses it and where its links lead. Protect it against misuse and insecure redirects so attackers cannot use your domain to send people to malicious pages. Owning the domain does not guarantee a good reputation or delivery. And the recipient can see who is asking them to click, which is the thing a shortener removes.
Bird supports this through a tracking hostname on your own domain, which is the same mechanism behind click measurement. What is click-through rate covers the measurement side, and the tracking-domain setup is in the docs.
Two smaller practices help alongside it. Keep the visible link recognisable rather than opaque, and do not send links from an unregistered sender to a destination that expects registration, since the two suspicious signals compound.
Is it not worth it for the character saving?
It depends on the segment saving and the risk of filtering.
The saving is real but small, and it only matters at a boundary. For plain letters and digits, which each occupy one GSM-7 unit, shortening 165 characters to 155 can reduce two segments to one. Shortening 300 of these characters to 290 still leaves two segments. Recount the complete message after personalisation because encoding can change the result. What is an SMS segment covers where those boundaries fall.
Filtering can prevent the recipient from seeing your message and acting on it. Compare any segment saving with that risk; the trade-off depends on the programme.
How would I know this is what happened?
You often would not, directly, which is the frustrating part.
Filtering rarely arrives with an explanation. The message is accepted, and then a failure event turns up with an error code that says the provider bucketed it as a carrier rejection, or as unknown. Why are my SMS messages being filtered by carriers covers what those codes actually mean and which ones are never emitted.
A branded domain needs setup, security and ongoing monitoring. Validate its redirect destination so recipients reach the intended page. Count the final message’s segments before launching because a longer link can increase the bill.
In short
A public shortener is a shared domain with a shared reputation.
Every sender using it contributes, so a phishing campaign on the same domain is your problem too.
Hiding the destination is the point of a shortener and the problem with it.
A filter cannot tell where the link goes without following it, and the pattern is what phishing looks like.
The fix is a link domain of your own.
A domain you control makes the sender easier to recognise and lets you manage its use, security and redirect destinations.
Length is a weaker reason than it looks.
Character savings matter when they reduce the segment count. Weigh that saving against the risk of filtering.