Si vous gérez une entreprise de services de proximité, comme une clinique médicale, un centre de soutien scolaire ou un garage automobile, il est essentiel de savoir si vos clients lisent réellement vos messages. Dans ce tutoriel, nous allons vous expliquer comment obtenir le statut lu ou non d'un SMS depuis la passerelle, clarifier les limites techniques des protocoles SMS et vous montrer comment mettre en place un suivi fiable de la distribution et de la lecture de vos notifications sortantes.

Étape 1 : Comprendre la différence entre le statut distribué et lu d'un SMS

Avant de vous lancer dans les intégrations d'API, il est indispensable de comprendre la différence technique entre le statut distribué et lu d'un SMS. La technologie SMS traditionnelle repose sur des protocoles cellulaires conçus il y a plusieurs décennies. Dans cet environnement, "les utilisateurs peuvent communiquer à l'aide de mises à jour de statut rapides de 160 caractères ou moins." En raison de cette infrastructure historique, le réseau télécom mondial ne prend en charge que les accusés de réception (distribution), et non les accusés d'ouverture ou de lecture.

Cela est très différent des applications de messagerie instantanée modernes (comme WhatsApp, iMessage ou RCS), où "ce dialogue fluide vous permet d'envoyer des messages, des images et des vidéos à n'importe qui" avec des indicateurs de saisie natifs et des coches bleues de "lecture". Le SMS standard des opérateurs ne possède pas de paquet réseau natif informant la passerelle lorsqu'un utilisateur a cliqué sur un SMS pour l'ouvrir.

À la place, nous nous appuyons sur la signification des statuts de la passerelle SMS définie par votre fournisseur. Voici ce que ces statuts signifient généralement dans les journaux de votre passerelle SMS :

StatutSignification techniqueSignifie-t-il "Lu" ?
EnvoyéLe message a quitté la passerelle et a été accepté par le réseau de l'opérateur cellulaire.Non. Le téléphone pourrait même être éteint.
DistribuéLe téléphone mobile du destinataire a renvoyé un accusé de réception à l'opérateur confirmant la réception. Il s'agit de votre statut de réception du SMS.Pas nécessairement. Le message est sur leur appareil, mais ils ne l'ont peut-être pas encore ouvert.
ÉchouéLe message n'a pas pu atteindre le téléphone (ex. numéro non attribué, erreur de routage réseau).Non.

Pour suivre avec précision si un message a réellement été lu, les entreprises combinent les rapports de distribution des opérateurs et les liens de suivi intelligents au niveau de l'application, que nous allons configurer dans les étapes suivantes.

Étape 2 : Configurer votre passerelle SMS Android pour vérifier le statut de distribution des SMS

Pour commencer à suivre vos messages, vous avez besoin d'une passerelle SMS qui expose nativement les rapports de distribution sans les masquer derrière des contrats d'entreprise onéreux. Les passerelles traditionnelles comme Twilio nécessitent un enregistrement A2P 10DLC complexe, l'approbation des opérateurs et facturent des frais élevés par segment. Une alternative plus simple et plus rentable pour les petites entreprises est MySMSGate.

MySMSGate transforme votre propre téléphone Android et votre carte SIM en une passerelle SMS. Comme vous envoyez vos messages depuis votre propre numéro de téléphone local, vous contournez les blocages d'enregistrement des opérateurs et vous pouvez facilement vérifier le statut de distribution des SMS directement depuis votre tableau de bord ou via l'API.

Pour configurer votre passerelle et commencer à suivre le statut de distribution, suivez ces étapes :

  1. Allez sur la page d'inscription de MySMSGate et créez un compte gratuit.
  2. Téléchargez et installez l'application Android MySMSGate sur votre téléphone.
  3. Scannez le code QR affiché sur votre tableau de bord web à l'aide de l'application mobile pour associer instantanément votre téléphone. Aucune clé API n'a besoin d'être saisie manuellement.
  4. Envoyez un SMS de test depuis le tableau de bord web.

