ฟังก์ชันการทำงานที่ทำงานได้ดีในฐานะโมดูลแบบออนดีมานด์คือฟังก์ชันที่ผู้ใช้ส่วนใหญ่ไม่จําเป็นต้องใช้ ณ เวลาที่ติดตั้ง ต่อไปนี้คือตัวอย่างฟีเจอร์แอปที่เหมาะกับโมดูลแบบออนดีมานด์
- การแก้ไขและอัปโหลดวิดีโอในแอปที่ผู้ใช้ส่วนใหญ่ดูวิดีโอเท่านั้น
- การเพิ่มสูตรอาหารในแอปที่ผู้ใช้ส่วนใหญ่เลือกดูและติดตามสูตรอาหารของผู้อื่นเท่านั้น
- ฟังก์ชันความช่วยเหลือและการสนับสนุนเมื่อผู้ใช้ส่วนใหญ่ไม่ขอความช่วยเหลือหรือไม่ขอความช่วยเหลือภายในแอป
- ไลบรารีขนาดใหญ่สําหรับฟังก์ชันการทํางานที่มีการใช้งานน้อย เช่น การระบุการบันทึกข้อบกพร่องและการรายงานโดยละเอียด
- ความสามารถในการชำระเงินหรือจุดชำระเงินที่เฉพาะเจาะจง
- ประสบการณ์การรับชมสื่อความละเอียดสูงมากหรือฟีเจอร์ VR/AR
ในกรณีทั่วไปที่โมดูลเหล่านี้มีขนาดเล็ก (น้อยกว่า 10 MB) และไม่มีเครือข่ายหรือข้อผิดพลาดอื่นๆ ผู้ใช้จะดาวน์โหลดและใช้โมดูลแบบออนดีมานด์ได้อย่างรวดเร็ว กล่าวคือ โดยทั่วไปแล้ว ประสบการณ์การใช้งานจะไม่แตกต่างจากกรณีที่ติดตั้งโมดูลไว้ตั้งแต่แรก
หน้านี้จะอธิบายแนวทางปฏิบัติแนะนำที่จะช่วยคุณดำเนินการต่อไปนี้
- ตรวจสอบว่าผู้ใช้ทราบและรู้สึกว่าควบคุมการดาวน์โหลดโมดูลขนาดใหญ่ซึ่งใช้เวลาโหลดนานพอสมควรหรือข้อผิดพลาดในการติดตั้งโมดูลได้
- เพิ่มประสิทธิภาพประสบการณ์การนำส่งข้อบังคับเพิ่มเติม โดยเฉพาะอย่างยิ่งในสถานการณ์ที่คาดการณ์ได้ว่าผู้ใช้จะต้องใช้ข้อบังคับบางอย่าง
หลังจากอ่านคู่มือนี้ ให้ลองใช้แนวทางปฏิบัติแนะนำเหล่านี้โดยลองใช้แอปตัวอย่าง Play Core API
แจ้งข้อมูลให้ผู้ใช้ทราบอยู่เสมอ
คุณควรแจ้งให้ผู้ใช้ทราบเมื่อฟีเจอร์ยังไม่พร้อมใช้งานในทันที หากผู้ใช้ตัดสินใจที่จะดาวน์โหลดฟีเจอร์จาก Google Play ให้แสดงความคืบหน้าของการดาวน์โหลด
คุณสามารถตรวจสอบสถานะคำขอเพื่อแสดงความคืบหน้าในการดาวน์โหลดและสถานะการติดตั้ง อย่างไรก็ตาม ประเภท UI ที่ต้องการแสดงอาจขึ้นอยู่กับขนาดของการดาวน์โหลด ดังนี้
- สำหรับโมดูลขนาดเล็ก (~10 MB หรือน้อยกว่า) ที่ติดตั้งได้อย่างรวดเร็ว ให้พิจารณาใช้ตัวบ่งชี้ เช่น แถบหมุนหรือข้อความ "กำลังดาวน์โหลดเนื้อหา" สั้นๆ
- สำหรับโมดูลขนาดใหญ่ที่ใช้เวลาดาวน์โหลดและติดตั้ง 2-3 วินาทีขึ้นไป ให้พิจารณาแสดงแถบความคืบหน้าของการดาวน์โหลดและการติดตั้ง เช่น แถบในรูปที่ 1
รูปที่ 1 การแสดงข้อความและแถบความคืบหน้าเมื่อดาวน์โหลดและติดตั้งฟีเจอร์แบบออนดีมานด์
สื่อสารความล่าช้าและการติดตั้งที่ไม่สำเร็จอย่างมีชั้นเชิง
หากการดาวน์โหลดไม่สำเร็จหรือดำเนินการช้ากว่าที่คาดไว้ โปรดแจ้งให้ผู้ใช้ทราบอย่างชัดเจนและโปร่งใสเกี่ยวกับสิ่งที่เกิดขึ้นและสิ่งที่ผู้ใช้ทำได้ (หากมี) ดังที่แสดงในรูปภาพ 2 และ 3 ตัวอย่างเช่น หากคุณตรวจสอบสถานะของคำขอดาวน์โหลด และแอปได้รับข้อผิดพลาด API_NOT_AVAILABLE
ให้แจ้งให้ผู้ใช้ทราบว่าอุปกรณ์ไม่รองรับการดาวน์โหลดแบบออนดีมานด์
![](https://developer.android.google.cn/static/studio/images/projects/dynamic-delivery/failed_download.png?authuser=0&hl=th)
รูปที่ 2 แจ้งให้ผู้ใช้ทราบถึงสาเหตุที่ติดตั้งฟีเจอร์ไม่ได้ในขณะนี้
![](https://developer.android.google.cn/static/studio/images/projects/dynamic-delivery/large_download.png?authuser=0&hl=th)
รูปที่ 3 อธิบายให้ผู้ใช้ทราบว่าเหตุใดฟีเจอร์จึงอาจใช้เวลาดาวน์โหลดนานกว่าที่คาดไว้
แสดงค่าก่อนที่จะขอสิทธิ์สำหรับการดาวน์โหลดขนาดใหญ่
หากโมดูลแบบออนดีมานด์มีขนาดใหญ่ (มากกว่า 150 MB) Google Play จะกำหนดให้ผู้ใช้ให้ความยินยอมก่อนจึงจะดาวน์โหลดได้
ก่อนที่จะขอข้อบังคับ ให้อธิบายคุณค่าของข้อบังคับให้ผู้ใช้ทราบ ช่วยให้ผู้ใช้เข้าใจเหตุผลที่คุณส่งคำขอนี้ถึงพวกเขา เช่นเดียวกับที่คุณจะอธิบายเมื่อขอสิทธิ์เข้าถึงแอป การสื่อสารกับผู้ใช้อย่างตรงไปตรงมาจะเพิ่มโอกาสที่ผู้ใช้จะยอมรับการดาวน์โหลด
ตัวอย่างเช่น สมมติว่าคุณกำลังสร้างแอปอีคอมเมิร์ซและฟีเจอร์อย่างใดอย่างหนึ่งอนุญาตให้ผู้ใช้วางเฟอร์นิเจอร์ภายในอพาร์ตเมนต์ได้โดยตรงโดยใช้เทคโนโลยีความจริงเสริม (AR) คุณอาจใส่ข้อความ เช่น "คุณอยากเห็นโซฟาใหม่ในห้องนั่งเล่นไหม ติดตั้งโปรแกรมดูภาพแบบความจริงเสริมเลย"
ดำเนินการดาวน์โหลดและติดตั้งในเบื้องหลัง
การดาวน์โหลดและการติดตั้งโมดูลควรเกิดขึ้นในเบื้องหลังเสมอ กล่าวคือ ขณะที่ผู้ใช้รอให้ฟีเจอร์พร้อมใช้งาน คุณควรอนุญาตให้ผู้ใช้ใช้ส่วนอื่นๆ ของแอปต่อไปได้ และเมื่อฟีเจอร์พร้อมใช้งานแล้ว คุณควรส่งการแจ้งเตือนที่อนุญาตให้ผู้ใช้เปลี่ยนไปใช้ฟีเจอร์นั้นตามการพิจารณาของตนเอง
ดังที่แสดงในรูปที่ 5 ผู้ใช้ยังคงใช้แอปต่อไปและได้รับการแจ้งเตือนเมื่อการติดตั้งฟีเจอร์แบบออนดีมานด์เสร็จสมบูรณ์
รูปที่ 5 โปรดแจ้งให้ผู้ใช้ทราบว่าฟีเจอร์ที่ขอพร้อมใช้งานแล้วแทนที่จะเปลี่ยนบริบทของผู้ใช้อย่างฉับพลันเมื่อการติดตั้งโมดูลเสร็จสมบูรณ์
เมื่อโมดูลพร้อมใช้งานแล้ว ให้แจ้งให้ผู้ใช้ทราบและให้ผู้ใช้เลือกว่าจะเปิดใช้ฟีเจอร์หรือไม่ รูปแบบนี้จะให้บริบทและการควบคุมแก่ผู้ใช้
ในบางกรณี คุณอาจเปิดใช้ฟีเจอร์ได้ทันทีที่พร้อมใช้งาน อย่างไรก็ตาม เนื่องจากอาจขัดจังหวะประสบการณ์ของผู้ใช้ คุณจึงควรพิจารณาอย่างรอบคอบว่าลักษณะการทำงานนี้เป็นสิ่งที่คาดไว้และเหมาะสมหรือไม่
เพิ่มพื้นที่ว่างในอุปกรณ์เมื่อไม่จำเป็นต้องใช้ข้อบังคับอีกต่อไป
ความสามารถที่มีประโยชน์ของโมดูลฟีเจอร์ทั้งหมดคือความสามารถในการถอนการติดตั้งทีละรายการ หากไม่มีการใช้ข้อบังคับของฟีเจอร์แล้ว คุณสามารถลดขนาดของแอปในอุปกรณ์ของผู้ใช้ได้โดยขอให้ Google Play ถอนการติดตั้งข้อบังคับนั้น
ตัวอย่างเช่น แอปของคุณอาจมีขั้นตอนการเริ่มต้นใช้งานที่มีประสิทธิภาพ ซึ่งอาจประกอบด้วยริชมีเดีย หลังจากผู้ใช้ทำตามขั้นตอนการเริ่มต้นใช้งานจนเสร็จสมบูรณ์ หรือหลังจากเป็นผู้ใช้ที่ใช้งานอยู่เป็นเวลาหนึ่งๆ คุณสามารถใช้ Play Feature Delivery API เพื่อขอให้ Google Play ถอนการติดตั้งเฉพาะคอมโพเนนต์นั้นๆ ของแอปได้
โปรดทราบว่าคุณสามารถถอนการติดตั้งโมดูลที่รวมไว้ในการเริ่มติดตั้งแอปในภายหลังได้ ตัวอย่างเช่น โมดูลที่ฝึกผู้ใช้ใหม่เกี่ยวกับวิธีใช้แอปจะมีประโยชน์เมื่อผู้ใช้ใช้แอปเป็นครั้งแรก แต่คุณก็ถอนการติดตั้งโมดูลดังกล่าวได้หลังจากผู้ใช้ผ่านการฝึกอบรมแล้วเพื่อลดขนาดแอป
เคล็ดลับขั้นสูง
โดยปกติแล้ว คุณจะต้องจัดการสถานการณ์ที่ผู้ใช้แสดงเจตนาอย่างชัดเจนว่าต้องการใช้ฟังก์ชันการทำงานของโมดูลฟีเจอร์แบบออนดีมานด์
อย่างไรก็ตาม คุณอาจต้องคาดการณ์ว่าผู้ใช้มีแนวโน้มที่จะมีส่วนร่วมกับฟีเจอร์เมื่อใดก่อนที่ผู้ใช้จะส่งสัญญาณว่าต้องการใช้ฟีเจอร์นั้น การใช้แอปที่ให้คุณดาวน์โหลดและสร้างสูตรอาหารเป็นตัวอย่าง หลักเกณฑ์ต่อไปนี้อธิบายวิธีเพิ่มประสิทธิภาพประสบการณ์การนำส่งโมดูลโดยคาดการณ์ความต้องการของผู้ใช้
คาดการณ์ความต้องการฟีเจอร์ของผู้ใช้ในเซสชันปัจจุบัน พิจารณาว่าผู้ใช้ต้องสร้างบัญชีสำหรับแอปสูตรอาหารเฉพาะเมื่อต้องการสร้างและแชร์สูตรอาหารของตนเองกับชุมชนเท่านั้นหรือไม่ คุณสามารถใช้การสร้างบัญชีเป็นสัญญาณว่าผู้ใช้มีแนวโน้มที่จะเพิ่มสูตรของตัวเอง โดยเริ่มดาวน์โหลดข้อบังคับของฟีเจอร์ก่อนที่ผู้ใช้จะแตะ "เพิ่มสูตร" เสียอีก คุณสามารถใช้แนวทางนี้กับเส้นทางของผู้ใช้อื่นๆ ในแอปเพื่อให้ขั้นตอนการดาวน์โหลดฟีเจอร์ราบรื่นยิ่งขึ้น
คาดการณ์ความต้องการฟีเจอร์ของผู้ใช้ในเซสชันที่กําลังจะมาถึง หากไม่ต้องการให้แอปดาวน์โหลดและติดตั้งโมดูลแบบออนดีมานด์ทันที คุณสามารถเลื่อนการติดตั้งไว้เมื่อแอปทำงานอยู่เบื้องหลัง และ Google Play จะจัดการการดาวน์โหลดและติดตั้งให้คุณ ตัวอย่างเช่น สมมติว่าคุณต้องการเปิดตัวสูตรอาหารใหม่ตามฤดูกาลสำหรับแอปทำอาหาร ซึ่งไม่ใช่รายการที่มีลำดับความสำคัญสูงสำหรับเซสชันปัจจุบันของผู้ใช้ คุณสามารถขอให้ Play ดาวน์โหลดและติดตั้งสูตรเหล่านี้เมื่อแอปทำงานอยู่เบื้องหลัง ซึ่งจะมีประโยชน์อย่างยิ่งสำหรับฟีเจอร์ขนาดใหญ่ (>10 MB) ที่ไม่จําเป็นต้องใช้ในทันที แต่มีแนวโน้มว่าอาจต้องใช้ในอนาคต
คาดการณ์ความต้องการฟีเจอร์ของผู้ใช้ก่อนการติดตั้งแอป คุณอาจต้องเพิ่มการรองรับการแสดงแบบมีเงื่อนไขเพื่อรวมฟีเจอร์ของคุณไว้ ณ เวลาที่ติดตั้งโดยอิงตามประเทศของผู้ใช้ ความสามารถของฮาร์ดแวร์อุปกรณ์ และระดับ API เช่น คุณอาจต้องการรวมสูตรอาหารที่ใช้หมูไว้ในโมดูลแบบมีเงื่อนไข และยกเว้นโมดูลนั้นจากการติดตั้งแอปในภูมิภาคที่หลีกเลี่ยงอาหารหมูเป็นส่วนใหญ่