Pokud provozujete lokální služby, jako je lékařská klinika, jazyková škola nebo autoservis, je pro vás zásadní vědět, zda zákazníci vaše zprávy skutečně vidí. V tomto návodu si vysvětlíme, jak z SMS brány zjistit stav přečtení SMS, objasníme technická omezení SMS protokolů a ukážeme vám, jak implementovat spolehlivé sledování doručení a přečtení pro vaše odchozí oznámení.

Krok 1: Pochopení rozdílu mezi stavem doručení a přečtení SMS

Předtím než se ponoříte do integrace API, je zásadní pochopit technický rozdíl mezi stavem doručení a přečtení SMS. Tradiční technologie SMS je postavena na mobilních protokolech navržených před desítkami let. V tomto prostředí "mohou uživatelé komunikovat pomocí rychlých aktualizací stavu o délce 160 znaků nebo méně." Kvůli této zastaralé infrastruktuře podporuje globální telekomunikační síť pouze doručenky, nikoli potvrzení o otevření nebo přečtení.

To se výrazně liší od moderních aplikací pro rychlé zasílání zpráv (jako je WhatsApp, iMessage nebo RCS), kde "tento plynulý dialog umožňuje posílat zprávy, obrázky a videa komukoli" s nativními indikátory psaní a modrými fajfkami "přečteno". Standardní operátorské SMS nemají nativní síťový paket, který by bráně sdělil, že uživatel na textovou zprávu klepnul a otevřel ji.

Místo toho se spoléháme na význam stavů SMS brány, které definuje váš poskytovatel brány. Zde je přehled toho, co tyto stavy obvykle znamenají v logách vaší SMS brány:

StavTechnický významZnamená to "Přečteno"?
SentZpráva opustila bránu a byla přijata sítí mobilního operátora.Ne. Telefon může být dokonce vypnutý.
DeliveredMobilní telefon příjemce odeslal zpět operátorovi potvrzení o přijetí. Toto je váš stav doručenky SMS.Není to jisté. Zpráva je v jejich zařízení, ale nemuseli ji ještě otevřít.
FailedZprávu se nepodařilo doručit do telefonu (např. odpojené číslo, chyba směrování v síti).Ne.

Pro přesné sledování, zda byla zpráva skutečně přečtena, používají firmy kombinaci doručenek na úrovni operátora a chytrých sledovacích odkazů na úrovni aplikace, které nakonfigurujeme v následujících krocích.

Krok 2: Nastavení Android SMS brány pro kontrolu stavu doručení SMS

Chcete-li začít sledovat své zprávy, potřebujete SMS bránu, která nativně poskytuje doručenky, aniž by je skrývala za drahé korporátní smlouvy. Tradiční brány jako Twilio vyžadují složitou registraci A2P 10DLC, schválení operátorem a účtují si vysoké poplatky za segment. Jednodušší a nákladově efektivnější alternativou pro malé firmy je MySMSGate.

MySMSGate promění váš vlastní Android telefon a SIM kartu v SMS bránu. Protože odesíláte z vlastního místního telefonního čísla, obcházíte blokování registrací ze strany operátorů a můžete snadno kontrolovat stav doručení SMS přímo z administrace nebo API.

Chcete-li nastavit bránu a začít sledovat stav doručení, postupujte takto:

  1. Přejdete na registrační stránku MySMSGate a vytvořte si bezplatný účet.
  2. Stáhněte si a nainstalujte aplikaci MySMSGate pro Android do svého telefonu.
  3. Pomocí mobilní aplikace naskenujte QR kód zobrazený v administraci na webu a okamžitě tak propojte svůj telefon. Není nutné ručně zadávat žádné API klíče.
  4. Odešlete testovací SMS z webové administrace.

Jakmile je zpráva odeslána, váš Android telefon vrátí doručenku od operátora zpět do vaší administrace MySMSGate v reálném čase. Pokud doručení zprávy selže, MySMSGate vám automaticky vrátí kredit, což chrání vaše provozní náklady.

Krok 3: Konfigurace webhooku pro zpětné volání o stavu doručení z Android SMS brány

Pro vývojáře, kteří integrují SMS notifikace do vlastního CRM, rezervačního systému nebo vlastního softwaru, je dotazování API rozhraní (polling) na stav doručení neefektivní. Místo toho byste měli nakonfigurovat zpětné volání o stavu doručení z Android SMS brány (android-sms-gateway delivery reports status callback) pomocí webhooků.

Tato část vysvětluje, jak získat stav doručení SMS z API webhooku. Když váš připojený Android telefon doručí zprávu do telefonu příjemce, obdrží interní doručenku od místního operátora. MySMSGate tuto událost zachytí a okamžitě odešle aktualizaci stavu na váš server.

Zde je příklad, jak zpracovat data ze zpětného volání o stavu doručení z Android SMS brány v aplikaci 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)

Implementací tohoto zpětného volání bude vaše backendová aplikace vždy synchronizována s aktuálním stavem vašich odchozích zpráv, což vám umožní vytvářet automatizované postupy pro případ selhání doručení.

Krok 4: Sledování skutečného stavu "Přečteno" pomocí chytrých odkazů

Vzhledem k tomu, že standardní SMS protokoly nepodporují nativní potvrzení o přečtení, jak chytré firmy poskytující služby vlastně zjišťují, zda zákazník jejich zprávu otevřel a přečetl? Standardním průmyslovým řešením je sledování pomocí chytrých odkazů (Smart Link Tracking).

