Report on Your SMS Campaigns

Learning Objectives

After completing this unit, you’ll be able to:

  • Report on SMS performance.
  • Troubleshoot SMS deliverability issues.

SMS Performance

You’re delivering a world-class digital marketing strategy, so you know how important it is to analyze, test, and adjust. Now that the small but mighty SMS message is part of your plan, it’s crucial to understand how to analyze SMS performance. Let’s dig in.  

Measuring SMS Performance

Scott’s Restaurant and Bar has been sending SMS for over a month now and Simone Wright is excited to share performance with the store manager. She navigates to Analytics Builder and Reports. From the Catalog Report page, she filters the reports on MobileConnect.

Let’s check out the standard, ready-to-use reports available to Simone in the catalog. 

When to Use
SMS Account Summary
Summary of activity at the enterprise or parent level, including activity of all business units. This includes a total number of opted-in subscribers and counts of inbound and outbound messages.
You want an overview of your Marketing Cloud accounts SMS activity. Simone runs this to see an overview of all codes, including customer and employee SMS campaigns.
SMS Message Detail Report
Detailed tracking information about messages sent, including descriptive information about the message and send status at the subscriber level. You can drill down by filtering on codes, message names, templates, campaigns, keywords, and CTAs.
You want detailed, subscriber-level information about a particular message. For example, Simone uses this to see how her BURGER campaign is performing and which subscribers have responded to it.
SMS Message Summary
Activity summaries for all keywords in an account, including overall tracking information and message content for each keyword.
You want a summary to compare the performance of each keyword campaign. Simone runs this to compare her campaigns (BURGER vs. HAPPY vs. ALERTS).

SMS Deliverability

For SMS, deliverability is defined as the success of getting an SMS message delivered to a subscriber’s mobile phone. Sounds easy, right? But there are some things that can get in the way of a send (and some of it is out of your control). Just as email deliverability is influenced by email service providers and email subscriber behaviors (like a full inbox), SMS deliverability is influenced by carriers, network coverage, and mobile subscriber behavior (like a dead phone battery). So, as we talk through SMS deliverability, keep in mind that there’s only so much you can do to control delays and send failures. Staying compliant, maintaining accurate contact lists, and being mindful of message frequency and timing are a great place to start. It’s also wise to stay proactive and troubleshoot any issues to keep deliverability high. More on that next. 

Delivery Status

So how can you confirm delivery status? In addition to running a report, you can use a SQL query data view to get information about undelivered messages sent from MobileConnect. The query only shows messages that failed to reach the mobile device. How do you do this? Here are some quick steps.

  1. Create a data extension to store the results of your query. Include these field names (and field types) in your data extension:
    • MobileNumber (phone)
    • Undeliverable (Boolean)
    • BounceCount (number)
    • FirstBounceDate (date)
    • HoldDate (date)
  2. Next, navigate to Automation Studio to create a new automation.
  3. Select a starting source, Schedule.
  4. Drag SQL Query to workflow and click Choose.
  5. Select Create New Query Activity.
  6. Add query properties: name, external key, folder location, and description.
  7. Next, build your SQL query with this SQL syntax: SELECT * From _UndeliverableSms.
  8. Click Validate Syntax.
  9. Choose the data extension you created to store the query results.
  10. Choose the data action the query activity performs: Append, Update, or Overwrite.
  11. Click Save.
  12. Finally, click Run to start the query.

Need some help with SQL queries? Check out the Trailhead module, Marketing Cloud Data Management.


Delivery status can also be retrieved through the Message Contact Delivery API or QueueMO Delivery Status API.

Deliverability Troubleshooting

Something look off in your data? First things first, there are two requirements for sending that you should always check when troubleshooting. These may seem obvious, but even a simple miss can wreak havoc on deliverability.

  1. Active subscription status: Confirm that the contact record mobile number is opted in to the relevant code and subscription keyword for that campaign (for API triggered sends, this condition does not apply).
  2. Code provisioned: Confirm the code is provisioned correctly within the market you tried to send to.

Beyond that, the most basic problem is that a message simply isn’t delivered. Here are some common delivery issues and causes. 

Possible causes
Invalid number
(hard bounce)
  • Wrong length: The number does not contain the correct number of digits.
  • Unsupported number: It is a landline or some other service number.
  • Missing or wrong locale: The number does not have the correct country code prefix.
  • Unknown/inactive: The message is rejected because there is no number in the carrier directory.
Unreachable number
(soft bounce)
  • The phone is out of network coverage.
  • The phone is switched off.
  • The number is roaming without roaming services enabled.
  • The device memory is full (usually old phones that have reached the capacity of their SMS inbox).
Message validity period expired
  • A message is designated undeliverable after 48 hours of attempting to deliver the message and failing.
Blocked number (by either aggregator or carrier)
  • The number belongs to a Do Not Disturb (DND) Register.
  • A customer has opted out of SMS communications with their carrier (such as Verizon, Google Fi, and so forth)
  • The number is blocked by the carrier for other reasons.
  • The aggregator/partner has blocked the number due to a STOP request.
Number held
  • Messages that consistently fail to deliver are added to the bounce table or held list. They are added whenever messages hard bounce to the same number twice in a 30-day period.
Market not supported
  • Short codes can only be sent to one market.
  • Long codes attempt to send to whatever markets are enabled. Check supported markets under the Administration Tab.
Aggregator/Carrier filtering
  • Every market has specific restrictions and rules set by legislation or a regulatory authority for A2P messaging. In many markets, for example, carriers block messages that are of an adult, political, or religious nature.
  • Similar to email, SMS spam filters look for words like: Free Offer, Congratulations, You've won!, Gratis.
Unsupported content or
character set

  • Message exceeds the character limit.
  • Unicode characters are not supported in that market.
From Name not supported
  • From Names are not supported in that market.

Some important considerations:

  • Messages can also be sent but delayed based on the use of AMPscript, networking issues, and database traffic volume.
  • MobileConnect does not attempt to deliver a message to a held mobile number until it receives notification that at least one of the previously sent messages delivered successfully.
  • Test each message before live deployments to avoid filtering and to catch any typos or bad links.

Now that you are master of interpreting your analytics, in the next unit, we move on to adding SMS to your customer journeys in Journey Builder. TTYL (talk to you later).


Keep learning for
Sign up for an account to continue.
What’s in it for you?
  • Get personalized recommendations for your career goals
  • Practice your skills with hands-on challenges and quizzes
  • Track and share your progress with employers
  • Connect to mentorship and career opportunities