GH GambleHub

Ağdaki iletişim kanallarının optimizasyonu

1) Kanal taksonomisi ve değişmezleri

Kanallar:
  • E-posta büyük ve ucuzdur, ancak etki alanı/IP itibarına duyarlıdır.
  • SMS/Ses - yüksek teslimat/aciliyet, yüksek maliyet, ülkeye göre incelikler.
  • Push (mobil/web) - anında ve ucuza, izinlere/işletim sistemine bağlıdır.
  • Uygulama içi/Yerinde - bağlamsal ve "ücretsiz", aktif bir oturum gerektirir.
  • Anlık haberciler (WhatsApp/Telegram/Viber, vb.) Katı şablonlar/politikalar, bazen bir ücret platformudur.
  • Webhooks - ortaklar için "B2B etkinlikleri" kanalı (teknik teslimat).
  • Çağrı merkezi/sohbet operatörleri - karmaşık durumlar için manuel/yarı manuel kanallar.

Değişmezler: onaylar/hedefler, frekans sınırları, zaman pencereleri (saat dilimi/" sessiz saatler"), maliyet, SLA/SLO, gizlilik ve" silme hakkı"

2) İletişim katmanı mimarisi

mermaid flowchart LR
A [Producer: Product/Marketing/RCM] --> B [Orchestrator: Rules, Consents, SOR]
B --> C[Channel Adapters: email/sms/push/messenger/webhooks]
C --> D[Providers Pool: ESP/SMSC/FCM/APNs/Messenger APIs]
B --> E[Consent/Preference DB]
B --> F[Rate Limits/Queues/DLQ]
B --> G[Observability & SLO]
B --> H[Experiments (A/B, MAB)]
Temel bileşenler:
  • Orkestratör - kanal/rota seçimi, öncelikler, paketleme, dedup.
  • Adaptörler, sağlayıcılar için birleşik bir API'dir.
  • İzin DB - granüler onaylar/sessiz saatler/kanal tercihleri.
  • Kuyruklar - backpressure, üslü retrai, DLQ.
  • Gözlemlenebilirlik telemetri, korelasyon 'mesaj _ id ↔ user_id ↔ campaign_id'.

3) "Kanal pasaportu've sağlayıcı kataloğu

yaml channel_passport. v1:
channel: "sms"
purpose: ["security_otp","alerts","marketing_optin"]
jurisdictions: ["EU","TR","LATAM"]
consent_required: true quiet_hours: { start_local: "22:00", end_local: "08:00", except: ["security_otp"] }
slo:
delivery_within: { p95_ms: 30000 }
failure_rate: { max: "0. 8%" }
cost_targets:
max_cpd: "€0. 035"  # cost per delivered providers:
- id: "twilio"
regions: ["EU","US"]
dlt: true price_map: { TR: "€0. 028", EU: "€0. 031" }
- id: "infobip"
regions: ["EU","TR","LATAM"]
price_map: { TR: "€0. 026", EU: "€0. 033" }
fallback_order: ["infobip","twilio"]

4) Kanal ve rota seçimi (iletişim için SOR)

Kriterler: onay ve tercihler, olay kritikliği, maliyet, teslim edilebilirlik puanı, gecikme SLO, sessiz saatler, alan adı/IP, doygunluklar.

Sözde kod:
python def pick_route(ctx, channels):
allowed = [c for c in channels if has_consent(ctx. user, c) or c in ctx. legal_basis]
allowed = [c for c in allowed if not quiet_hours(ctx. localtime, c) or ctx. critical]
scored = []
for c in allowed:
p = provider_with_best_score(c, ctx. region, ctx. priority)
s = (w1deliverability(c,p,ctx. region) +
w2latency_score(c,p) +
w3cost_score(c,p) +
w4fatigue_penalty(ctx. user,c))
scored. append((s,c,p))
s,c,p = max(scored)
return (c,p)

5) Onay, tercihler ve "sessiz saatler"

Onay modeli:
  • Ayrıntılı: hedef × kanalına göre (güvenlik/uyarılar/pazarlama/işlem).
  • Zaman pencereleri (yerel TZ) ve kanal başına günlük kotalar.
  • DSAR: erişim/silme/değiştirme hakkı.
Rego ilkesi (snippet):
rego package comm. consent

deny["No consent for marketing"] {
input. purpose == "marketing"
not input. user. consent["marketing"][input. channel]
}

deny["Quiet hours violation"] {
input. channel in {"sms","push","call"}
t:= input. user. local_time is_between(t, "22:00", "08:00")
input. critical == false
}

