MMS marketing is worth it when the picture does the selling, such as a new product, a menu, or an event flyer, and the customer would otherwise have to tap a link to see it. For everything else (reminders, confirmations, offer codes, "your order shipped"), a well-written SMS costs less, delivers more predictably, and gets read just as fast.

This guide covers where that line falls. It explains the image limits carriers actually accept, which campaigns earn the extra cost, how MMS cost differs from SMS cost, how to write fallback text so the message still works when the image doesn't, and how to send picture messages from Ready.

What MMS actually is (and what it isn't)

MMS (Multimedia Messaging Service) is the carrier standard for sending an image, GIF, short video or audio clip by text, along with a caption. It travels over the same phone numbers and the same A2P 10DLC registration as your SMS. If you are registered to text, you are registered to send picture messages. No separate approval exists.

Three things it is not:

  • It is not iMessage. A photo sent between two iPhones in blue bubbles goes over Apple's network, not carrier MMS. Business picture messages to a mixed list go as MMS.
  • It is not a way around content filtering. Carriers inspect MMS too. An image of a cannabis product or a payday-loan offer gets filtered the same way the text version would.
  • It is not guaranteed to render. Some phones have MMS switched off, are on Wi-Fi with mobile data disabled, or use plans that handle MMS badly. Landlines can't receive it at all. Ready refuses known landlines up front and doesn't charge for them.

Image size and format limits

Carriers don't publish one official spec, and limits vary by carrier and handset. These round figures are safe to plan around:

ItemSafe targetWhat happens if you exceed it
File sizeUnder 1 MB for imagesLarger files may be compressed hard, delayed or dropped on some carriers
FormatsJPEG, PNG, GIFOther formats (HEIC, WebP, TIFF) may fail or arrive as a broken attachment
Dimensions~640 to 1,000 px on the long edgeBigger images are downscaled anyway; you pay for bytes nobody sees
Animated GIFShort, few frames, under 1 MBLarge GIFs often get frozen on the first frame or stripped
VideoA few seconds, heavily compressedMost carriers cap video tightly. Link to it instead

Practical rules that follow from the table:

  1. Export for the phone, not for print. A flyer exported straight from a design tool at 3,000 px and 4 MB will arrive blurry after carrier compression, or not arrive at all. Export a 1,000 px JPEG at moderate quality and check the file size.
  2. Make text in the image big. Phones show images in a small preview bubble. A menu with 30 items in 9-point type is unreadable. Show five hero items and link the full menu.
  3. Host the file on a stable public URL. When you send through an API, the carrier fetches your image from a URL. A link that expires, needs a login, or redirects through a tracker can fail silently.

Which campaigns benefit from MMS marketing

The test is simple: would the customer need to see this to want it? If yes, a picture earns its place. If the message is information ("Tuesday 2 PM confirmed"), it doesn't.

Campaigns where a picture usually pulls its weight

  • New product drops. A photo of the new colorway or the new seasonal item. People buy what they can see, and a picture skips the "tap to find out" step.
  • Menus and daily specials. Restaurants, food trucks and bakeries texting today's special. A photo of the dish beats any description. (If you text for a food business, our 10DLC guide for food delivery and food trucks covers the registration side.)
  • Event flyers. Date, time and venue in one image people screenshot and save. Keep all of that in the caption too (see fallback text below).
  • Before/after work. Contractors, detailers and salons showing a finished job to past customers who opted in.
  • Real estate. A listing photo to a buyer who asked to be told about three-bedrooms in a given zip code.

Campaigns where SMS is the better choice

  • Appointment reminders and confirmations
  • Shipping and delivery updates
  • One-time codes and account alerts
  • Short offer codes ("15% off this weekend: code SPRING")
  • Anything that goes out often to the same people. A daily image becomes noise fast.

A reasonable pattern for many businesses is to send MMS for the few big moments a quarter and SMS for everything else.

How MMS cost differs from SMS cost

SMS is billed per segment. A single SMS segment is 160 GSM-7 characters. Longer messages split into 153-character segments, and an emoji drops the limit to 70 characters (67 per part). So a 140-character text with one emoji is 3 segments, not 1.

MMS is billed per message, not per segment. The image and caption travel together as one unit. Carriers charge more to carry an MMS than an SMS, so picture messages cost more per send almost everywhere. On Ready an MMS is a flat $0.021 plus a $0.0095 MMS carrier fee, $0.0305 all-in. Our pricing page shows the per-segment SMS rate, and the messages docs cover media sends.

Worked example: the SMS-with-a-link baseline

Before you pay for a picture, price the alternative. Assume a 5,000-contact opted-in list and a 250-character SMS with a link to a photo of the new product, with no emoji.

  • 250 characters is over 160, so it splits into 153-character parts: 2 segments
  • 5,000 contacts × 2 segments = 10,000 segments
  • On Ready Standard: 10,000 × $0.0075 = $75, plus 10,000 × $0.0045 in carrier fee

That figure is the per-segment rate plus the carrier fee. It excludes the compliance surcharge: scrubbing and landline validation are each $0.003 extra per segment when switched on for an account, and both are off by default.

Now add one emoji to that same 250-character text. It becomes unicode, which means 67-character parts and 4 segments, so 20,000 segments and double the cost. Emoji decisions move SMS budgets more than people expect.

The MMS question then becomes: does showing the picture inline earn more than the price gap between that MMS and this SMS-plus-link? For a product launch to engaged buyers, often yes. For a weekly "we're open Saturday" message, almost never.

Fallback text and accessibility

Write every MMS as if the image will fail, because for some share of your list it will.

  • Put the essential information in the caption. Event name, date, time, place and offer all belong in text, not only in the flyer. Screen readers can't read words baked into an image, and a customer whose image didn't load still needs to know what you're announcing.
  • Describe the image in a few words. "New: the Ridge jacket in olive (photo above)" gives a blind or low-vision customer the same message a sighted one gets.
  • Include a link to the full version. Full menu, product page, event page. The link should work on its own.
  • Identify yourself and keep STOP language. "Marlow Bakery: ... Reply STOP to opt out." Opt-out requirements don't change because there's a picture attached.
  • Don't put the offer code only in the image. People can't copy text out of a picture easily.

A good self-check: delete the image and reread the caption. If the message still makes sense, it's ready.

Compliance: MMS follows the same rules as SMS

Picture messages sit on your registered 10DLC campaign, so the same rules apply:

  • Register first. Unregistered traffic gets carrier-filtered. On Ready, registration is handled in-app: $25/mo for registration, plus $2 per number, with $25 charged at submit as the first month and no setup fee. Most approvals take 2 to 7 days.
  • Match the use case. If you registered for reminders and start sending promotional flyers, expect trouble. Our guide to why approved campaigns still get filtered covers the content-level checks registration doesn't fix.
  • Consent still matters. Promotional MMS goes to people who opted in, not to cold lists. Ready records your opt-in attestation per bulk send and per API send that sets consent_attested (who sent, to how many, when). That is an audit trail of your promise, not a per-contact consent record. Keep each contact's opt-in time, wording and page URL in your own store.
  • Opt-outs and quiet hours apply automatically. On Ready, STOP is honored across campaigns. A send during the recipient's quiet hours is held and sent later, and is charged only when it sends. Campaigns, drip campaigns and automations wait up to 24 hours for the window; a one-to-one or API text is held only if the window opens within 6 hours, otherwise it is refused and must be resent; a one-to-one reply to someone who texted you in the last 24 hours goes out at any hour.
  • Scrubbing is cheap insurance. TCPA exposure runs $500 to $1,500 per text. The standalone TCPA & DNC litigator scrub is $0.005 per contact. It reduces risk; it doesn't make anyone lawsuit-proof, and compliance stays the sender's responsibility.

Sending bulk MMS messaging campaigns in Ready

Ready works as an MMS platform through the same API you'd use for SMS. To attach a picture, add media_url to a single send:

POST https://api.tryready.com/v1/messages
X-API-Key: <your key>
Idempotency-Key: 6f1c2a9e-1b7d-4c55-9a0e-2f3b8d41c7aa
Content-Type: application/json

{
  "to": "+12125550199",
  "body": "Marlow Bakery: the pumpkin loaf is back today only. Photo above, full menu at example.com/menu. Reply STOP to opt out.",
  "media_url": "https://cdn.example.com/img/pumpkin-loaf-1000.jpg",
  "consent_attested": true
}

For a picture campaign, send the same body and media_url to POST /v1/messages/bulk, up to 100 recipients per call with one Idempotency-Key per call, so a retry after a timeout never sends the same picture twice. A send that leaves from out already goes from your number closest to each contact's area code. That's local presence, with a listed price of $0.0015 for each segment of a delivered text. Opt-outs, numbers on your Ban list and known landlines are refused up front and not charged, which matters more when each send costs more.

For many numbers at once, use the bulk messages endpoint. Our bulk SMS service guide explains how throughput and daily caps shape a large send. As a rough guide, a fresh standard campaign moves at about 1 to 4 segments per second. Plan launch timing around that.

If you're considering the blue line for photo-heavy conversations: it sends photos only after the contact replies, and campaigns send from regular numbers, not the blue line. It suits one-to-one threads, not picture campaigns. See blue bubble texting for business for the tradeoffs.

The practical takeaway

Use MMS when the picture is the pitch: launches, menus, flyers, finished work. Keep images under 1 MB as JPEG or PNG. Write captions that work with the image deleted. Price every picture send against the SMS-plus-link alternative before you commit. Send SMS for everything else.

If you want to try it, sign up for Ready. The first 20 texts are free one-to-one sends, so use them to test how your images render on a few real phones before you register and run a campaign.

FAQ

What is MMS marketing?

MMS marketing is sending promotional picture messages (an image, GIF or short clip plus a caption) by text to customers who opted in. It uses the same numbers and 10DLC registration as SMS.

What's the maximum image size for MMS?

Carriers don't publish one official limit. Keeping images under 1 MB, in JPEG, PNG or GIF, at roughly 640 to 1,000 px on the long edge is a safe target across major US carriers.

Is MMS more expensive than SMS?

Yes, almost everywhere, because carriers charge more to carry it. SMS is billed per segment (on Ready, $0.0075 per segment plus a $0.0045 carrier fee), while MMS is billed per message: a flat $0.021 plus a $0.0095 MMS carrier fee, $0.0305 all-in.

Do I need separate registration to send MMS?

No. Picture messages go out on your registered A2P 10DLC campaign. The content still has to match the use case you registered, so promotional flyers belong on a campaign registered for marketing.

What happens if a recipient's phone can't show the image?

They may see a broken attachment, a link, or only the caption. Write the caption so it carries the full message (who, what, when, where, plus a link) and the send still works.