Sisteminizin Unicode nedeniyle birden fazla SMS göndermesi yüzünden SMS fatura maliyetlerinizin tavan yaptığını fark ettiyseniz, bunu nasıl durduracağınız muhtemelen aklınızdaki en acil sorudur. Yanlışlıkla eklenen tek bir akıllı tırnak işareti veya emoji, standart ve düşük maliyetli bir SMS'i anında üç ayrı faturalandırılan segmente dönüştürerek pazarlama ve operasyon bütçenizi tüketebilir.

Adım 1: Unicode'un Neden Birden Fazla SMS Segmentine Zorladığını Anlayın

SMS ağ geçidinizin tek bir mesajı birden fazla faturalandırılan segmente bölmesini durdurmak için öncelikle SMS kodlamasının arkasındaki teknik mekanizmayı anlamalısınız. Geleneksel telekomünikasyon ağları, kısa mesajlar için iki ana kodlama standardı kullanır: GSM-7 ve UCS-2 (Unicode).

Standart GSM-7 kodlamasında, tek bir SMS segmenti 160 karaktere kadar veri içerebilir. Bu karakter kümesi standart Latin harflerini (A-Z, a-z), sayıları (0-9) ve birkaç yaygın noktalama işaretini içerir. Ancak mesaj içeriğiniz bu temel kümenin dışında tek bir karakter bile içerdiği an (örneğin eğik tırnak işareti (’), aksanlı bir harf (á, é, ö) veya bir emoji), tüm mesaj kodlaması otomatik olarak UCS-2'ye geçer.

Mesajınız UCS-2 Unicode kodlamasına geçtiğinde, segment başına karakter sınırı 160 karakterden sadece 70 karaktere düşer. Mesajınız 140 karakter uzunluğundaysa, tek bir GSM-7 segmentine kolayca sığar. Ama UCS-2'de aynı 140 karakter iki ayrı segment gerektirir. Twilio, Vonage ve MessageBird gibi geleneksel API sağlayıcıları sizi segment başına faturalandırır; bu da tek bir mesaj için maliyetinizin anında ikiye veya üçe katlanması anlamına gelir.

Kodlama StandardıMaks. Karakter (1 Segment)Maks. Karakter (Çoklu Segment)Yaygın Tetikleyici Karakterler
GSM-7160 karaktersegment başına 153 karakterStandart İngilizce harfler, sayılar, temel noktalama işaretleri
UCS-2 (Unicode)70 karaktersegment başına 67 karakterEmojiler, akıllı tırnak işaretleri (“, ”), Latin dışı alfabeler, aksanlar (é, ñ)

Bu davranış, uygulamanızın neden yalnızca Unicode nedeniyle birden fazla SMS gönderdiğini açıklar. Bunu çözmek için ya giriş verilerinizi sıkı bir şekilde temizlemeniz ya da daha uzun, modern metin mesajları gönderdiğiniz için sizi cezalandırmayan düşük maliyetli bir SMS API'sine geçiş yapmanız gerekir.

Adım 2: Kodunuzdaki Unicode Karakterlerini Temizleyin veya Değiştirin

Unicode bölünmelerini durdurmanın en hızlı programatik yolu, mesaj içeriğinizi SMS ağ geçidinize göndermeden önce temizlemektir. Arka ucunuzda, GSM-7 dışı karakterleri ayıklayan veya bunları en yakın GSM-7 eşdeğerleriyle değiştiren bir yardımcı fonksiyon yazabilirsiniz.

Basit regex desenleri ve dize değiştirme kuralları kullanarak bunu farklı programlama dillerinde nasıl uygulayabileceğiniz aşağıda açıklanmıştır.

Python Uygulaması

In Python, you can use the unicodedata module to normalize your strings, stripping accents and converting smart quotes back to standard straight quotes:

import unicodedata
import re

