Mobil Uygulamalarda Analytic Event Pratikleri

Mehmet Burak Akgün
Dolap Tech
Published in
3 min readJul 21, 2020

--

Bana Özel / Keşfet / İlginizi Çekebilir vb. alanlarda önerilen ürünlerin anlamlı olması başarılı bir E-ticaret uygulamasının olmazsa olmazlarındandır. Bu seride Dolap ekibi olarak nelere dikkat ettiğimizi ve serinin ilerleyen partlarında örnek Android uygulamalara yer vereceğiz.

Şirketlerin kendi Data Engineering takımlarını oluşturduğu ve Data’yı topladığı-yorumladığı projelerini geliştirdiği dönemdeyiz. Günlük atılan eventler milyonlar hatta yüz milyonlara tekabül etmeye başladı. Peki gerçekten Data’yı oluşturan ön yüz ekiplerinin , doğru data gönderdiğinden nasıl emin olacağız ?

Data’nın doğruluğundan anlamamız gereken event içeriğinden fazlasıdır. Ekipler farklı aşamalarda event içeriğini test ediyorlar. Analyst (Desk) Check & QA aşamalarında , çeşitli araçlar vasıtasıyla bu kısmın doğruluğundan emin olabiliriz.

Uygulamanın ön yüzde, mükerrer giden — gönderilmeden atlanan ya da gitmemesi gereken(yanlış gönderilen) eventler göndermesi , User Recommendation Datasını negatif etkiler.

Ürün Listesi / Arama / Kişiselleştirilmiş Kategoriler sayfalarında gösterilen ürünler oysa ki müşterinin ilgisini çekmiş olanlardır. Burada yorumlanacak data , müşterinin alışkanlıkları ya da aradığı ürünleri tarif eden ürün grubunu işaret eder. Ürün detay ekranlarında gönderilen eventler kadar bu listelerde kullanıcının belirli bir süre boyunca görüntülediği ürünlerin , öneri motorları tarafından yorumlanması gerekir.

Sektörde ön yüzde analytic eventlerini farklı şekilde ulaştırmayı tercih eden şirketler var ;

  • Product Response’un gelmesiyle birlikte listeden ürünlerin tamamını(20+) bulk gönderen ,
  • Ürünü listede görüntülendiği anda(tekerli) gönderenler ,
  • Tamamı görüntülendiğinde gönderen.

Farklı varyasyonlar çeşitlendirilebilir. Müşterisini önemseyen , müşterisine daha anlamlı ürün göstermeyi amaçlayan şirketler için burası sürekli gelişim alanıdır.

Dolap.com / Mobil Uygulama Geliştirme ekibi olarak , performans etkenini gözetirken en doğru impression’u yakalamak için bazı pratikleri uyguluyoruz.

Bir ProductView eventi gönderebilmek için ;

  • ProductBox’un büyük kısmı ekranda görünür olmalıdır.
  • Ekranda 0.25 saniye boyunca görüntülenmiş olmak zorundadır(hızlı scroll yaparken aradaki productları görüntülenmiş olarak kabul etmiyoruz).
  • Scroll down / up yaparken sadece yeni görüntülenen ürünler gönderiliyor.(Daha önceden gönderilen ürün gönderilmez , yeni görüntülenen ürün gönderilir)
Sarıyla Highlight edilenler kuyruğa eklenen gerçek ürünleri göstermektedir.

Aynı şekilde Networking üzerine iyileştirmeler yapmamız gerekiyordu. Doğru Datanın gönderilmesi kadar , Eventin ne şekilde gönderildiği de önemlidir.

Uygulama içerisinde gezen müşterimizin internetinin çok limitli bir kısmını eventler için tüketmek istiyoruz.

  • Eventler kuyruğa eklendikten sonra kuyruktan eventler teker teker gönderilecek şekilde geliştirme yaptık. Bir event atılınca öteki başlayacak , bu şekilde tamamı gönderilene kadar devam edecek.
  • Eventler uygulama açık / kapalı / arkaplanda durumundan bağımsız , kuyrukta event varsa ve internet varsa teker teker gönderilir.(Event gönderebilmek için uygulamanın açılmasına gerek yok)
  • İnternet yoksa , internet gelince gönderilir. Böylece impression ulaştırma başarısını arttırdık. Burada Android’in bize sağladığı yetenekleri kullandık.

Eventleri kuyruğa eklemek , performansı pozitif etkiledi

Limitli bir bandwidth’e sahip müşteri cihazının uygulama açıkken , background thread’de gönderdiği analytic eventler için network bottleneck yaratması kesinlikle istediğimiz bir şey değil.

Keza ürün resimlerinin yüklenmesi , bir sonraki ürün listesinin (load more) cevabının dönüş hızı gibi etkileyebileceği yerler olacaktır.

Sarıyla Highlight edilenler kuyruğa eklenen gerçek ürünleri göstermektedir.

Bir sonraki yazımızda RxJava ile listing ekranlarımızda productView aşamasını nasıl handle ettiğimizi ve ayrıca networking tarafını WorkManager framework’ü ile nasıl organize ettiğimizi konuşacağız. Teknik bir makale olacak ve örnek proje paylaşımı gerçekleştireceğiz.

Dolap / Trendyol ekipleri olarak müşterimiz için yaşarız mottomuza uygun iyileştirmeler gerçekleştireceğiz.

Bizi takipte kalın.

--

--

Mehmet Burak Akgün
Dolap Tech

Senior Android Developer at Trendyol International @Berlin