İstanbul Beyoğlu'ndaki küçük bir bar, kapısından giren müşterinin daha menüye bakmadan "tekrar hoş geldiniz" notuyla karşılanmasını istiyordu. Çözüm pahalı bir CRM değil, Wi-Fi hotspot logunda hash'lenmiş MAC adresleri oldu. Üçüncü ziyarette garsona pop-up, dördüncü ziyarette otomatik %5 indirim.
Hash Pipeline: Plaintext MAC asla diske inmez
Captive portal kullanıcı associate olduğu anda MAC'i RAM'de yakalar ve SHA-256(mac + restaurant_salt) hesaplar. Salt restoran başına benzersiz 32 byte; rotation yılda bir. Sonuç 64 karakterlik hex, plaintext MAC RAM'den hemen silinir — disk veya log dosyası asla görmez.
TTL 90 gün. visitor_hashes tablosu sadece hash, first_seen, last_seen, visit_count tutar. Hiçbir kişisel veri yok; KVKK'nın "anonimleştirilmiş veri" tanımına oturur. 91. günde otomatik prune cron'u temizler.
iOS 14+ MAC Randomization Gerçeği
Apple 2020'den beri her SSID için farklı bir MAC yayınlıyor. Bu sizin için kötü değil — aynı restorana tekrar bağlanan iPhone aynı randomize MAC'i kullanır. Yani aynı ağda kalıcı, ağlar arası izlenemez. Tam istediğimiz şey.
Android 10+ benzer davranır ama bazı OEM'lerde randomization toggle'ı kullanıcı eliyle kapatılabilir. Pratikte yaklaşık 92% recognition rate görüyoruz — yeterli.
Garson Akışı ve İndirim Tetiği
- Ziyaret 1-2: Sessiz toplama, garsona bildirim yok.
- Ziyaret 3: POS ekranında "regular adayı" rozeti.
- Ziyaret 4+: Otomatik %5 indirim kuponu masa açılışında uygulanır.
Beyoğlu barı 3 ayda repeat oranını %18'den %27'ye çıkardı. Garson briefingi 0 dakika — sistem her şeyi otomatik yapıyor.
FAQ
Bu KVKK'ya uygun mu? Evet — hash + salt geri çevrilemez ve hiçbir kişisel veri saklanmaz. Yine de aydınlatma metnine "Wi-Fi anonim ziyaret istatistiği" maddesi ekleyin.
Müşteri hash'inden kim olduğunu bulabilir miyim? Hayır — ve bu özellik. Hash bir indirim tetiği; kimlik değil.
Wi-Fi şifresi olmasa da çalışır mı? Open hotspot'ta da çalışır; tek gereksinim cihazın associate olması. Captive portal şart değil.
Faydalı buldunuz mu? Paylaşın.
İlgili makaleler
Müşteri Aboneliğini Düşürünce Eski Özellikler Ne Olur? — SaaS Sessiz Feature-Drift Problemi
Çoğu SaaS abonelik tier’ı düştüğünde tek satır kod çalıştırır ama eski özellikle…
JWT alg-confusion atağı — Supabase HS256'dan RS256/JWKS'e geçince eski verifier'lar neden yıkılır?
JWT header'ı decode etmeyen verifier'lar `alg=none` ve `alg-confusion` saldırıla…
Her bakiye değişikliğinin neden bir 'journal row'u olmalı? — SaaS finansal audit'in temel taşı
SaaS bakiyeleri tek satır UPDATE ile yönetince "drift var ama HANGİ mutasyon yan…