Kullanıcıların müzik dinleme alışkanlıklarını analiz edin
Her şarkının, albümün ve sanatçının detaylı dinlenme istatistiklerini takip eden sistem geliştirdik. Toplam dinlenme, ortalama dinlenme süresi, tamamlanma oranı ve daha fazlası.
Şarkının kaç kez başlatıldığı
Şarkının sonuna kadar dinlenme oranı
Şarkının atlanma oranı
Şarkının tekrar dinlenme oranı
Her şarkı dinlendiğinde sistem bu olayı kaydeder ve istatistikleri günceller. Bu veriler gerçek zamanlı olarak toplanıp analiz edilir.
Player'da play eventi oluştuğunda StreamController@track endpoint'ine POST isteği gönderilir. İstek song_id, user_id, timestamp içerir.
streams tablosuna yeni kayıt eklenir: Stream::create(['song_id' => $id, 'user_id' => auth()->id(), 'played_at' => now()]). Her dinleme ayrı bir satır olarak kaydedilir.
JavaScript tarafında timeupdate eventi dinlenir. Şarkının %30'u dinlendiğinde stream geçerli sayılır, %100'ü dinlendiğinde completed: true güncellenir.
Song::increment('play_count') ile şarkının toplam dinlenme sayısı atomik olarak artırılır. Artist ve Album modelleri de güncellenir.
Raporlar için: Stream::selectRaw('song_id, COUNT(*) as total, AVG(duration) as avg_duration')->groupBy('song_id'). Sonuçlar Cache::remember() ile 5 dakika cache'lenir.
Skip oranı: (skipped_count / total_plays) * 100. Repeat oranı: aynı kullanıcının aynı şarkıyı 24 saat içinde kaç kez dinlediği. Bu metrikler şarkı kalitesini ölçer.
(Günlük/Aylık Aktif Kullanıcı)
Her gün veya her ay platformu kullanan benzersiz kullanıcı sayısı.
(Oturum Süresi)
Kullanıcının bir seferde platformda geçirdiği ortalama süre.