Une fois le message envoyé, votre téléphone Android renverra le rapport de distribution de l'opérateur en temps réel vers votre tableau de bord MySMSGate. Si l'envoi d'un message échoue, MySMSGate rembourse automatiquement votre solde, protégeant ainsi vos coûts opérationnels.

Étape 3 : Configurer le webhook de rappel de statut des rapports de distribution de la passerelle SMS Android

Pour les développeurs qui intègrent des notifications SMS dans leur propre CRM, moteur de réservation ou logiciel personnalisé, interroger périodiquement (polling) un point de terminaison d'API pour vérifier le statut de distribution est inefficace. À la place, vous devriez configurer un webhook de rappel de statut pour les rapports de distribution de votre passerelle SMS Android (android-sms-gateway delivery reports status callback).

Cette section explique comment obtenir le statut de distribution d'un SMS via un webhook d'API. Lorsque votre téléphone Android connecté distribue le message sur l'appareil du destinataire, il reçoit un rapport de distribution interne de l'opérateur local. MySMSGate capture cet événement et envoie instantanément la mise à jour du statut à votre serveur.

Voici un exemple de gestion de la charge utile (payload) du rappel de statut de distribution (android-sms-gateway delivery reports status callback sms) dans une application Python Flask :

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/webhooks/sms-status', methods=['POST'])
def handle_sms_status_callback():
    data = request.json
    
    # Extract key parameters from the MySMSGate webhook payload
    message_id = data.get('message_id')
    status = data.get('status')  # e.g., 'delivered', 'failed', 'sent'
    recipient = data.get('to')
    error_code = data.get('error_code')
    
    print(f"Message {message_id} to {recipient} updated to status: {status}")
    
    if status == 'delivered':
        # Update your database to mark notification as delivered
        # update_booking_notification_status(message_id, 'Delivered')
        pass
    elif status == 'failed':
        # Handle failed delivery (e.g., alert staff, retry via alternative channel)
        # log_failed_delivery(message_id, error_code)
        pass
        
    return jsonify({"status": "success"}), 200

if __name__ == '__main__':
    app.run(port=5000)

En implémentant ce rappel, votre application backend restera toujours synchronisée avec le statut en temps réel de vos messages sortants, vous permettant de créer des flux de travail automatisés pour relancer les envois ayant échoué.

Étape 4 : Suivre le statut réel de "Lecture" à l'aide de liens de suivi intelligents

Puisque les protocoles SMS standards ne prennent pas en charge de confirmation de lecture native, comment les entreprises de services intelligentes suivent-elles réellement si un client a ouvert et lu leur message ? La solution standard de l'industrie est le suivi par lien intelligent (Smart Link Tracking).

Au lieu d'envoyer un message en texte brut, vous incluez un lien de suivi raccourci et unique dans votre SMS. Lorsque le destinataire clique sur le lien, il est brièvement redirigé vers votre serveur de suivi avant d'être renvoyé vers sa destination finale (comme une facture, une confirmation de réservation ou une page de détails de rendez-vous). Cette redirection s'effectue en quelques millisecondes et fait office d'accusé de lecture.

Voici le flux de travail étape par étape pour mettre cela en œuvre :

  1. Générer un jeton unique : Pour chaque SMS envoyé, générez un identifiant court et unique (par exemple, myshop.co/r/x89D2).
  2. Associer le jeton dans votre base de données : Associez x89D2 au numéro de téléphone du destinataire, au message spécifique envoyé et à un statut "Lu" initialisé à False.
  3. Envoyer le SMS : Envoyez le message contenant l'URL courte via l'API ou le tableau de bord de MySMSGate.
  4. Enregistrer la redirection : Lorsque l'utilisateur clique sur le lien, votre serveur enregistre la requête entrante pour x89D2, met à jour l'enregistrement dans la base de données à Read = True avec l'horodatage, et redirige immédiatement l'utilisateur vers la page de destination réelle.