6) Teslim edilebilirlik ve kanal hijyeni

E-posta: SPF/DKIM/DMARC, BIMI, IP segmentasyonu (işlemsel vs promosyon), IP/Domaine ısınma, aboneliksiz/şikayet listeleri, uyarlanabilir frekans, içerik kılavuzları (tetikleyici kelimeler/URL çiftliği yok).
SMS: DLR, alfanümerik/kısa kodlar, DLT/şablonların kaydı (bölgesel gereksinimler), LCR (En Düşük Maliyetli Yönlendirme), kaliteyi dikkate alarak.
Push: anahtarlar/belirteçler, TTL, daraltma tuşları, bildirim kategorileri, sessiz mod.
Haberciler: şablonlar, iletişim pencereleri (24 saat), ön onay.

7) Direnç: Retrai, idempotency, dedup

Idempotency-Key = 'channel' provider 'external _ id'

Retrai: üstel + jitter, webhook/ESP API timebox, "adil bozulma" (geri dönüş kanalı).
Dedup: 'message _ hash've TTL'yi pencerede saklayın; Tüketicilerde - "seen-set".
DLQ: ayrı depolama ve manuel/otomatik yeniden sürücü, nedenlerin analizi ile.
Outbox/Inbox: Yapımcıdan orkestratöre garantili teslimat.

Taslak:
python def send(adapter, msg):
key = f"{adapter. name}    {msg. external_id}"
if seen(key): return "OK"
try:
adapter. push(msg, timeout=3)
mark_seen(key); return "OK"
except Timeout:
if msg. can_fallback: return send(next_adapter(adapter), msg)
raise

8) Kısıtlamalar ve koruma (hız sınırlaması, anti-spam/dolandırıcılık)

Limitler: Kullanıcı/gün, kanal/gün, sağlayıcı/rps başına, burst-cap.
Yorgunluk puanı: kişisel yorgunluk sayacı (frekans × negatif sinyaller).
Anti-dolandırıcılık: Kaba kuvvete karşı OTP koruması, cihaz/ASN sinyalleri, şablonlarda bal belirteçleri, SMS bombardımanına karşı koruma.
İçerik politikaları: şok içeriğin yasaklanması, bölgesel reklam normları/yaş etiketleri.

9) SLO, Metrikler ve Analizler

İşlemsel:
  • P95 gecikme süresi до DLR/Open/Delivery, hata oranı, DLR %, webhook ack %.
Pazarlama:
  • OR/CTR, Abonelikten Çıkma/Şikayet oranı, Dönüşüm/ARPU yükseltme, Artım (bekleme).
Ekonomi:
  • Teslim edilen başına maliyet (CPD), $/click, $/conversion, çıkış $/GB.
Rota kalitesi:
  • Sağlayıcı sağlık puanı (DLR × gecikme × maliyet), geri dönüş oranı, sessiz saat ihlalleri.

10) Deneyler: A/B ve çok kollu haydutlar

A/B: şablonlar, temalar, gönderme zamanı, kanal.
MAB (UCB/Thompson): Sağlayıcılar/şablonlar arasındaki trafiğin çevrimiçi olarak yeniden dağıtılması.
Gardas: risk sınırı, SLO/şikayetler kötüleştiğinde erken durma.

11) İçerik ve kişiselleştirme

Paketleme: Birkaç mesajı tek bir özette birleştirmek (kanal dostu).
Kişiselleştirme: segmentler/öneriler, dinamik bloklar, yerelleştirme/para birimi.
Bağlam: moment-tetikleyiciler (davranışsal), jeo/zamansal faktörler, huninin "son adımı".
Şablon güvenliği: enjeksiyon olmadan şablon oluşturma, değişken sınırlaması.

12) Webhooks entegrasyonu (B2B kanalı)

Gereksinimler: imza (HMAC/Ed25519), anti-replay (zaman damgası + nonce), zaman kutuları, idempotency ve yeniden teslimatlar.
Degradation playbook: 5xx kütlesiyle, ortağın RPS'de duraklama/azalma, kuyrukta geri çekilme, bildirim.

HTTP şeması:

POST /webhook
Headers:
X-Id: msg-uuid
X-Signature: ed25519:...
X-Timestamp: 1730388405
Body: { event_id, type, payload, version }

13) Finansal optimizasyon (FinOps) ve yeşil uygulamalar