Místo odeslání běžné textové zprávy vložíte do SMS jedinečný zkrácený sledovací odkaz. Když příjemce na odkaz klepne, je na malý okamžik přesměrován přes váš sledovací server a poté přesměrován do cíle (jako je faktura, potvrzení rezervace nebo stránka s podrobnostmi o schůzce). Toto přesměrování trvá milisekundy a funguje jako vaše "potvrzení o přečtení".

Zde je postup krok za krokem, jak to implementovat:

  1. Vygenerujte jedinečný token: Pro každou odeslanou SMS vygenerujte krátký, jedinečný identifikátor (např. myshop.co/r/x89D2).
  2. Propojte token v databázi: Přiřaďte kód x89D2 k telefonnímu číslu příjemce, konkrétní odeslané zprávě a nastavte stav "Přečteno" na výchozí hodnotu False.
  3. Odešlete SMS: Odešlete zprávu obsahující zkrácenou URL adresu prostřednictvím MySMSGate API nebo administrace.
  4. Zaznamenejte přesměrování: Když uživatel klepne na odkaz, váš server zaznamená příchozí požadavek na x89D2, aktualizuje záznam v databázi na Read = True spolu s časovým razítkem a okamžitě přesměruje uživatele na skutečnou cílovou stránku.

Tato metoda vám poskytne 100% přesné sledování přečtení a poskytne cenná data o zapojení uživatelů, což vám pomůže optimalizovat šablony zpráv.

Krok 5: Porovnání sledování stavu SMS u různých bran

Při výběru platformy pro vaše podnikání je užitečné podívat se na to, jak různé brány řeší sledování doručení, ceny a celkovou složitost systému. Zatímco mnoho vývojářů hledá návod na zpětné volání o stavu doručení SMS u Twilio (twilio sms delivery status callback tutorial), často zjišťují, že nastavení a správa cloudové infrastruktury Twilio pro základní místní notifikace je příliš složitá a nákladná.

Níže je uvedeno přímé porovnání možností sledování a funkcí mezi MySMSGate a tradičními cloudovými bránami:

FunkceMySMSGateTradiční cloudové brány (Twilio / Plivo)
Sledování stavu doručeníV reálném čase přes webhooky a administraciV reálném čase přes webhooky
Cenový modelFixní 0,02 $ za SMS. Bez měsíčních poplatků.Variabilní (0,05 $ – 0,08 $ a více za SMS) + měsíční pronájem čísel
Účtování délky zprávJedna fixní platba za zprávu bez ohledu na délkuÚčtováno za segment o délce 160 znaků (spojené zprávy stojí dvojnásobek/trojnásobek)
ID odesílatele a registrace 10DLCNení vyžadováno. Odesílá se z vaší vlastní Android SIM karty.Povinná registrace, poplatky operátorům a dlouhé schvalovací lhůty
Vrácení peněz za nedoručené zprávyAutomatické vrácení peněz při selhání doručeníBez vrácení peněz. Platíte i za neúspěšné pokusy.
Složitost nastaveníNaskenování QR kódu na Android telefonuVysoce technické nastavení API a ověřování předpisů

Pro místní poskytovatele služeb působící mimo Spojené státy nabízí MySMSGate mnohem praktičtější přístup. Více o alternativních možnostech si můžete přečíst v našem podrobném průvodci srovnání alternativ k Twilio nebo se podívejte na našeho průvodce nejlevnějšími SMS API pro optimalizaci vašeho komunikačního rozpočtu.

Často kladené otázky

Zde jsou odpovědi na nejčastější dotazy týkající se doručení SMS a sledování stavu přečtení.

Lze zjistit, zda byla SMS přečtena nebo otevřena?

Ne, standardní protokol mobilních SMS nepodporuje nativní potvrzení o přečtení. Chcete-li sledovat, zda byla SMS přečtena, musíte do těla zprávy zahrnout jedinečný zkrácený sledovací odkaz a sledovat, kdy příjemce na tento odkaz klepne.

Jaký je rozdíl mezi stavem doručení a přečtení?

Stav doručení znamená, že síť operátora úspěšně přenesla textovou zprávu do mobilního telefonu příjemce. Stav přečtení znamená, že uživatel zprávu aktivně otevřel a zobrazil. Standardní SMS sledují pouze doručení; pro sledování stavu přečtení jsou vyžadovány sledovací odkazy na úrovni aplikace.

Jak získám doručenky v reálném čase pomocí MySMSGate?

MySMSGate přeposílá doručenky přímo ze sítě operátora vašeho Android telefonu zpět na váš účet. Tyto stavy doručení můžete sledovat v reálném čase na webové administraci nebo nakonfigurovat webhook pro zpětné volání stavu, abyste na svůj server dostávali okamžité POST požadavky.

Potřebuji ke sledování stavu doručení schválení operátorem nebo registraci 10DLC?

Ne. Když používáte MySMSGate, odesíláte zprávy prostřednictvím vlastního telefonu Android a SIM karty. Vzhledem k tomu, že používáte svou vlastní osobní nebo firemní mobilní linku, nepotřebujete k odesílání a sledování zpráv registraci 10DLC, ověření značky ani schválení operátorem.