Ana Sayfa / Blog / In-app feedback toplama: 3 farklı yaklaşım

In-app feedback toplama: 3 farklı yaklaşım

Kullanıcı app'te sorun yaşıyor ama nadir App Store'a yorum yazıyor. In-app feedback toplama için 3 yaklaşım.

App Store yorumları geri bildirim olarak yetmiyor. Kullanıcı aktif geri bildirim vermiyor. Sorun yaşayınca sessizce uninstall ediyor. 12 iOS uygulamamda bu pattern’i kırdığım yolları paylaşacağım.

In-app feedback toplama için 3 farklı yaklaşım uygulamışım. Her biri farklı moment’te, farklı kullanıcıyı yakalıyor.

Yaklaşım 1: Passive feedback button

Ayarlar sayfasında “Geri Bildirim Gönder” butonu. Kullanıcı proaktif olarak tıklıyor.

Implementation:
– Settings view’da button
– Tıklama → sheet açılıyor
– Form: mesaj textfield + screenshot opsiyonu + submit
– Backend’e gidiyor, email’e forward oluyor

Pros:
– Rahatsız etmiyor
– Gerçekten sorun yaşayan kullanıcı buluyor
– Quality feedback (kullanıcı zaman ayırıp yazıyor)

Cons:
– %0.5 kullanıcı tıklıyor
– Hidden, görmeyen kullanıcı var
– Sadece en motive olanı yakalıyor

Bu yaklaşımı her app’te başlangıç default’u olarak koyuyorum. Minimum effort, baseline feedback channel.

Yaklaşım 2: Event-triggered inline prompts

Kullanıcı belirli bir action yaptıktan sonra kısa bir prompt. “Bu işlem nasıl gitti?”

Örnek scenario:
– Kullanıcı 3. defa brushing session’ı tamamladı
– Dentii’de subtle bir banner çıkıyor: “Dentii’yi nasıl buluyorsun?”
– Thumbs up / thumbs down butonu
– Thumbs down’a basarsa detaylı form açılıyor
– Thumbs up’a basarsa App Store rating prompt çıkıyor

Implementation:

if user.completed_brushing_count == 3 && !user.has_been_prompted {
    showFeedbackPrompt()
    user.has_been_prompted = true
}

Pros:
– Yüksek response rate (%20-30)
– Positive user’ları App Store’a yönlendirme fırsatı
– Negative user’ları detaylı form’a çağırma

Cons:
– Yanlış moment’te rahatsız edebilir
– Çok sık kullanılırsa fatigue
– Implementation complexity

En iyi uygulama: onboarding sonrası ve major milestone’dan sonra. Günde 1 prompt’u geçmesin.

Yaklaşım 3: Shake-to-report

iPhone’u sallayınca feedback form açılıyor. Power user’lar için.

Implementation:

override func motionEnded(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
    if motion == .motionShake {
        presentFeedbackForm()
    }
}

Pros:
– Invisible ama güçlü
– Developer gibi davranan power user’lar kullanıyor
– Her ekrandan çağrılabiliyor

Cons:
– Çoğu kullanıcı bilmiyor
– Onboarding’de öğretmek lazım (“Feedback için sallayın”)
– Accidental shake (araba, metro)

Sadece beta test’te değerli. Public release’de çok kullanılmıyor.

Feedback form tasarımı

Form UX’i kritik. Uzun form = %10 completion. Kısa form = %60.

Benim form şeması:

  1. Rating (opsiyonel): 1-5 star veya thumbs up/down
  2. Category seçimi: Bug report / Feature request / General comment
  3. Mesaj textfield: Zorunlu ama placeholder’la “örneğin, şu ekranda şu hatayı aldım” ile yol göster
  4. Screenshot attach: Opsiyonel ama default olarak şu anki ekran attach oluyor
  5. Email (opsiyonel): Cevap istiyorsan
  6. Submit button

Oto-eklenen context (kullanıcıya görünmeyen):
– User ID (anonymized)
– App version, build number
– iOS version, device model
– Last 10 user action’ları (ne yaptı, hangi ekran)
– Crash log’ları (son 7 gün)
– Network status, storage left