def clean_for_gsm7(text):
    # Replace common smart quotes and dashes
    replacements = {
        u'\u201c': '"', u'\u201d': '"',
        u'\u2018': "'", u'\u2019': "'",
        u'\u2013': '-', u'\u2014': '-'
    }
    for unicode_char, gsm_char in replacements.items():
        text = text.replace(unicode_char, gsm_char)
    
    # Normalize and strip accents
    normalized = unicodedata.normalize('NFKD', text)
    ascii_text = normalized.encode('ascii', 'ignore').decode('utf-8')
    
    # Remove any remaining non-GSM-7 characters
    gsm7_regex = re.compile(r'[^

 a-zA-Z0-9^{}\\[~]|€$@!"#%&'()*+,-./:;<=>?_]')
    cleaned_text = gsm7_regex.sub('', ascii_text)
    
    return cleaned_text

message = "Hello! Your appointment is scheduled for tomorrow at 3 PM. See you there! 😊"
print(clean_for_gsm7(message))
# Output: "Hello! Your appointment is scheduled for tomorrow at 3 PM. See you there! "

Node.js (JavaScript) Uygulaması

For JavaScript developers, you can use a similar approach using regular expressions to strip out any characters that do not conform to the GSM-7 standard:

function sanitizeToGSM7(text) {
    const smartReplacements = {
        '[\u201c\u201d]': '"',
        '[\u2018\u2019]': "'",
        '\u2013': '-',
        '\u2014': '-'
    };

    let cleaned = text;
    for (const [pattern, replacement] of Object.entries(smartReplacements)) {
        cleaned = cleaned.replace(new RegExp(pattern, 'g'), replacement);
    }

    // Remove accents
    cleaned = cleaned.normalize('NFD').replace(/[̀-ͯ]/g, '');

    // Keep only GSM-7 compatible characters
    const gsm7Pattern = /[^

 a-zA-Z0-9^{}\\[~]|€$@!"#%&'()*+,-.\/:;<=>?_]/g;
    return cleaned.replace(gsm7Pattern, '');
}

const rawMessage = "Your order is ready for pickup! 🚗";
console.log(sanitizeToGSM7(rawMessage)); 
// Output: "Your order is ready for pickup! "

Adım 3: Akıllı Tırnakları ve Aksanları GSM-7 Eşdeğerlerine Dönüştürün

Çoğu zaman Unicode karakterleri, Microsoft Word veya Google Docs gibi kelime işlemcilerden kopyala-yapıştır işlemleriyle mesajlarınıza sızar. Bu işlemciler standart düz tırnakları (' ve ") otomatik olarak eğik "akıllı" tırnaklara (, , , ) dönüştürür.

Sisteminizin bu küçük değişiklikler yüzünden birden fazla SMS göndermesini önlemek için bir karakter eşleme tablosu oluşturabilirsiniz. Bu, 70 karakterlik UCS-2 sınırını tetiklemeden metninizin okunabilirliğini korumanızı sağlar.

  • ve işaretlerini standart kesme işaretine (') dönüştürün
  • ve işaretlerini standart tırnak işaretine (") dönüştürün
  • Uzun tireleri () ve en-tireleri () standart kısa çizgiye (-) dönüştürün
  • é, á, í gibi aksanlı karakterleri aksansız karşılıkları olan e, a, i harflerine dönüştürün

Bu karakterleri açıkça eşleyerek, tek segment sınırında kalırken mesajlarınızın profesyonel görünümünü korursunuz. Bu, özellikle otomatik randevu güncellemeleri gönderirken operasyonel maliyetleri düşük tutması gereken diş klinikleri, tamirhaneler ve dil okulları gibi yerel hizmet işletmeleri için son derece yararlıdır.

Adım 4: Sabit Ücretli Segment Faturalandırması Sunan Bir SMS Ağ Geçidine Geçin

Unicode karakterlerini temizlemek işlevsel bir geçici çözüm olsa da, markanızın üslubundan ödün vermenize neden olur. 2026 yılında müşteriler genellikle emojiler, yerel aksanlar ve profesyonel biçimlendirmeler içeren doğal bir iletişim beklemektedir. Sırf yüksek telekom faturalarından kaçınmak için müşteri iletişimlerinizi temel ASCII karakterleriyle sınırlamak artık gerekli değildir.

Twilio, Plivo ve MessageBird gibi geleneksel bulut sağlayıcıları, her veri paketi için operatör ücreti ödemek zorunda olduklarından segment başına katı bir faturalandırma uygular. Ayrıca, bu eski platformları kullanmak karmaşık A2P SMS kaydı, 10DLC operatör onayları ve aylık yinelenen ücretlerle uğraşmayı gerektirir.

Giderek daha popüler hale gelen bir alternatif, MySMSGate gibi Android tabanlı bir SMS ağ geçidi kullanmaktır. MySMSGate, kendi Android telefonlarınızı ve SIM kartlarınızı tam işlevsel bir SMS gönderme cihazına dönüştürür. Mesajlarınız doğrudan telefonunuzun SIM kartı üzerinden gönderildiği için (genellikle sınırsız veya yüksek oranda indirimli yerel SMS paketleri içerir), geleneksel segment tabanlı faturalandırmayı tamamen devre dışı bırakırsınız.

MySMSGate, mesajınızın Unicode karakterler veya emojiler içermesine ya da birden fazla segmente yayılmasına bakılmaksızın, gönderilen SMS başına $0.02 sabit ücret alır. Aylık abonelik, sözleşme ve operatör kayıt gecikmeleri yoktur. Bir mesaj teslim edilemezse bakiyeniz otomatik olarak iade edilir.

Eğer toplu SMS karşılaştırması, güvenilirlik ve teslimat oranları açısından en iyi SMS API alternatiflerini arıyorsanız, Android SMS ağ geçidine geçmek tüm Unicode faturalandırma sorununu kaynağında çözer.

Adım 5: Birden Fazla Telefon Numarasından SMS Yönetimini Kurun

Birden fazla konumda faaliyet gösteren yerel hizmet işletmeleri için mesajlaşma altyapısını yönetmek hızla karmaşık hale gelebilir. Beş diş kliniği veya üç oto tamirhanesi gibi birden fazla şubeyi yönetiyorsanız, tek bir merkezi arayüzden birden fazla telefon numarasından SMS yönetimini destekleyen bir sisteme ihtiyacınız vardır.

MySMSGate ile tek bir hesap paneline sınırsız sayıda Android cihaz bağlayabilirsiniz. Bu, birden fazla numarayı sorunsuz bir şekilde yönetmenizi sağlar:

  1. Hesabınızı oluşturun: API anahtarınızı almak için MySMSGate adresine kaydolun.
  2. Android uygulamasını yükleyin: MySMSGate yardımcı uygulamasını Android cihazlarınıza indirin.
  3. QR Kod ile bağlanın: Her telefonun kamerasını kullanarak web panelinizde görüntülenen QR kodunu taratın. Bu, karmaşık API anahtarları yazmanıza gerek kalmadan cihazları anında merkezi hesabınıza bağlar.
  4. Çift SIM Kartları Yönetin: Telefonlarınız Çift SIM destekliyorsa, doğrudan panelinizden veya API çağrınızdan mesajlarınızı tam olarak hangi SIM yuvasından göndereceğinizi seçebilirsiniz.

Bu çoklu cihaz yapısı, giden bildirimleri müşterilerinizin zaten tanıdığı yerel numaralar üzerinden yönlendirmenizi sağlayarak açılma ve yanıt oranlarını önemli ölçüde artırır. Gelen tüm yanıtlar otomatik olarak web tabanlı Web Sohbetleri panelinize iletilir ve doğrudan bilgisayarınızdan gerçek zamanlı, çift yönlü sohbet olanağı sunar.

Adım 6: REST API Üzerinden İlk Unicode Güvenli SMS'inizi Gönderin

Bireysel bir geliştirici, serbest çalışan veya teknik bilgiye sahip bir işletme sahibiyseniz, MySMSGate'i yazılımınıza entegre etmek son derece kolaydır. Platform, minimum kurulumla SMS bildirimlerini tetiklemenizi sağlayan temiz, tek uç noktalı (endpoint) bir REST API sunar.

cURL kullanarak SMS göndermek için nasıl POST isteği yapacağınıza dair bir örnek aşağıda verilmiştir. Segment maliyet artışı konusunda endişelenmeden emojileri ve özel Unicode karakterlerini dahil edebileceğinize dikkat edin:

curl -X POST https://mysmsgate.net/api/v1/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+1234567890",
    "message": "Your vehicle is ready for pickup! 🚗 Please reply to this message if you have any questions.",
    "device_id": "your_device_id",
    "sim_slot": 1
  }'

Daha ayrıntılı dil entegrasyonları için, Python, Node.js, PHP, Go ve Ruby için üretime hazır kod parçacıklarının yanı sıra Zapier, Make.com, ve n8n gibi otomasyon platformları için önceden oluşturulmuş konektörler içeren resmi MySMSGate API dokümantasyonunu inceleyebilirsiniz.

Sıkça Sorulan Sorular

Unicode SMS bölünmesi, karakter sınırları ve faturalandırma yapılarıyla ilgili en yaygın soruların yanıtlarını aşağıda bulabilirsiniz.

Neden tek bir emoji SMS'imin birden fazla mesaj olarak gönderilmesine neden oluyor?

Standart kısa mesajlar, segment başına 160 karaktere kadar izin veren GSM-7 kodlamasını kullanır. Emojiler GSM-7 karakter kümesinin bir parçası değildir. Bir emoji eklediğinizde, operatör tüm mesajı UCS-2 (Unicode) kodlamasına geçirmek zorundadır ve bu da segment sınırını 70 karaktere düşürür. Mesajınız 70 karakterden uzunsa birden fazla segmente bölünür ve geleneksel API'ler sizden her segment için ücret alır.

Göndermeden önce metnimin Unicode içerip içermediğini nasıl kontrol edebilirim?

GSM-7 dışı karakterleri tespit etmek için çevrimiçi SMS uzunluğu hesaplayıcılarını kullanabilir veya kodunuzda basit bir regex araması çalıştırabilirsiniz. Alternatif olarak, veritabanınızdaki GSM-7 dışı karakterleri giden SMS sırasına aktarmadan önce işaretleyen veya temizleyen doğrulama betikleri yazabilirsiniz.

MySMSGate, Unicode veya çoklu segment mesajları için ekstra ücret alıyor mu?

Hayır. 160 veya 70 karakterlik segment başına fatura kesen Twilio veya Vonage gibi geleneksel API'lerin aksine, MySMSGate gönderilen mesaj başına $0.02 sabit ücret alır. Mesaj doğrudan Android telefonunuzun SIM kartı üzerinden yönlendirildiği için segment başına ödeme yapmazsınız; böylece gizli ücretler hakkında endişelenmeden emojiler ve uzun mesajlar gönderebilirsiniz.

Android SMS ağ geçidi kullanmak için operatör veya 10DLC kaydına ihtiyacım var mı?

Hayır. MySMSGate mesajları kendi fiziksel Android telefonunuz ve SIM kartınız üzerinden yönlendirdiği için, mesajlarınız standart kişiden kişiye (P2P) trafik olarak gönderilir. Bu, karmaşık, pahalı ve zaman alıcı A2P 10DLC kaydından geçmeniz veya operatör onaylarını beklemeniz gerekmediği anlamına gelir.