SMS marketing analytics connects message delivery and clicks with matched orders and contribution. Use a worked US retail example to compare campaigns, reconcile their exports and assign follow-up work.
SMS marketing analytics compares delivery, engagement, matched orders and contribution for a defined campaign window. Start with message and order exports, then ask where the audience falls away and what the resulting orders leave after direct costs. A higher click rate does not necessarily mean a better commercial outcome.
Use a small chain of measures, each with a clear counting unit. Attempted recipients measure the intended audience. Delivered recipients measure confirmed delivery. Unique clicking recipients measure a qualifying link interaction. Purchasing recipients and orders describe what the matching rule connects to the campaign.
Preserve the distinction between a sent status and a final delivery result. Twilio's message-status documentation describes successful sending as a step before delivered or undelivered status. The reporting owner should wait for a stated cutoff and keep unresolved statuses visible rather than treating them as confirmed deliveries.
Clicks need a similar check. Twilio's link-event documentation distinguishes a customer click from a device-generated link preview. Exclude previews when the export identifies them, remove repeated clicks by the same recipient within the campaign, and describe any remaining uncertainty. A total of link events is not a count of distinct interested people.
This is a measurement exercise using existing exports. Message sending, consent administration and campaign setup sit outside this comparison.
For an illustrative US home-goods retailer, compare two campaigns using orders placed within seven days of each message. Both campaigns were sent on September 1, 2026, giving them the same time to accumulate orders and refunds. Include refunds posted through September 30, 2026, and label that refund cutoff alongside the results. Both campaign windows have fully closed before the report is prepared.
The retailer uses its existing campaign assignment on each order. Every included order has a qualifying campaign click, and each purchasing recipient placed one included order in this example. Where campaigns overlap, the business's agreed assignment gives each order to one campaign; other plausible matches stay outside the campaign totals for review.
Bring four files or equivalent worksheets:
| Export | Required fields | What it establishes |
|---|---|---|
| Message results | Campaign key, message key, anonymous recipient key, send time, final status | Attempted and delivered audiences |
| Link interactions | Campaign key, recipient key, event time, event type | Distinct qualifying clickers in the window |
| Orders and refunds | Order key, assigned campaign, recipient key, order time, sales, refunds | Matched buyers and recorded net sales |
| Campaign and order costs | Campaign key, message charges, order key, net product cost, variable order cost | Comparable contribution inputs |
Use the recipient keys already supplied in approved exports. You do not need names or phone numbers to calculate the campaign totals. Retain unmatched orders as a separate reconciliation group rather than distributing them in proportion to clicks.
The retailer sent a restock offer and a bundle offer to separate audiences. Each campaign has one message attempt per recipient, so message counts and recipient counts coincide in this example. All attempts have final results by the cutoff.
| Campaign | Attempted recipients | Delivered recipients | Failed or undelivered | Unique clickers | Purchasing recipients | Orders |
|---|---|---|---|---|---|---|
| Restock | 10,000 | 9,600 | 400 | 480 | 72 | 72 |
| Bundle | 10,000 | 9,800 | 200 | 392 | 98 | 98 |
| Total | 20,000 | 19,400 | 600 | 872 | 170 | 170 |
Delivery rate = Delivered recipients / Attempted recipients
Delivered-recipient click rate = Unique clickers / Delivered recipients
Clicker-to-buyer conversion = Purchasing recipients / Unique clickers
The same counts give:
| Campaign | Delivery rate | Delivered-recipient click rate | Clicker-to-buyer conversion | Delivered-recipient buyer rate |
|---|---|---|---|---|
| Restock | 96.0% | 5.0% | 15.0% | 0.75% |
| Bundle | 98.0% | 4.0% | 25.0% | 1.00% |
| Total | 97.0% | 4.5% | 19.5% | 0.88% |
For restock, the click rate is 480 / 9,600 = 5.0%, and buyer conversion is 72 / 480 = 15.0%. Bundle has fewer clickers but more buyers: 98 / 392 = 25.0%. The total buyer rate uses 170 / 19,400, rounded to 0.88%; it does not average the two campaign percentages.
Rates are rounded to one decimal place except the delivered-recipient buyer rate, which uses two. Keep unrounded calculations in the working file.
Sales below exclude sales tax and are already after discounts, but before refunds. Product cost is net of the cost reversals for returned goods. Variable order cost includes the selected fulfillment and payment expenses. Message cost comes from the campaign charges export.
| Campaign | Sales (USD) | Refunds (USD) | Net sales (USD) | Net product cost (USD) | Variable order cost (USD) | Message cost (USD) | Contribution (USD) |
|---|---|---|---|---|---|---|---|
| Restock | 7,200 | 600 | 6,600 | 3,000 | 600 | 300 | 2,700 |
| Bundle | 9,800 | 800 | 9,000 | 4,500 | 850 | 300 | 3,350 |
| Total | 17,000 | 1,400 | 15,600 | 7,500 | 1,450 | 600 | 6,050 |
Restock contribution is 7,200 - 600 - 3,000 - 600 - 300 = $2,700. Bundle contributes 9,800 - 800 - 4,500 - 850 - 300 = $3,350. The total checks both ways: 2,700 + 3,350 = $6,050, and 15,600 - 7,500 - 1,450 - 600 = $6,050.
That is contribution under the listed cost scope, not net profit or incremental campaign lift. The separate marketing ROI versus ROAS guide explains the broader margin test. If the decision concerns acquiring new customers, add the full cost scope in customer acquisition cost.
The campaign manager investigates the restock offer's stronger click rate but weaker buyer conversion. Merchandising checks whether landing-page availability and the offer match what recipients expected. Finance validates refunds and cost treatment before anyone ranks campaigns by contribution.
The next report should retain the same window and definitions so an apparent improvement has a comparable base. A deliberately held-out audience can support a separate incremental-effect analysis; this matched-order table cannot supply that conclusion by itself.
Keep different channel questions separate. Mobile marketing analytics follows acquisition cohorts through later use and revenue. Amazon marketing analytics reconciles seller campaign outcomes with marketplace fees and refunds.
Bring campaign delivery, qualified click, matched order and cost exports with the observation window stated. Covirage maps the columns; its tools compute and check the comparisons, and the external AI model explains the results with every figure traced to its rows. Create a free Covirage account, which takes about a minute, and bring a sample of your own data.
See Covirage for sales insights for the supporting business context.
Covirage is not affiliated with Twilio.
Define conversion as unique purchasing recipients divided by a stated audience, such as delivered recipients. Use a fixed order window and a consistent matching rule. Compare your own campaigns on that basis rather than adopting a benchmark with an unknown denominator.
Either denominator can describe a report, but the label must identify it. Delivered-recipient click rate separates engagement after delivery from delivery failures. A rate based on all attempted recipients includes both effects and should not be compared directly with the delivered-based rate.
No. Delivery status and reading are different observations. Keep the provider's final delivery result separate from qualified clicks and orders. If a report lacks a reliable attention measure, leave that question unanswered rather than labeling delivery as an open.
No. Recorded sales still need refunds, product costs, variable order expenses and message charges deducted for a contribution comparison. Even that result excludes fixed overhead and does not establish how many sales would have happened without the campaign.