Cette méthode vous offre un suivi de lecture précis à 100 % et fournit des données précieuses sur l'engagement des utilisateurs, vous aidant ainsi à optimiser vos modèles de communication.

Étape 5 : Comparer le suivi des statuts SMS entre les passerelles

Lors du choix d'une plateforme pour votre entreprise, il est utile d'examiner comment les différentes passerelles gèrent le suivi de la distribution, les tarifs et la complexité du système. Bien que de nombreux développeurs recherchent un tutoriel sur le rappel de statut de distribution SMS Twilio (twilio sms delivery status callback tutorial), ils découvrent souvent que la configuration et la maintenance de l'infrastructure cloud de Twilio pour des notifications locales de base sont excessivement complexes et coûteuses.

Vous trouverez ci-dessous une comparaison directe des capacités de suivi et des fonctionnalités entre MySMSGate et les passerelles cloud traditionnelles :

FonctionnalitéMySMSGatePasserelles cloud traditionnelles (Twilio / Plivo)
Suivi du statut de distributionEn temps réel via webhooks et tableau de bordEn temps réel via webhooks
Modèle de tarificationTarif fixe de 0,02 $ par SMS. Aucun frais mensuel.Variable (0,05 $ - 0,08 $ + par SMS) + location mensuelle de numéro
Facturation à la longueur des messagesUn tarif fixe unique par message, quelle que soit sa longueurFacturé par segment de 160 caractères (les messages concaténés coûtent le double ou le triple)
Identifiant de l'expéditeur et enregistrement 10DLCAucun requis. Envoi depuis votre propre carte SIM Android.Enregistrement obligatoire, frais d'opérateur et délais d'approbation stricts
Remboursement des messages échouésRemboursement automatique en cas d'échec de distributionAucun remboursement. Vous payez pour les tentatives échouées.
Complexité de configurationScannez le code QR sur votre téléphone AndroidConfiguration d'API très technique et vérification réglementaire

Pour les entreprises de services de proximité opérant en dehors des États-Unis, MySMSGate offre une approche beaucoup plus pratique. Vous pouvez en savoir plus sur les alternatives dans notre guide complet de comparaison des alternatives à Twilio ou consulter notre guide de l'API SMS la moins chère pour optimiser votre budget de communication.

Foire aux questions

Voici les réponses aux questions les plus fréquentes concernant la distribution des SMS et le suivi du statut de lecture.

Peut-on voir si un SMS est lu ou ouvert ?

Non, le protocole SMS cellulaire standard ne prend pas en charge d'accusés de lecture natifs. Pour suivre si un SMS a été lu, vous devez inclure un lien de suivi unique et raccourci dans le corps du message et surveiller le moment où le destinataire clique sur ce lien.

Quelle est la différence entre le statut distribué et lu ?

Le statut distribué signifie que le réseau de l'opérateur a transmis avec succès le SMS au téléphone mobile du destinataire. Le statut lu signifie que l'utilisateur a activement ouvert et consulté le message. Le SMS standard ne suit que la distribution ; des liens de suivi au niveau de l'application sont requis pour suivre le statut de lecture.

Comment obtenir des rapports de distribution en temps réel avec MySMSGate ?

MySMSGate transfère les rapports de distribution directement depuis le réseau de l'opérateur de votre téléphone Android vers votre compte. Vous pouvez consulter ces statuts de distribution en temps réel sur votre tableau de bord web ou configurer un webhook de rappel de statut pour recevoir des requêtes POST instantanées sur votre serveur.

Ai-je besoin de l'approbation d'un opérateur ou d'un enregistrement 10DLC pour suivre le statut de distribution ?

Non. Lorsque vous utilisez MySMSGate, vous envoyez des messages via votre propre téléphone Android et votre carte SIM. Puisque vous utilisez votre propre ligne mobile personnelle ou professionnelle, vous n'avez pas besoin d'enregistrement 10DLC, de vérification de marque ou d'approbation d'opérateur pour envoyer et suivre vos messages.