Text campaigns are billed and filtered differently from email, and small copy choices have an outsized effect on both cost and deliverability. This article covers the two elements every promotional message must include, how message segments and encoding affect your bill, how to pace a large send, and what to monitor once a campaign is live.
1. The two things every message must contain
These aren't style preferences. Carrier and aggregator rules require both on outbound A2P (application-to-person) traffic, and a missing element is the first thing a filter checks.
NOTE:
Messages that fail these checks return error 30007 (message filtered). Repeated violations escalate beyond a single blocked send — they put the entire messaging service at risk of suspension.
Requirement | What it looks like | Why it matters commercially |
Opt-out instruction | “Reply STOP to unsubscribe” or “Txt STOP to unsub” | Absence is a direct filtering trigger and the single most common cause of blocked promotional traffic. |
Business identification | Your brand name at the front of the message: “Budget Brakes: …” | Recipients who don’t recognize the sender report as spam rather than ignoring. Every complaint degrades deliverability for all future sends. |
2. A before-and-after rewrite
The example below is a real test campaign, shown first as it was written, then rewritten to be compliant and shorter to bill.
Before — 4 segments
SCORE BIG ON BRAKES 25% OFF Brake Pads FREE Brake Inspection Good brakes keep you going. Great service keeps you coming back Click Schedule your appointment today and score big. https://birdeye.cx/g2iig0 |
211 characters · UCS-2 encoding (emoji) · no sender ID · no opt-out · broken CTA
After — 2 segments
Budget Brakes: 25% off brake pads and a free brake inspection this month. Good brakes keep you going, great service keeps you coming back. Schedule your appointment: https://birdeye.cx/g2iig0 Txt STOP to unsub. |
210 characters · GSM-7 encoding · branded · compliant · one clear action
3. What changed, and why
Issue | The cost | The fix |
No opt-out language (blocker) | Filtered at the carrier (30007); at volume, a service-level suspension risk, not just a per-message one. | Append “Txt STOP to unsub.” to every promotional send. |
No business identification (blocker) | Drives spam reports instead of passive ignores. Complaint rate is the metric carriers weigh most heavily. | Lead with the brand name in the first three words. |
All-caps + stacked promo language | “SCORE BIG,” all-caps headlines, and stacked “FREE / % OFF” claims raise a message’s spam score. | You can still say 25% off and free inspection — state them once, in sentence case, inside a normal sentence. It’s the shouting and the stacking that score badly, not the offer. |
Four emojis in five lines | Forces UCS-2 encoding: segment size drops from 160 to 70 characters, so this message is billed as 4 segments instead of 2. It also reads as a mass blast rather than a message from a local shop. | Remove emoji from bulk promotional sends. Use zero to one, and only where it genuinely carries meaning. |
Broken CTA | “Click Schedule your appointment today” reads as a link that lost its anchor text. Confused recipients report messages. | One unambiguous action followed by the bare URL: “Schedule your appointment: [link]”. |
The cost of the fix is negative: the compliant version is longer in characters but half the segments. On a 100,000-recipient campaign, that's 200,000 billed segments instead of 400,000 — before counting the messages that now actually get delivered.
4. Segments: the cost lever most senders miss
SMS is billed per segment, not per message. A single non-GSM character — any emoji, a curly quote, an em dash — switches the whole message to UCS-2 encoding and more than halves your character budget.
Encoding | Single message | Per segment when split | Triggered by |
GSM-7 (standard) | 160 characters | 153 characters | Plain letters, digits, standard punctuation |
UCS-2 (unicode) | 70 characters | 67 characters | Any emoji, curly quotes “”, em dash —, accented characters |
NOTE:
Write in plain ASCII and paste the copy through a plain-text editor before loading it. Word processors silently convert straight quotes and hyphens into unicode equivalents that double your bill.
5. Pacing: why a large audience should be dripped
For campaigns at scale, spread the audience over several days rather than sending everything at once, unless the offer is genuinely time-bound. A single burst creates a sudden spike in promotional traffic. That doesn't automatically mean messages get blocked, but it materially raises deliverability risk if carriers observe elevated filtering, opt-outs, or complaints during the window.
What a gradual send buys you
Consistent sending behavior. Carriers respond better to predictable, established patterns than to sudden promotional spikes.
Lower concentration of filtering signals. Opt-outs, complaints, and filtering are distributed over time rather than compressed into one burst.
The ability to react early. If filtering or opt-outs spike after batch one, you can adjust the copy or pause the remainder, instead of discovering the problem after all 100,000 messages have already gone out.
Durable sender reputation. Healthy traffic patterns protect deliverability on every future campaign, not just this one.
Suggested schedule for a ~100,000-recipient campaign
Day | Share | Volume | Purpose and decision point |
Day 1 | 15% | ~15,000 | Pilot batch. Hold 24 hours. Review delivery rate, 30007 filtering, and opt-out rate before releasing more. |
Day 2 | 25% | ~25,000 | Proceed if Day 1 metrics are clean. If not, revise copy before continuing. |
Day 3 | 30% | ~30,000 | Continue monitoring; cut over to a revised template if any metric is drifting. |
Day 4 | 30% | ~30,000 | Final batch. Capture results as the baseline for the next campaign. |
NOTE:
This is a risk-management recommendation, not a hard carrier limit. Higher single-day volumes are well supported once a sender and campaign have an established reputation. Early in a program, the 3–4 day spread is the cheapest insurance available.
6. Monitor these three numbers on every batch
>95% Delivery rate Investigate below 90% | <1% Opt-out rate Pause and revise above 2% | ~0 Error 30007 responses Any cluster means revise copy now |
These are directional guardrails for promotional A2P traffic; your own first two campaigns become the more useful baseline.
NOTE:
If a batch breaches any of the three thresholds above, pause the remaining sends rather than pushing through. The reputation damage outlasts the campaign.
7. Pre-send checklist
Brand name appears in the first line
Opt-out language present (“Txt STOP to unsub”)
Zero emoji; message confirmed as GSM-7
Segment count verified before launch
No all-caps words; offer stated once
Exactly one call to action, one link
Link tested on a mobile device
Audience list scrubbed of prior opt-outs
Send window 8am–9pm recipient local time
Audience split into day-by-day batches
Test send to internal numbers first
Owner assigned to review Day 1 metrics
NOTE:
Send-time rules vary by state — several are stricter than the federal 8am–9pm window. Guidance reflects current CTIA, carrier, and A2P 10DLC practice for US promotional messaging; requirements evolve, and your Birdeye team will flag material changes. Questions on this campaign or your next one: contact your Birdeye account team.