Kalite göz önünde bulundurularak SMS/Ses için LCR (sadece fiyat değil!).
Çıkış kontrolü: webhook'lar için sıkıştırma/butching, yerel POP/edge.
Timeslots: Ucuz/yeşil pencerelere pazarlama gönderin, hesaplama dengeleyin.
CI/CD'de birim ekonomisi: "Hedefin üzerindeki CPD" kapısı - postalamayı durdurun.

Rego kapısı:
rego package comm. finops deny["CPD budget exceeded"] {
input. forecast. cpd > input. targets. cpd_max input. campaign. type == "marketing"
}

14) Güvenlik ve gizlilik

Olaylarda/günlüklerde PD'nin en aza indirilmesi; e-posta/telefon yerine takma adlar.
Transit ve dinlenme sırasında şifreleme; KMS/rotasyon.
Destek operatörleri için Zaman Tabanlı Erişim (JIT).
DSAR/Delete - Raporları onaylamak için tüm kanalları ve sağlayıcıları izleyin.
Abonelikten Çıkma/Vazgeçme: Bu amaca yönelik tüm kanallar için anında, uçtan uca.

15) Playbooks (eskizler)

15. 1 "Teslim edilebilirlik e-postasının başarısızlığı"

1. "İşlemsel" IP havuzuna geçin;

2. Düşük etkileşim segmentlerinde frekansı/hacmi azaltın;

3. DNS/DMARC raporlarının yeniden oluşturulması;

4. İçerik/şikayet denetimi;

5. Ölüm sonrası ve IP ısınma planı.

15. 2 "Ülkedeki SMS başarısızlıklarının artışı"

1. LCR - alternatif sağlayıcı;

2. Rps'yi azaltın ve üs ile yeniden denemeyi etkinleştirin;

3. Kritik mesajları ses geri dönüşü olarak işaretleyin;

4. Ürünü gecikmelerden haberdar edin.

15. 3 "Webhook Alıcı Hatası"

1. DLQ'ya çevir;

2. Ortağı bilgilendirmek;

3. Uç nokta testi (sağlık probu);

4. Sınırları olan butchları yeniden sürün.

16) Anti-desenler

Onaysız/tercihsiz toplu postalar - şikayetler/engelleme.
Kritik bir kanal için tek bir sağlayıcı - konsantrasyon riski.
DLQ/dedup yok - yinelenen ve çoğaltılan çığ.
"Sağır" jitter/kısıtlamalar olmadan inzivaya çekilir - fırtına ve oran sınırı yasağı.
İşlem ve pazarlama e-postalarını aynı IP üzerinde karıştırın.
Sessiz saatleri ve yerel düzenlemeleri görmezden gelmek - para cezaları/itibar kayıpları.
Şablonlarda, günlüklerde ve web kitaplarında PII.

17) Mimar kontrol listesi

1. Kanal/amaç/yargı alanlarının pasaportu ve sağlayıcıların bir kataloğu var mı?
2. Kanal seçimi SOR, onayları, sessiz saatleri, maliyeti ve SLO'yu dikkate alır?
3. Idempotence/retrai/dedup/DLQ ve geri basınç uygulandı mı?
4. E-posta: SPF/DKIM/DMARC/BIMI, ayrı IP havuzları?
5. SMS: Fiyat ve kalite üzerine LCR, DLT/şablon hazırlığı?
6. Push: kategoriler, daraltma tuşları, TTL ve sessiz mod?
7. Webhooks: imza, anti-tekrar, zaman kutuları, test sanal?
8. Gözlemlenebilirlik: p95, DLR, OR/CTR, abonelikten çıkma/şikayetler, CPD?
9. Deneyler: Orkestratörde A/B/MAB, korkuluklar?
10. Gizlilik: PD'yi en aza indirmek, uçtan uca DSAR, anında devre dışı bırakmak?
11. FinOps/GreenOps: CPD/$/GB bütçe, ucuz pencereler, çıkış kontrolü?
12. Olay playbooks ve sağlayıcıya göre çıkış planları?

Sonuç

Kanal optimizasyonu bir takas düzenlemesidir: rıza ve kalite> hız ve maliyet, sürdürülebilirlik ve gizlilik> "herkese gönder. Tek tip kanal pasaportları, SOR yönlendirme, teslim edilebilirlik hijyeni, sürdürülebilir teslimat kalıpları ve ekonomik metriklerle gözlemlenebilirlik girin; iletişiminiz tüm ekosistem için öngörülebilir, verimli ve güvenli hale gelecektir.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Telegram
@Gamble_GC
Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.