Se você gerencia um negócio de serviços locais, como uma clínica médica, escola de reforço ou oficina mecânica, saber se seus clientes realmente veem suas mensagens é fundamental. Neste tutorial, explicaremos como obter o status do SMS (se foi lido ou não) a partir do gateway de SMS, esclareceremos as limitações técnicas dos protocolos de SMS e mostraremos como implementar um rastreamento confiável de entrega e leitura para suas notificações enviadas.

Passo 1: Entenda a diferença entre o status de SMS Entregue e Lido

Antes de mergulhar nas integrações de API, é vital entender a diferença técnica entre o status de SMS entregue e lido. A tecnologia tradicional de SMS foi construída sobre protocolos de telefonia celular projetados há décadas. Nesse ambiente, "os usuários podem se comunicar usando atualizações rápidas de status de 160 caracteres ou menos." Devido a essa infraestrutura legada, a rede global de telecomunicações suporta apenas confirmações de entrega, não confirmações de abertura ou leitura.

Isso é muito diferente dos aplicativos modernos de mensagens instantâneas (como WhatsApp, iMessage ou RCS), onde "esse diálogo fluido permite enviar mensagens, fotos e vídeos para qualquer pessoa" com indicadores de digitação nativos e os tiques azuis de "lido". O SMS padrão das operadoras não possui um pacote de rede nativo que informe ao gateway quando um usuário tocou em uma mensagem de texto para abri-la.

Em vez disso, dependemos do significado dos status do gateway de SMS mapeados pelo seu provedor de gateway. Veja o que esses status normalmente significam nos logs do seu gateway de SMS:

StatusSignificado técnicoSignifica "Lido"?
EnviadoA mensagem saiu do gateway e foi aceita pela rede da operadora de celular.Não. O telefone pode até estar desligado.
EntregueO aparelho celular do destinatário enviou uma confirmação de volta para a operadora confirmando o recebimento. Este é o seu status de confirmação de SMS.Não necessariamente. Está no dispositivo deles, mas eles podem ainda não ter aberto.
FalhouA mensagem não pôde chegar ao aparelho (por exemplo, número desconectado, erro de roteamento de rede).Não.

Para rastrear com precisão se uma mensagem foi realmente lida, as empresas usam uma combinação de relatórios de entrega no nível da operadora e links de rastreamento inteligentes no nível do aplicativo, os quais configuraremos nas etapas a seguir.

Passo 2: Configure seu gateway de SMS Android para verificar o status de entrega do SMS

Para começar a rastrear suas mensagens, você precisa de um gateway de SMS que exponha nativamente relatórios de entrega sem escondê-los atrás de contratos corporativos caros. Gateways tradicionais como o Twilio exigem registro complexo de A2P 10DLC, aprovação de operadoras e cobram taxas altas por segmento. Uma alternativa mais simples e econômica para pequenas empresas é o MySMSGate.

O MySMSGate transforma seu próprio telefone Android e cartão SIM em um gateway de SMS. Como você está enviando a partir do seu próprio número de telefone local, você ignora os bloqueios de registro das operadoras e pode facilmente verificar o status de entrega do SMS diretamente do seu painel ou API.

Para configurar seu gateway e começar a rastrear o status de entrega, siga estas etapas:

  1. Vá para a página de registro do MySMSGate e crie uma conta gratuita.
  2. Baixe e instale o aplicativo Android do MySMSGate no seu telefone.
  3. Escaneie o código QR exibido no seu painel web usando o aplicativo móvel para vincular instantaneamente o seu telefone. Nenhuma chave de API precisa ser digitada manualmente.
  4. Envie um SMS de teste a partir do painel web.

Assim que a mensagem for enviada, seu telefone Android retornará o relatório de entrega de nível de operadora de volta para o seu painel do MySMSGate em tempo real. Se uma mensagem falhar, o MySMSGate reembolsa automaticamente o seu saldo, protegendo seus custos operacionais.

Passo 3: Configure o webhook de callback de status dos relatórios de entrega do gateway de SMS Android

Para desenvolvedores que integram notificações por SMS em seu próprio CRM, sistema de reservas ou software personalizado, fazer polling em um endpoint de API para verificar o status de entrega é ineficiente. Em vez disso, você deve configurar um callback de status dos relatórios de entrega do gateway de SMS Android usando webhooks.

Esta seção explica como obter o status de entrega do SMS a partir de configurações de webhook de API. Quando o seu telefone Android conectado entrega a mensagem ao aparelho do destinatário, ele recebe um relatório de entrega interno da operadora local. O MySMSGate captura esse evento e publica instantaneamente a atualização de status no seu servidor.

Aqui está um exemplo de como lidar com o payload de callback de status de relatórios de entrega do gateway de SMS Android em uma aplicação 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)

Ao implementar este callback, sua aplicação de backend sempre ficará em sincronia com o status em tempo real de suas mensagens enviadas, permitindo que você crie fluxos de trabalho automatizados de acompanhamento para entregas com falha.

