JioSaavn เพิ่ม DAU ด้วยการปรับปรุงเวลาเริ่มต้นแอป 30%

JioSaavn ก่อตั้งขึ้นในปี 2007 และเป็นบริการสตรีมมิงเสียงชั้นนำสำหรับเพลงและพอดแคสต์ โดยมีพาร์ทเนอร์ค่ายเพลงกว่า 900 รายและสตรีมแทร็กกว่า 80 ล้านแทร็กใน 16 ภาษา นอกจากนี้ แอป JioSaavn ยังพร้อมให้บริการใน 6 ภาษาท้องถิ่นของอินเดียด้วย

JioSaavn มีเทคโนโลยีที่รองรับผู้ใช้ที่ใช้งานอยู่รายเดือน (MAU) กว่า 100 ล้านคน จึงสามารถให้บริการได้อย่างรวดเร็วและมีประสิทธิภาพ โดยปกติแล้ว กลุ่มเป้าหมายนี้มักใช้โทรศัพท์ Android ที่มีทรัพยากรจำกัด ซึ่งทำให้ประสบการณ์การใช้งานของผู้ใช้มีความสำคัญอย่างยิ่งต่อทีม JioSaavn

ความท้าทาย

การเพิ่มประสิทธิภาพในสภาพแวดล้อมที่มีข้อจำกัด เช่น อุปกรณ์เคลื่อนที่ระดับล่างถึงระดับกลาง อาจเป็นทั้งความท้าทายและความตื่นเต้นในมุมมองด้านวิศวกรรม ความท้าทายที่ JioSaavn เผชิญคือการเพิ่มประสิทธิภาพประสบการณ์ของผู้ใช้สำหรับกลุ่มเป้าหมายหลักที่ใช้อุปกรณ์เคลื่อนที่ระดับล่างถึงระดับกลาง และส่วนใหญ่อาศัยอยู่ในเมืองระดับ 2 และ 3 ของอินเดีย

การวิเคราะห์ Funnel แสดงให้เห็นว่ามีผู้ใช้จำนวนมากที่เปิดแอปแต่ไม่ได้ฟังเพลง ทีมระบุว่าสาเหตุของปัญหานี้คือเวลาเริ่มต้นของแอป ดังนั้น การปรับปรุงเวลาเริ่มต้นของแอปจึงเชื่อมโยงกับการเพิ่มจำนวนผู้ฟังในแอป

วิธีที่พวกเขาทำ

JioSaavn ใช้การวิเคราะห์ที่ครอบคลุมและชุดเครื่องมือที่มีประสิทธิภาพ เช่น Perfetto, dumpsys ฯลฯ เพื่อวิเคราะห์ปัญหานี้และหาโซลูชันที่ยั่งยืน ทีมได้เข้าถึงความท้าทายนี้โดยใช้หลักการ 2 ข้อ ได้แก่ การทำงานแบบคู่ขนานและการขี้เกียจ

ทีมจัดลำดับความสำคัญของงานโดยใช้การวิเคราะห์ของ Google

  • ใช้ systrace และ perfetto เพื่อศึกษาโฟลว์ของแอป วิเคราะห์จุดที่ทำให้เกิดความเจ็บปวด และตรวจสอบการปรับปรุงเวลาเริ่มต้นของแอป
  • การเริ่มต้นที่ล่าช้า: ระบุการเริ่มต้นของ Fragment/อินสแตนซ์/คลาสที่อาจล่าช้าจนกว่าหน้าแรกจะแสดง -
    • โฆษณา
    • บริการเพลง (บริการที่ทำงานอยู่เบื้องหน้า) และทรัพยากรของเพลเยอร์ (เช่น Exoplayer, คิวเพลเยอร์ที่แคชไว้ ฯลฯ)
    • Player Fragment ซึ่งย่อขนาดไว้ตอนเปิดตัว
  • การเริ่มต้นตามต้องการ: ของไลบรารีต่างๆ เมื่อใดก็ตามที่จำเป็นต้องใช้ไลบรารี (เช่น ไลบรารี Facebook)
  • viewStubs: View Inflation and resource loading was heavy. ทีมได้ปรับเลย์เอาต์ให้แบนราบโดยใช้ ViewStub และแปลงรูปภาพเป็น WebP
  • Worker Thread: ย้ายงานบางอย่างที่ไม่ต้องใช้ UI Thread ไปยัง Thread ในเบื้องหลังเพื่อเพิ่มพื้นที่ว่างให้กับ UI Thread
  • แยกข้อมูลแคช - การอ่านและแยกวิเคราะห์ข้อมูลแคชขนาดใหญ่จากไฟล์ใช้เวลานานมาก ทีมได้แบ่งข้อมูลออกเป็นข้อมูลที่สำคัญ (จำเป็นต่อการแสดงหน้าแรก) และข้อมูลที่ไม่สำคัญ
  • Async LayoutInflater: ระบบจะขยายมุมมองบางอย่างที่จำเป็นสำหรับ RecyclerView ในหน้าแรกไว้ล่วงหน้าโดยใช้ Async LayoutInflater

เครื่องมือที่ใช้ - Perfetto, Systrace, Google Play Vitals, Android Studio Profiler, Firebase Performance SDK

ผลลัพธ์

ทีม JioSaavn ได้เปิดตัวการเปลี่ยนแปลงเหล่านี้ในแอปหลายเวอร์ชันเพื่อรักษาความเสถียรของแอป โดยได้รับผลลัพธ์ดังนี้

  • เวลาเริ่มต้นแอปในอุปกรณ์ทั้งหมดเร็วขึ้น 30% และในอุปกรณ์ระดับล่างถึงปานกลางเร็วขึ้น 35-40%
  • ปรับปรุงผู้ดูหน้าจอหลัก/ DAU ได้ 5% จึงทำให้อัตราตีกลับลดลง

การเพิ่มประสิทธิภาพนี้ช่วยให้ทั้งทีมได้ทำงานร่วมกัน เราได้จัดทำคำแนะนำแบบทีละขั้นตอนโดยละเอียดเพื่อให้ทีมคุ้นเคยกับการเปลี่ยนแปลง และปลูกฝังแนวทางที่มุ่งเน้นประสิทธิภาพของแอป

"JioSaavn มุ่งมั่นที่จะปรับปรุงประสบการณ์การฟังของผู้ใช้ที่มาจากภูมิภาค
และเมืองต่างๆ ในอินเดีย รวมถึงครอบคลุมทุกกลุ่ม ในแง่ของความสามารถในการจ่าย ดังนั้นการก้าวข้ามโครงสร้างพื้นฐานการเชื่อมต่อมือถือในภูมิภาคของตน และการเพิ่มประสิทธิภาพประสบการณ์ของผู้ใช้ในความสามารถของอุปกรณ์ของผู้ใช้จึงเป็นความท้าทายที่เราต้องเผชิญอยู่เสมอ คำแนะนำด้านความสัมพันธ์กับนักพัฒนาแอปของ Google ช่วยให้เราสามารถก้าวไปในทิศทางนี้ได้อย่างแน่นอน"

- ทีมผลิตภัณฑ์ JioSaavn