In short
- Push is cheap to send, expensive to earn. The send itself costs close to nothing, but you first have to persuade someone to install an app and then keep it installed.
- SMS reaches almost everyone and bills per message. US retail SMS commonly lands in the fraction-of-a-cent to few-cents range per segment depending on carrier fees and volume, so every send has a real marginal cost.
- Opt-in economics decide the winner. A brand with 40,000 app users and a brand with 400,000 SMS subscribers are not running the same channel, and revenue per subscriber comparisons collapse if you ignore that gap.
- Fatigue shows up differently. SMS fatigue surfaces as opt-outs and complaint rates; push fatigue surfaces as permission revocations and uninstalls, which are far harder to win back.
- Compliance risk is asymmetric. SMS marketing in the US sits under the Telephone Consumer Protection Act and FCC rules with statutory damages attached, while push mostly sits under platform policy and general privacy law.
Most D2C retention decks treat push notifications and SMS as interchangeable rows in a channel table. They are not. One is a platform privilege you borrow from Apple and Google after persuading a customer to install software. The other is a telecoms product you rent per message, governed by carrier rules and a US statute with real financial teeth.
The practical question is not which channel has the better open rate. It is which channel earns more net contribution per customer per quarter, after you account for the cost of acquiring the opt-in, the cost of each send, and the attrition each send causes. That calculation looks different for a $28 replenishable product than it does for a $280 considered purchase, and the channel mix should follow. If you are still mapping where mobile fits in a wider sales strategy, our complete guide to selling on global e-commerce marketplaces sets out how owned channels sit alongside marketplace demand.
This piece compares the two on the five dimensions that actually move the number: true cost per message, opt-in acquisition, deliverability, revenue per subscriber, and fatigue. It closes with the compliance basics every US and UK retail team should understand before scaling SMS volume.
The real cost per message on each channel
The headline figures are misleading in both directions. Push looks free and is not. SMS looks expensive and often is not, once you divide by the revenue it reliably produces.
What a push send actually costs
A push notification travels over Apple Push Notification service or Firebase Cloud Messaging. Both are free at the transport layer. What you pay for is the engagement platform that segments the audience, schedules the send, and reports on it.
Vendors in this category typically price on monthly active users or on tracked profiles rather than per message. That means your push cost per send falls as you send more, which is exactly the incentive structure that produces fatigue. The marginal cost of one more push is effectively zero, so nothing in the pricing model tells you to stop.
Add the cost that never appears on the vendor invoice: building and maintaining the app itself. App development, two platform review cycles, SDK upgrades, and the engineering time to keep deep links working are all part of the cost of owning a push channel. For many mid-sized brands that is the single largest line item in the whole comparison.
What an SMS send actually costs
SMS pricing stacks in layers. There is the aggregator or platform fee per message segment, the carrier pass-through fee, and the cost of the number itself (a toll-free number, a 10-digit long code registered under the industry 10DLC framework, or a short code). Public US rate cards from the major messaging platforms have generally sat in the sub-cent to few-cents range per segment for marketing traffic, with carrier fees added on top, but rates move and are negotiated at volume, so treat any single figure as indicative rather than fixed.
Two mechanics catch teams out. First, segmentation: a plain GSM-7 message runs to 160 characters, but a single emoji or curly quote flips the whole message to UCS-2 encoding and drops the limit to 70 characters, which can double or triple your billed segments. Second, MMS: adding an image typically costs several times a plain text segment.
The cost that does not show up on the invoice
On both channels the real cost is attrition. An SMS that annoys someone produces an opt-out, and that subscriber is gone from the channel permanently unless they re-subscribe. A push that annoys someone produces a revoked permission or an uninstall, and recovering that requires a fresh install, which is the single most expensive event in mobile marketing.
If your blended cost to acquire an app install is $4 and a badly timed campaign triggers 1,200 uninstalls, that campaign carried a $4,800 hidden cost regardless of what it earned. Very few retention dashboards show that line.
| Cost component | App push | SMS |
|---|---|---|
| Transport cost per message | Effectively zero (APNs, FCM) | Per segment, plus carrier pass-through |
| Platform pricing basis | Monthly active users or tracked profiles | Volume sent, usually tiered |
| Setup cost | High: app build, store review, SDK work | Low to moderate: number provisioning and registration |
| Ongoing technical overhead | OS updates, SDK upgrades, deep link maintenance | Registration renewals, link shortener and domain hygiene |
| Cost of one extra send | Near zero (which is the trap) | Visible and immediate |
| Cost of losing a subscriber | Very high: needs a reinstall | Moderate: needs a fresh opt-in |
| Rich media | Images and buttons at no extra send cost | MMS at a multiple of a text segment |
How to compare them on one axis
The only fair comparison is fully loaded cost per thousand reachable customers per month. Take your annual app platform fee plus amortised build and maintenance cost, divide by the number of customers who can actually receive a push (permission granted and app installed), and compare that to your all-in SMS cost for the same number of reachable handsets. Brands that run this calculation honestly are frequently surprised: push is rarely as cheap as the invoice suggests, and SMS is rarely as expensive.
Opt-in rates and how you earn permission
This is where the two channels diverge most sharply, and where most channel strategy goes wrong.
The app install is the real gate
Push requires two consecutive yeses. The customer must install your app, then grant notification permission. On iOS that permission has been explicit since iOS 8 and the prompt is a hard stop. Android moved to a runtime notification permission with Android 13, closing the gap that previously made Android push opt-in rates look far healthier.
Industry benchmarks for notification permission acceptance vary enormously by vertical and by whether the brand uses a pre-permission primer screen, so quoting a single number is not useful. What matters structurally is the multiplication: if 6% of your customers install the app and 55% of those accept notifications, your push-reachable audience is roughly 3% of your customer base. That is the honest denominator.
Shopping apps are not a given for every brand. Our analysis of app versus mobile web for D2C sets out when the install barrier is worth paying and when a well-built mobile web experience outperforms it.
Where SMS opt-ins come from
SMS has no install barrier, which is why list growth can be an order of magnitude faster. The common sources are:
- On-site capture. A two-step pop-up collecting email then phone, or a phone-first flow with a discount incentive.
- Checkout consent. An explicit, unticked marketing checkbox separate from transactional notifications.
- Keyword campaigns. Text a word to a number, usually promoted in packaging inserts, in store, or on social.
- In-store capture. Tablet or POS flows, which also feed your wider retail data picture.
The quality spread across these sources is wide. Discount-driven pop-up opt-ins convert at the highest volume and churn at the highest rate. Keyword opt-ins from packaging inserts are smaller and considerably stickier, because the person already owns the product.
Double opt-in and the quality tradeoff
A confirmation step (the subscriber replies to confirm) cuts list size but improves every downstream metric: fewer complaints, fewer wrong numbers, better deliverability reputation. Where regulation or carrier guidance effectively expects a clear and verifiable consent trail, this is not simply an optimisation decision.
One more point that retention teams underweight: opt-in rate is a function of your mobile experience, not your copy. If your mobile site converts poorly, every capture surface on it underperforms too. The same friction that loses the sale loses the subscriber, a pattern we examined in detail in mobile commerce conversion and where most stores quietly lose sales.
Deliverability, carrier filtering and app uninstalls
Both channels can silently stop reaching people. The failure modes are completely different, and so are the fixes.
Carrier filtering on SMS
US carriers filter messaging traffic for spam, and the filtering is both automated and opaque. Your message can be accepted by your platform, reported as sent, and never arrive. The common triggers are well understood across the industry:
- Unregistered or poorly registered traffic. The 10DLC framework requires brand and campaign registration; mismatched registration data is a frequent filtering cause.
- Public link shorteners. Shared shortener domains carry other senders’ reputation. A branded, dedicated short domain is the standard remedy.
- Complaint rate. Recipients reporting messages as spam feeds directly into filtering decisions.
- Volume spikes. Jumping from 20,000 to 400,000 messages overnight looks like exactly what filters are built to catch.
Because filtering is invisible, you need to monitor carrier-level delivery receipts by carrier and by campaign, not just an aggregate delivery rate. A single carrier blocking your traffic can hide inside a healthy-looking blended number.
Push token decay and permission revocation
Push degrades quietly. Device tokens go stale when apps are uninstalled or devices are replaced, and a permission granted in January can be revoked in March from the OS settings without any signal in your marketing tool beyond a failed send.
The practical consequence is that your push-addressable audience is almost always smaller than your reported installed base. Brands that reconcile tokens against actual successful deliveries usually find a material gap. Treat the delivered count, not the targeted count, as your real reach.
iOS adds a further wrinkle: Focus modes and notification summaries can hold a notification until a later digest, so a time-critical push may surface hours after you sent it. For a flash sale with a four-hour window, that matters.
| Reach factor | App push | SMS |
|---|---|---|
| Addressable universe | App installs with permission granted | Any mobile number with valid consent |
| Primary silent-failure mode | Stale tokens, revoked permission, uninstalls | Carrier spam filtering |
| Visibility of failure | Partial: failed sends only | Partial: delivery receipts by carrier |
| Time to delivery | Seconds, unless held by Focus or summary | Seconds, typically unconditional |
| Recovery from loss | Requires reinstall and re-permission | Requires new opt-in |
| Deliverability levers you control | Permission priming, send relevance, frequency | Registration quality, branded short domain, complaint rate |
| Who holds the gate | Apple and Google | US carriers and the aggregator |
Revenue per subscriber compared honestly
Channel comparisons usually pull revenue per message or revenue per subscriber straight from two different vendor dashboards and declare a winner. That comparison is almost always wrong, for three reasons.
Why the usual comparison misleads
First, selection bias. People who install your app and accept notifications are already your best customers. Of course they convert better. You are comparing a curated cohort to a broad one and crediting the channel for the difference.
Second, attribution windows. Push platforms often count a conversion within a generous window after a notification is opened, while SMS attribution commonly runs on click-through to a tracked link. Different windows, different denominators, incomparable outputs.
Third, overlap. Your app users are usually also on your SMS list and your email list. Whichever channel’s dashboard you open first will happily claim the same order.
A worked example
Take a brand with 200,000 customers. Suppose 6% install the app and 55% of those accept notifications: roughly 6,600 push-reachable customers. Suppose 22% of the base is on SMS with valid consent: 44,000 reachable.
If push produces $1.80 in incremental revenue per reachable customer per month and SMS produces $0.70, push looks more than twice as efficient per head. In absolute terms push contributes about $11,900 a month and SMS about $30,800. The per-head metric points one way and total contribution points the other, which is why the answer for most brands is both channels, with different roles.
The only comparison worth running
Hold out a randomised slice of each reachable audience, suppress the channel for them for a full purchase cycle, and measure the revenue difference against the exposed group. This is the same incrementality logic that applies to paid media, and it is the only method that survives scrutiny.
| Metric | What it tells you | Why it misleads across channels |
|---|---|---|
| Open rate | How visible the message was | Definitions differ; SMS has no true open event |
| Click rate | Interest in the specific offer | Push deep links bypass a browser click entirely |
| Revenue per message | Efficiency of a single send | Rewards sending to small, high-intent slices |
| Revenue per subscriber | Value of the relationship | Ignores how hard the opt-in was to acquire |
| Opt-out or uninstall rate | The cost of the send | Lagging, and rarely charged back to the campaign |
| Incremental revenue vs holdout | Actual channel contribution | None: this is the number to govern by |
Category matters here as much as channel mechanics. Replenishable and subscription products generate natural, welcome message triggers (a reorder reminder is useful, not intrusive), which is why the economics look very different across catalogue types. Our breakdown of which subscription D2C models actually work covers where that recurring cadence genuinely exists.
Frequency caps before fatigue sets in
Fatigue is the constraint that eventually sets your sending volume, and it is cheaper to respect it than to discover it.
What fatigue looks like in the data
Watch four indicators together rather than any one in isolation:
- Opt-out rate per send on SMS, tracked as a trend rather than a single campaign number.
- Permission revocation and uninstall rate on push, measured in the 72 hours after each send.
- Declining click rate at a stable send volume, which signals learned ignoring before it signals churn.
- Complaint or spam-report rate on SMS, which is what carrier filters watch.
The dangerous pattern is flat revenue with a rising opt-out rate. Revenue holds because you are sending more; the audience is shrinking underneath it. That trade runs for a quarter or two and then stops working abruptly.
Practical cap ranges
There is no universal correct frequency, but the ranges most retention teams converge on sit in a predictable band. For promotional SMS, two to six messages a month is a common envelope for a mainstream D2C brand, with the lower end for considered purchases and the upper end for fast replenishables. Promotional push tolerates more, often 4–12 a month, because it is less intrusive and easier to ignore. Transactional and triggered messages (shipping updates, back-in-stock alerts, order confirmations) should sit outside the promotional cap entirely, because customers want them.
Set the cap in one place that both channels respect. A customer who receives three SMS and nine pushes in a week has received twelve interruptions from your brand, whatever your per-channel dashboards say.
Message quality is a frequency multiplier
A relevant, well-timed message buys you headroom; a generic blast spends it. Back-in-stock alerts, price-drop notifications on a watched item, and reorder reminders at the right interval routinely sustain higher frequency than broad promotional sends, because each one is specific to something the recipient already told you they cared about. Our guide to SMS marketing for retail without annoying your list goes deeper on cadence and copy discipline.
Compliance basics for SMS marketing
This section is general information, not legal advice. Messaging rules differ by jurisdiction, change over time, and apply differently depending on your business and how consent was collected. Every figure and requirement below should be verified against the primary source before you act on it.
The United States
US text marketing sits primarily under the Telephone Consumer Protection Act (TCPA), administered by the Federal Communications Commission, which maintains guidance on unwanted calls and texts on its own site. The statute provides for private rights of action with statutory damages per violating message, which is why class action exposure, rather than regulatory fines, is the practical risk that US retail legal teams focus on. The FCC has continued to update its rules in this area, including revisions concerning how consumers revoke consent, so the current position must be checked directly with the FCC and the published rules in the Federal Register.
Alongside the statute sits industry guidance from the CTIA, the US wireless industry association, whose messaging principles and best practices document is what carriers and aggregators in practice enforce. Several states also maintain their own telemarketing statutes, some stricter than federal law. The Federal Trade Commission separately enforces against deceptive marketing practices.
The commonly cited operational basics, which you should confirm apply to your situation, include: obtaining clear prior express written consent for marketing texts; keeping marketing consent separate from any transactional notification consent and from a purchase condition; disclosing message frequency and that message and data rates may apply at the point of capture; honouring opt-out keywords such as STOP immediately and across all your systems; identifying your brand in messages; and retaining an auditable consent record showing what the subscriber saw and when.
The United Kingdom and the European Union
In the UK, marketing texts fall under the Privacy and Electronic Communications Regulations alongside the UK GDPR, enforced by the Information Commissioner’s Office, which publishes direct marketing guidance. A narrow exemption sometimes referred to as the soft opt-in can apply in specific circumstances involving existing customers and similar products, but its scope is precise and should be assessed with professional advice rather than assumed.
Across the EU the equivalent framework is the ePrivacy Directive as implemented in each member state, read together with the GDPR. Implementation genuinely differs by country, so a consent flow approved for one market is not automatically compliant in the next.
What push notifications do not escape
Push is not a regulatory free pass. It is governed by Apple App Store Review Guidelines and Google Play policy, both of which restrict using notifications for marketing without consent and can result in app removal. Data protection law still applies to the profiling and targeting behind the send.
There is an important asymmetry to keep in view. SMS carries statutory damages in the US; push carries platform risk. A compliance failure on SMS can produce litigation. A policy failure on push can remove your app from the store, which removes the channel entirely.
| Compliance dimension | SMS (US focus) | App push |
|---|---|---|
| Primary framework | TCPA and FCC rules, state telemarketing law | Apple and Google platform policy |
| Industry layer | CTIA messaging principles, carrier rules | OS permission model |
| Consent standard | Clear prior express written consent for marketing | OS-level permission plus platform policy |
| Opt-out mechanism | Keyword handling, honoured promptly | OS settings, in-app preferences, uninstall |
| Typical enforcement route | Private litigation, regulator action | App review, store removal |
| UK and EU overlay | PECR plus UK GDPR; ePrivacy plus GDPR | GDPR for the underlying profiling |
Nothing in this article is legal, tax or customs advice, and it does not establish any professional relationship. Rules, thresholds and enforcement priorities change, and the correct answer depends on facts specific to your business. Before scaling a messaging programme, consult a qualified attorney with telecommunications or privacy experience, and verify current requirements directly with the FCC, the CTIA, the ICO or the relevant national regulator in each market you message into. A short review before launch is materially cheaper than a class action afterwards. Background on the statute itself is summarised on Wikipedia’s page on the TCPA, which is a useful orientation but not a substitute for the primary text.
Running both without doubling the annoyance
For most brands above a certain size the answer is both channels, separated by job rather than by audience.
Give each channel a distinct role
The division that works in practice follows urgency and intimacy. SMS handles time-bound and high-value moments: a sale closing tonight, a back-in-stock alert on a waitlisted item, a delivery exception. Push handles lower-stakes, higher-frequency engagement for people who already chose a deeper relationship: a new drop, content, loyalty progress, a personalised recommendation.
The failure mode is sending identical campaigns down both pipes. The customer who is on both lists gets the same message twice and reads it as carelessness, not emphasis.
Build one suppression layer
Three rules, enforced centrally rather than per channel:
- Prefer push where it is available. If a customer is push-reachable and the message is not time-critical, send push and save the SMS cost and the SMS fatigue budget.
- Reserve SMS for urgency and for the unreachable. Customers with no app, or messages with a hard deadline, justify the per-message cost.
- Cap total interruptions per person per week across both channels, in one system, with transactional messages excluded.
This requires a single customer profile that holds app install state, push permission state, and SMS consent state together. If those three facts live in three different tools, you cannot run the logic, and you will keep double-sending.
Sequence rather than duplicate
A workable pattern for a genuinely important moment: push first, then SMS only to people who did not engage with the push within a set window, then stop. One message per person per moment, routed to whichever channel can actually reach them. That is cheaper than a broadcast on both and considerably less irritating.
Review the mix quarterly
Channel economics move. App install costs rise, SMS carrier fees change, platform permission models tighten. Re-run the fully loaded cost per thousand reachable customers and the holdout test each quarter and let the numbers reset the mix. The brands still compounding growth are the ones treating this as a measurement discipline rather than a channel preference, a trait we found repeatedly in our look at the D2C brands still growing in 2026.
If you are weighing mobile messaging against wider channel investment, including marketplace demand and paid acquisition, the trade-offs sit in context in our guide to selling on global e-commerce marketplaces.
FAQ on push and SMS for retail brands
Is SMS or push cheaper for a D2C brand?
Per message, push is cheaper because the transport is free and platforms charge on active users rather than volume. Fully loaded, the answer often flips: once you include app build and maintenance cost and divide by the small share of customers who install and grant permission, push frequently costs more per reachable customer than SMS. Run the calculation on your own numbers rather than assuming.
What opt-in rate should we expect on each channel?
Benchmarks vary too widely by vertical, price point and capture design to quote a single reliable figure. What is structurally consistent is the shape: SMS lists grow far faster because there is no install barrier, while push reaches a smaller, self-selected and usually higher-value cohort. Measure both as a percentage of your total customer base, not as a percentage of app users.
How often can we send without triggering opt-outs?
Most mainstream D2C brands settle between two and six promotional SMS a month and somewhat more promotional push, with transactional and triggered messages excluded from the cap. Treat those as starting points, then let your own opt-out and uninstall trend set the ceiling. Relevance buys headroom: a back-in-stock alert sustains higher frequency than a generic promotion.
Do we need an app to use push notifications?
For mobile push on iOS, yes. Web push works through a browser without an app and is supported on desktop browsers and, with conditions, on iOS for web apps added to the home screen, but reach and reliability are lower than native push. If an app is not justified on its own merits, web push is the pragmatic middle path rather than a full equivalent.
Why are our SMS messages not arriving even though the platform says delivered?
Carrier spam filtering is the usual cause and it is deliberately opaque. The frequent triggers are incomplete or mismatched 10DLC registration, public link shortener domains, a rising complaint rate, and sudden volume spikes. Monitor delivery receipts broken out by carrier, because one carrier blocking your traffic can hide inside a healthy blended figure.
Can we message customers who bought from us but never explicitly opted in?
Treat that as a question for your own counsel, because the answer depends on jurisdiction, on what the customer saw at the point of purchase, and on your consent records. In the US, marketing texts generally require clear prior express written consent under the TCPA framework, and a purchase alone is not usually treated as that. In the UK a narrow soft opt-in can apply to existing customers in specific circumstances. Verify with the FCC, the ICO or the relevant regulator and take advice before relying on it.
How do we attribute revenue when a customer is on both channels?
You cannot resolve this with attribution settings, because both platforms will claim the same order. Use randomised holdouts: suppress one channel for a representative slice of its reachable audience for a full purchase cycle and measure the revenue gap against the exposed group. That produces an incremental figure both channels have to live with.
Does WhatsApp replace SMS for retail messaging?
In markets where WhatsApp is the dominant messaging app it is a serious alternative, with richer formatting and different pricing based on conversation templates and categories. In the US, SMS remains the default reach channel. The compliance and consent discipline is the same in either case, and Meta’s own template approval rules add a further layer of control over what you can send.
What is the single most useful metric to govern a messaging programme?
Incremental revenue per reachable customer, measured against a holdout, with opt-out and uninstall cost charged back to the campaign that caused it. Open and click rates tell you about one message. That metric tells you whether the channel is building the customer base or quietly burning it.
What this means for your channel mix
Push and SMS are not competitors so much as tools with different cost structures and different permission economics. Push is a privilege extended by a small, committed slice of your customers and it is cheap to use and expensive to lose. SMS is a utility that reaches nearly everyone, bills you honestly for each send, and carries the heavier compliance load.
The brands that get this right do three unglamorous things. They calculate fully loaded cost per reachable customer instead of quoting per-message rates. They cap total interruptions in one place rather than per channel. And they govern on incrementality against a holdout instead of on whichever dashboard flatters them. Do those three and the channel mix question mostly answers itself.