March 27, 2016

เราจะสร้างประสบการณ์การขอสิทธิ์ (permission request) ในการเข้าถึงข้อมูลที่ดีให้แก่ผู้ใช้แอพได้อย่างไร?

อย่างหนึ่งที่จะทำให้ผู้ใช้ (user) รู้สึกหงุดหงิดเวลาใช้แอพของเราก็คือ การถูกถามขอสิทธิ์ (permission) ในการเข้าถึงข้อมูลสำคัญที่เป็นส่วนตัวของเรานั่นเอง ซึ่งสิทธิ์เหล่านี้ก็เช่นการขอเข้าถึง location service, camera, push notification, calendar, contact สาเหตุที่ขอก็เพื่อให้แอพสามารถทำงานได้อย่างเต็มความสามารถนั่นเอง แต่เมื่อไรก็ตามที่ผู้ใช้ไม่ให้สิทธิ์ที่แอพต้องการ แอพก็อาจทำงานได้ไม่เป็นไปตามที่ตั้งใจไว้ได้อย่างเต็มที่ และส่งผลให้แอปมีคุณค่าต่อผู้ใช้น้อยลง และสุดท้าย ผู้ใช้ก็ตัดสินใจลบแอปทิ้งในที่สุด :) 

ทำไมล่ะ? ลบทิ้งทำไม ลบทิ้งทั้งๆ ที่ยังไม่ได้ใช้ฟีเจอร์ที่ตั้งใจทำมาให้ใช้เลยเนี่ยนะ... น่าเศร้าใช่ไหม?

ส่วนใหญ่แล้ว Apple มักจะไม่ให้ขอสิทธิ์มั่วๆ อยู่แล้ว ถ้ามองในมุมของ iOS App เมื่อนักพัฒนาอัพโหลดแอพส่งขึ้นไปบน AppStore ก็จะมีเจ้าหน้าที่จาก Apple มาตรวจสอบแอพ รวมถึงตรวจสอบการร้องขอสิทธิ์ต่างๆ ว่าเหมาะสมหรือไม่ หากไม่เหมาะสมแอพนั้นจะไม่ได้รับอนุญาติให้ผู้ใช้คนอื่นดาวน์โหลดผ่าน AppStore ได้ ดังนั้นผู้ใช้ทางฝั่ง iOS ก็พอจะอุ่นใจได้บ้างว่า ที่แอพขอสิทธิ์เราไปน่ะ แอพได้เขียนอธิบายไว้ชัดเจน และไว้ใจได้แน่นอนว่าแอพจะไม่เอาข้อมูลเราไปใช้อย่างอื่นนอกจากที่เขียนบอกเราไว้แล้ว (ดังนั้นก่อนให้สิทธิ์ต่างๆ ควรอ่านให้ดีก่อนนะ)

การออกแบบหน้าจอการขอสิทธิ์ในการเข้าถึงข้อมูลส่วนตัวจากผู้ใช้นั้น ให้ focus อยู่ที่ 3 เรื่องหลักได้แก่ 1. เวลา, 2. บริบท (context) และ 3. ข้อความที่ใช้ขอสิทธิ์ เอาล่ะ มาดูกันว่าจะใช้ 3 สิ่งนี้ในการขอสิทธิ์ให้สำเร็จได้อย่างไร

1. จังหวะเวลาที่เหมาะสมในการขอสิทธิ์

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

https://medium.com/product-breakdown/5-ways-to-ask-users-for-ios-permissions-a8e199cc83ad#.lg31hg58p


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

2. อธิบายบริบท (context) ให้ผู้ใช้เข้าใจถึงสิทธิ์ที่ต้องการ

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

http://techcrunch.com/2014/04/04/the-right-way-to-ask-users-for-ios-permissions/

นอกจากจะบอกว่าสิทธิ์ที่แอพขอนั้นจะเอาไปใช้กับฟีเจอร์ไหนแล้ว ควรอธิบายให้ผู้ใช้เข้าใจถึงความเป็นส่วนตัวในการให้สิทธิ์เพิ่มเติมด้วย เช่นแอพที่เกี่ยวกับการเงิน ก็ควรที่จะอธิบายผู้ใช้รู้สึกถึงความสบายใจในความเป็นส่วนตัว และเราจะเก็บข้อมูลให้นั้นปลอดภัยแค่ไหน หรือแอพเดทหาคู่ หรือแอพประเภท social network เมื่อขอการเข้าถึงปฏิทิน ก็อาจต้องอธิบายเพิ่มด้วยว่าปฏิทินนี้จะไม่แชร์กับใคร หรือแชร์ให้ใครเห็นได้บ้าง ให้ชัดเจน ซึ่งนี่ก็เป็นอีกหัวใจหลักหนึ่งที่ทำให้ผู้ใช้ รู้สึกวางใจ ปลอดภัย และส่งผลต่อการตัดสินใจในการให้หรือไม่ให้สิทธิ์แก่เรา

3. ใส่ใจกับอารมณ์ของน้ำเสียง ภาษา และข้อความที่ใช้

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

จะทำอย่างไรถ้าผู้ใช้ปฏิเสธที่จะให้สิทธิ์กับเรา?

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

ตอนนี้ แอพบน iOS ยังไม่มีหนทางใดให้เราถามหาสิทธิ์จากผู้ใช้ซ้ำได้ กรณีนี้ เราทำได้แค่บอกผู้ใช้รู้ว่าฟีเจอร์ตรงนี้ไม่สามารถใช้งานได้ เนื่องจากขาดสิทธิ์เหล่านี้ และเราควรแนะนำเพิ่มถึงวิธีในการให้สิทธิ์เราใหม่ ว่าต้องทำอย่างไรให้ชัดเจน ยกตัวอย่างแอพ Twitter ในกรณีที่เราไม่ให้สิทธิ์ในการเข้าถึงตำแหน่ง ก็จะบอกขั้นตอนให้ผู้ใช้เข้าใจว่าหากเปลี่ยนใจให้สิทธิ์นั้นจะต้องทำอย่างไรบ้าง และสิ่งที่เราสามารถทำเพิ่มเติมได้อีกนิดนอกจากการบอกขั้นตอนดังกล่าวแล้ว เราควรแปะปุ่ม deep link แนบไว้ในคำแนะนำด้วย เมื่อผู้ใช้กดปุ่มนี้แล้ว iOS จะพาผู้ใช้ไปยังหน้า Settings เพื่อจัดการสิทธิ์ต่างๆ ได้ทันที


สรุป


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

How to create better user's permission requests in iOS App