Bu context olmadan feedback debug’ı imkansız.

Backend side

Feedback’i nereye göndereceksin?

Option A: Email. Basit başlangıç. Custom destination email. Form submit → your@email.com.

Option B: Custom dashboard. Feedback’leri kendi backend’inde topla, admin panel’de yönet. Kategorize, status (new/in-progress/done), prioritize.

Option C: Third-party. Instabug, Shake.io, Firebase Feedback gibi SaaS’lar ready-made çözümler.

Benim preferans: başlangıçta Option A (email). 50+ feedback/ay olunca Option B’ye geçiyorum (custom dashboard).

Screenshot’u kim annotate edecek?

Kullanıcı feedback form’unda screenshot ekleyebilir. Ama feedback’in değeri daha yüksek eğer kullanıcı screenshot’ta annotation (ok, daire, yazı) yapabilirse.

Built-in annotation için:
– PencilKit framework (iOS 13+)
– UI overlay with draw gestures
– Export annotated image

5 dakikalık implementation. Feedback quality’yi 2x artırıyor.

Response loop

Kullanıcı feedback gönderiyor, karşılığında ne oluyor?

Kötü: Hiçbir şey. Kullanıcı tekrar feedback vermiyor.

Orta: Otomatik “Teşekkürler” email. Kullanıcı en azından mesajın gittiğini biliyor.

İyi: Developer email cevap veriyor. “Bu bug’ı inceliyoruz, bir sonraki update’te düzelteceğiz.”

En iyi: Issue çözüldüğünde takip email. “Hatırlarsan 3 hafta önce şu bug’ı rapor etmiştin, bu update’te fix oldu.”

Bu loop feedback-motivated user’ları brand advocate yapıyor.

Spam filtering

Public feedback button’u spam çekiyor. Rate limit + basic validation:

  • Aynı user ID 10 dakikada max 3 feedback
  • 10 karakterden kısa feedback reddediliyor
  • Known spam pattern’ları filter (link’ler, promosyon)
  • User ID spam history’si takibi

Bu filter’lar %95 spam’i elimine ediyor.

A/B test ile optimize

Production’da feedback completion rate’i ölç:

  • Form showing: kaç kez açıldı
  • Form completion: kaç kez submit edildi
  • Completion rate: submit / showing

Different variants test et:
– Short form vs long form
– Required email vs optional
– 1-5 stars vs thumbs up/down
– Screenshot default on vs off

3-4 hafta A/B test sonrası optimal form’u bul.

In-app vs App Store Review

Kullanıcı feedback verirken iki yol var: in-app feedback veya App Store review. Ayırt ediyor.

In-app feedback: Private, sen görüyorsun. Sorun varsa debug edip fix ediyorsun.

App Store review: Public, herkes görüyor. Rating’i de etkiliyor.

Strategy: kullanıcıdan önce in-app feedback iste. Thumbs up ise App Store’a yönlendir (review iste). Thumbs down ise in-app form’a çek (public’ten uzakta).

Bu pattern App Store rating’i koruyor, negative feedback’i private channel’da tutuyor.

Pratik benchmark’ler

Benim uygulamalarımda:

  • Feedback button (passive): %0.3-0.5 user/month
  • Event-triggered prompt: %15-25 response rate
  • Shake gesture: %2-4 user/month (çoğu beta tester)

Anlamlı feedback volume için event-triggered şart. Passive tek başına yetmiyor.

Sonuç

In-app feedback collection iOS app kalitesinin critical bir parçası. App Store review yetmiyor, sessiz uninstall’leri yakalamak için in-app channel lazım.

3 yaklaşımı birlikte kullan: passive button (baseline), event-triggered prompt (volume), shake gesture (power users). Form’u kısa tut, context’i otomatik ekle, response loop’u kapat.

Discipline: tüm feedback’leri weekly review et. Her birini categorize, top 10’unu product backlog’a ekle. Feedback boşa gitmesin.

Bu konuda bir projeniz mi var?

Kısa bir özet bırakın, 24 saat içinde size dönüş yapayım.

İletişime Geç