Como os protocolos padrão de SMS não oferecem suporte a uma confirmação nativa de "Leitura", como as empresas de serviços inteligentes realmente rastreiam se um cliente abriu e leu sua mensagem? A solução padrão do setor é o Rastreamento de Links Inteligentes.

Em vez de enviar uma mensagem de texto simples, você inclui um link de rastreamento exclusivo e encurtado no seu SMS. Quando o destinatário toca no link, ele é brevemente direcionado pelo seu servidor de rastreamento antes de ser redirecionado para o destino final (como uma fatura, confirmação de reserva ou página de detalhes do agendamento). Esse redirecionamento acontece em milissegundos e funciona como sua "Confirmação de Leitura".

Aqui está o fluxo de trabalho passo a passo para implementar isso:

  1. Gere um token exclusivo: Para cada SMS enviado, gere um identificador curto e exclusivo (por exemplo, myshop.co/r/x89D2).
  2. Mapeie o token no seu banco de dados: Associe x89D2 ao número de telefone do destinatário, à mensagem específica enviada e a um status de "Lido" inicializado como False.
  3. Envie o SMS: Envie a mensagem contendo a URL curta por meio da API ou painel do MySMSGate.
  4. Registre o redirecionamento: Quando o usuário toca no link, seu servidor registra a solicitação recebida para x89D2, atualiza o registro do banco de dados para Read = True junto com o carimbo de data/hora e redireciona imediatamente o usuário para a página de destino real.

Este método oferece um rastreamento de leitura 100% preciso e fornece dados valiosos sobre o engajamento do usuário, ajudando você a otimizar seus modelos de comunicação.

Passo 5: Compare o rastreamento de status de SMS entre gateways

Ao selecionar uma plataforma para o seu negócio, é útil analisar como diferentes gateways lidam com o rastreamento de entrega, preços e complexidade do sistema. Embora muitos desenvolvedores procurem por um tutorial de callback de status de entrega de SMS do Twilio, eles geralmente descobrem que configurar e manter a infraestrutura de nuvem do Twilio para notificações locais básicas é excessivamente complexo e caro.

Abaixo está uma comparação direta de recursos e capacidades de rastreamento entre o MySMSGate e os gateways de nuvem tradicionais:

RecursoMySMSGateGateways de Nuvem Tradicionais (Twilio / Plivo)
Rastreamento de status de entregaEm tempo real via webhooks e painelEm tempo real via webhooks
Modelo de preçoValor fixo de $0,02 por SMS. Sem taxas mensais.Variável ($0,05 - $0,08+ por SMS) + aluguel mensal de número
Cobrança por tamanho de mensagemCobrança única e fixa por mensagem, independentemente do tamanhoCobrado por segmento de 160 caracteres (mensagens concatenadas custam o dobro/triplo)
Sender ID e registro 10DLCNenhum exigido. Envia a partir do seu próprio chip Android.Registro obrigatório, taxas de operadora e atrasos rigorosos de aprovação
Reembolso de mensagens com falhaReembolso automático em caso de falha na entregaSem reembolsos. Você paga por tentativas que falharam.
Complexidade de configuraçãoEscanear código QR no celular AndroidConfiguração de API altamente técnica e verificação regulatória

Para empresas de serviços locais que operam fora dos Estados Unidos, o MySMSGate oferece uma abordagem muito mais prática. Você pode ler mais sobre opções alternativas em nosso guia completo sobre comparação de alternativas ao Twilio ou conferir nosso guia de API de SMS mais barata para otimizar seu orçamento de comunicação.

Perguntas frequentes

Aqui estão as respostas para as perguntas mais comuns sobre a entrega de SMS e o rastreamento do status de leitura.

É possível ver se um SMS foi lido ou aberto?

Não, o protocolo padrão de SMS celular não suporta confirmações de leitura nativas. Para rastrear se um SMS foi lido, você deve incluir um link de rastreamento exclusivo e encurtado no corpo da mensagem e monitorar quando o destinatário toca nesse link.

Qual é a diferença entre o status de entregue e lido?

O status entregue significa que a rede da operadora transferiu com sucesso a mensagem de texto para o aparelho celular do destinatário. O status lido significa que o usuário abriu e visualizou ativamente a mensagem. O SMS padrão rastreia apenas a entrega; links de rastreamento no nível do aplicativo são necessários para rastrear o status de leitura.

Como obtenho relatórios de entrega em tempo real usando o MySMSGate?

O MySMSGate encaminha os relatórios de entrega diretamente da rede da operadora do seu telefone Android de volta para a sua conta. Você pode visualizar esses status de entrega em tempo real no seu painel web ou configurar um webhook de callback de status para receber solicitações POST instantâneas no seu servidor.

Preciso de aprovação da operadora ou registro 10DLC para rastrear o status de entrega?

Não. Quando você usa o MySMSGate, você envia mensagens através do seu próprio telefone Android e cartão SIM. Como você está usando sua própria linha móvel pessoal ou comercial, não precisa de registro 10DLC, verificação de marca ou aprovação da operadora para enviar e rastrear suas mensagens.