It's never great to have users unsubscribe from your service, but being able to track unsubscribes and attribute them to a particular campaign helps you monitor unsubscribes and gain insight into what may be causing them.
This article explains how users can opt out or resubscribe to SMS and how Iterable attributes and tracks these actions. Identifying the campaigns that have higher unsubscribe rates can help you shape your future content so that it better serves your users, making them less likely to opt out.
In this article
Ways to opt out
There are two ways to unsubscribe and resubscribe to SMS messages, depending on whether the sender ID is one-way or two-way enabled.
Users who receive SMS from a numeric sender ID (short code, long code, toll-free) can reply with a supported keyword to the exact number they opted out from. Users who receive SMS from an alphanumeric sender ID can visit the personalized unsubscribe by phone URL they receive in their SMS opt-out instructions.
Iterable automatically includes opt-out instructions when sending SMS campaigns. The text and language of the instructions, as well as how often they're included, vary based on the country the message is sent to (determined by the user's phone number). To learn more about these settings and how to customize them, read Customizing SMS Opt-Out Instructions
Whether a phone number is unsubscribed or resubscribed to the SMS channel overall or a single message type depends on whether you've bound a message type as part of your sender setup.
Manually unsubscribing or resubscribing a user from/to your SMS channel in Iterable does not update their preferences with your SMS provider. To be fully unsubscribed or resubscribed with both Iterable and your SMS provider, the user must reply to an SMS they received or click an SMS unsubscribe URL.
IMPORTANT
Iterable does not unsubscribe users when their SMS has bounced. To learn more, read SMS Bounces.
Unsubscribe keywords
To unsubscribe, Iterable supports these keywords:
CANCEL
END
QUIT
-
STOP
- Twilio doesn't handle the keywords HELP and STOP when sent to a short code. To set up these keywords to unsubscribe, see Advanced Opt Out (Twilio).
STOPALL
-
STOP ALL
(Telnyx only) UNSUBSCRIBE
Iterable SMS and Telnyx senders don't support unsubscribe keywords in languages other than English.
To set up customized opt-in and opt-out keywords, ask your Iterable customer success manager for help.
Resubscribe keywords
To resubscribe, Iterable supports these keywords:
START
UNSTOP
-
YES
(Twilio only)
Unsubscribe by phone URL
Users can't reply to SMS from an alphanumeric sender ID, so they can't use an opt-out keyword to unsubscribe. Instead, provide an opt-out link.
When you use Iterable SMS to send internationally from an alphanumeric sender
ID, Iterable includes a personalized unsubscribe link in the opt-out
instructions using the merge parameter {{unsubscribeByPhoneUrl}}
.
This merge parameter works by sending a user to an unsubscribe page where they can confirm opting out their phone number.
To re-subscribe, users can visit this link again and confirm resubscription.
Currently the {{unsubscribeByPhoneUrl}}
merge parameter is only available to
send in the body text of an SMS message.
Attributing SMS unsubscribes
When Iterable receives an opt out response (like STOP
, or NO
), the system
looks for all user profiles that have a phone number matching the one that
was used to unsubscribe. The system updates ListUnsubscribe
with
messageMedium: SMS
for all users who have this phone number.
Then, Iterable determines whether a campaign was sent to any of those users in the past three hours.
If a campaign was sent within three hours, Iterable attributes the SMS Unsubscribe event to that campaign using the
campaignId
andtemplateId
.If more than one campaign was sent within the three hour window, the unsubscribe is attributed to the last campaign sent.
If no campaign was sent within the three hour window, the unsubscribe is not attributed to a campaign.
TIP
If you notice that more unsubscribes are attributed to a particular campaign than to others, evaluate the strategy and content of that campaign to uncover some possible causes, so you can correct for them in the future. For example, maybe the content or timing of a particular message was unengaging. Or, maybe it didn't provide a way for the recipient to personalize their experience.
Tracking SMS unsubscribes
Iterable tracks unsubscribe requests with these metrics, which you can view in Campaign Analytics.
Total Unsubscribes tracks the total number of users, based on user profile, who unsubscribed from an SMS message sent with a campaign. This metric counts an unsubscribe each time a person unsubscribes. This can include multiple unsubscribes when, for example, a user resubscribes and then unsubscribes, again, from the same campaign.
Unique Unsubscribes tracks the number of unique users, based on user profile, who unsubscribed from an SMS message sent with a campaign. This metric counts a single unsubscribe for a single user profile. If a user resubscribes and then unsubscribes, again, from the same campaign, only one unsubscribe is counted.
SMS Unsubscribe Rate tracks the number of unique SMS unsubscribes divided by the total number of SMS messages delivered, where delivered messages are the number of messages sent minus the number of messages bounced. (SMS Unsubscribe Rate = Total Unsubscribe / Total SMS Delivered) (Total SMS Delivered = Total SMS Sends - Total SMS Bounce)
Example: Tracking unsubscribes for a single user
Consider a simple case, where a user of your app unsubscribes once from one of your SMS messages. In Campaign Analytics, you'll see one unsubscribe added to the Total SMS Unsubscribes metric, and one added to the Unique SMS Unsubscribes metric.
If this user subscribes and unsubscribes more than once (for example, following a resubscribe), Total SMS Unsubscribes is incremented each time the user unsubscribes, but Unique SMS Unsubscribes is counted only once.
Example: Tracking unsubscribes from one campaign for two profiles
In some cases, users might share a phone number, but have different user profiles. In these cases, the metrics used to track unsubscribes are incremented differently.
If one of two users with the same phone number receives a campaign (but the other user doesn't), and either user unsubscribes within three hours of its receipt, Campaign Analytics will add one unsubscribe for Total SMS Unsubscribes and one for Unique SMS Unsubscribes.
If both of these users receive the same campaign, and either user unsubscribes, Campaign Analytics will show two unsubscribes for Total SMS Unsubscribes (because two different users received the campaign), and one for Unique SMS Unsubscribes (because only one of them unsubscribed).
Example: Tracking unsubscribes from two campaigns for two profiles
Now, let's consider a case where two users share a phone number and receive different campaigns from each other.
- If User A receives Campaign A, then User B receives Campaign B, and either user unsubscribes within three hours of receipt of the campaign that was sent last (Campaign B), Campaign Analytics will add one unsubscribe for each campaign to Total SMS Unsubscribes and one for Unique SMS Unsubscribes.
Next, let's consider a case where two users share a phone number and each receive the same two campaigns.
- If both of these users receive Campaign A, first, and then Campaign B, and either user unsubscribes within three hours of receipt of the campaign that was sent last (Campaign B), Campaign Analytics will show two unsubscribes for Total SMS Unsubscribes and two for Unique SMS Unsubscribes, because both users received both campaigns, and the last one received attribution.
Want to learn more?
For more information about some of the topics in this article, check out this Iterable Academy course. Iterable Academy is open to everyone — you don't need to be an Iterable customer!