Android App Link เป็นความสามารถในการทำ Deep Link แบบพิเศษใน Android 6 ขึ้นไป ซึ่งช่วยให้ URL ของเว็บไซต์ที่ยืนยันแล้วเปิดเนื้อหาที่เกี่ยวข้องในแอป Android ได้ทันที โดยไม่จำเป็นต้องให้ผู้ใช้เลือกแอปจากกล่องโต้ตอบการแยกความแตกต่าง Android ใช้คำสั่งลิงก์เนื้อหาดิจิทัล (Digital Asset Links)ที่โฮสต์ในเว็บไซต์ของคุณเพื่อสร้างการเชื่อมโยงที่ปลอดภัย และยืนยันแล้วระหว่างเว็บไซต์กับแอปของคุณ หลังจากยืนยันการ เชื่อมโยงแล้ว Android จะกำหนดเส้นทาง Deep Link ไปยังเว็บไซต์ ไปยังแอปของคุณโดยอัตโนมัติเพื่อจัดการ
ตั้งแต่ Android 15 เป็นต้นไป App Link จะมีประสิทธิภาพมากยิ่งขึ้นด้วยการเปิดตัว Dynamic App Link ความสามารถแบบไดนามิกใหม่นี้ช่วยให้คุณปรับแต่งลักษณะการทำงานของ Deep Link ในแอปได้ทันที โดยควบคุมได้มากขึ้นและไม่ต้องเผยแพร่แอปเวอร์ชันใหม่
เหตุผลที่คุณควรใช้ App Link
- ประสบการณ์ของผู้ใช้ที่ราบรื่น - นำผู้ใช้ไปยังเนื้อหาที่เฉพาะเจาะจงในแอปโดยตรงจากผลการค้นหา เว็บไซต์ การรับส่งข้อความ และแอปอื่นๆ เนื่องจาก App Link ใช้ URL เดียวสำหรับเนื้อหาเดียวกันทั้งในเว็บไซต์และในแอป ผู้ใช้ที่ไม่ได้ติดตั้งแอปจะไปที่เว็บไซต์แทน โดยไม่มีการแสดงรหัส 404 และข้อผิดพลาด
- ความปลอดภัยที่ได้รับการปรับปรุง - App Link ต้องมีการยืนยันการเป็นเจ้าของโดเมน ซึ่งจะป้องกันไม่ให้แอปอื่นๆ สกัดกั้นลิงก์ของคุณ
- การกำหนดค่าแบบไดนามิก (Android 15 ขึ้นไป) - อัปเดตลักษณะการทำงานของ Deep Link ในแอปได้ทันที ซึ่งช่วยให้มีความยืดหยุ่นมากขึ้นและอัปเดตได้เร็วขึ้นสำหรับสิ่งต่างๆ เช่น URL ที่กำหนดเอง แคมเปญตามฤดูกาล หรือลิงก์ที่เฉพาะเจาะจงสำหรับผู้ใช้
- การมีส่วนร่วม - คุณสามารถดึงดูดผู้ใช้ผ่านลิงก์ในผลการค้นหา โฆษณา หน้าเว็บ การรับส่งข้อความ และอื่นๆ
วิธีรองรับ App Link
- สร้าง Deep Link ไปยังเนื้อหาที่เฉพาะเจาะจงในแอป: ในไฟล์ Manifest ของแอป ให้สร้างตัวกรอง Intent สำหรับ URI ของเว็บไซต์ และกำหนดค่าให้แอปใช้ข้อมูล จาก Intent เพื่อส่งผู้ใช้ไปยังเนื้อหาที่กำหนดในแอป
- เพิ่มการยืนยันสำหรับ Deep Link: กำหนดค่าแอปให้ขอ การยืนยัน App Link จากนั้นเผยแพร่ไฟล์ JSON ของลิงก์เนื้อหาดิจิทัล (Digital Asset Links) ในเว็บไซต์เพื่อยืนยันการเป็นเจ้าของ
หรือคุณจะใช้ผู้ช่วย Android App Link ใน Android Studio เพื่อแนะนำขั้นตอนที่จำเป็นในการสร้างและยืนยัน Android App Link แต่ละขั้นตอนก็ได้ ดูข้อมูลเพิ่มเติมได้ที่ เครื่องมือสำหรับนักพัฒนาแอป App Link
ความพร้อมใช้งานของ App Link
- Dynamic App Link - Android 15 (ระดับ API 35) ขึ้นไปในอุปกรณ์ที่ติดตั้งบริการของ Google
- App Link - Android 6 (ระดับ API 23) ขึ้นไปในอุปกรณ์ที่ติดตั้งบริการของ Google
- การทำ Deep Link แบบปกติ (ผู้ใช้จัดการ) - Android ทุกเวอร์ชันในอุปกรณ์ทุกรุ่น
วิธีทำงานของ App Link
App Link เป็นวิธีพิเศษในการทำ Deep Link ซึ่งช่วยให้คุณควบคุมการจัดการลิงก์ไปยังเว็บไซต์ของคุณเองได้อย่างเต็มที่ โดยสร้างขึ้นบนระบบที่อิงตาม Intent เดียวกันกับที่ใช้โดย Deep Link ประเภทอื่นๆ แต่เพิ่มขั้นตอนการยืนยันลิงก์โดยใช้ไฟล์ลิงก์เนื้อหาดิจิทัล (Digital Asset Links) ในเว็บไซต์
App Link สร้างการเชื่อมโยงที่ปลอดภัยและเชื่อถือได้ระหว่างแอปกับเว็บไซต์ของคุณโดยใช้ข้อมูลแอปและไฟล์ assetlinks.json พิเศษที่คุณโฮสต์ในเว็บไซต์หรือโดเมน ไฟล์ assetlinks.json จะประกาศคำสั่งลิงก์เนื้อหาดิจิทัล (Digital Asset Links) เพื่อยืนยันการเชื่อมโยงแอป
ขั้นตอนแนวคิดมีดังนี้
- ไฟล์ Manifest ของแอป จะประกาศ URL ในตัวกรอง Intent ด้วย
android:autoVerify="true" และชี้ไปยังโฮสต์เว็บไซต์ - เมื่อติดตั้งแอป ระบบ Android จะดึงข้อมูลไฟล์
assetlinks.jsonจากตำแหน่งที่ทราบในเว็บเซิร์ฟเวอร์ - ระบบจะยืนยัน ว่าไฟล์
assetlinks.jsonใช้ได้และsha256_cert_fingerprintsตรงกับใบรับรองการลงนามของแอป - เมื่อผู้ใช้คลิกลิงก์ที่ตรงกัน ระบบจะกำหนดเส้นทางไปยังแอปของคุณ โดยตรงโดยไม่แสดงกล่องโต้ตอบการแยกความแตกต่าง
เนื่องจาก App Link ใช้ URL แบบ HTTP และการเชื่อมโยงกับเว็บไซต์ ผู้ใช้ที่ไม่ได้ติดตั้งแอปจะไปยังเนื้อหาในเว็บไซต์ของคุณโดยตรง ด้วยวิธีนี้ App Link จึงมอบประสบการณ์ที่เชื่อถือได้และราบรื่นสำหรับผู้ใช้ที่แตะ Deep Link ไปยังพร็อพเพอร์ตี้เว็บของคุณ
Dynamic App Link
ตั้งแต่ Android 15 เป็นต้นไป App Link จะมีประสิทธิภาพมากยิ่งขึ้นด้วยการเปิดตัว Dynamic App Link Dynamic App Link ช่วยให้คุณมีตัวเลือกในการอัปเดตกฎการทำ Deep Link ในฝั่งเซิร์ฟเวอร์ในไฟล์ assetlinks.json โดยไม่ต้องเผยแพร่แอปเวอร์ชันใหม่ Dynamic App Link รองรับฟิลด์ลิงก์เนื้อหาดิจิทัล (Digital Asset Links) เพื่อปรับแต่งกฎการทำ Deep Link อุปกรณ์ Android ที่ติดตั้งบริการของ Google จะรีเฟรชไฟล์เป็นระยะๆ และใช้กฎการทำ Deep Link ใหม่แบบไดนามิก โดยไม่จำเป็นต้องอัปเดตแอป
ก่อนหน้านี้ ไฟล์นี้ใช้สำหรับการยืนยันพื้นฐานเป็นหลัก แต่ตอนนี้เป็นเครื่องมือการกำหนดค่าที่มีประสิทธิภาพซึ่งช่วยให้คุณระบุเส้นทาง พารามิเตอร์การค้นหา ส่วนย่อย และการยกเว้นได้ ซึ่งเป็นโซลูชันการทำ Deep Link แบบไดนามิกและมีประสิทธิภาพ
- การรองรับการยกเว้น: คุณสามารถระบุเส้นทางหรือส่วนของ URL ที่ไม่ควรเปิดแอป แม้ว่าเส้นทางหรือส่วนนั้นจะตรงกับการกำหนดค่า App Link ของคุณก็ตาม
- การรองรับพารามิเตอร์การค้นหา: ฟังก์ชันการทำงานของพารามิเตอร์การค้นหาใหม่ช่วยให้คุณ กำหนดพารามิเตอร์ที่เฉพาะเจาะจงได้ ซึ่งหากมีอยู่ใน URL จะป้องกันไม่ให้แอป เปิด ซึ่งจะเปิดโอกาสที่น่าตื่นเต้นสำหรับการยกเว้นแบบไดนามิก การทดสอบ A/B และการเปิดใช้การลิงก์แอปสำหรับกลุ่มผู้ใช้บางกลุ่มทีละน้อย
- การอัปเดตแบบไดนามิก: ทำการอัปเดตการกำหนดค่า App Link โดยไม่ต้อง
อัปเดตแอปด้วยการระบุเส้นทาง URL ที่แอปจัดการ
โดยตรงภายในไฟล์
assetlinks.jsonที่โฮสต์ในเซิร์ฟเวอร์
นอกจากนี้ Dynamic App Link ยังช่วยให้คุณควบคุม URL ที่ต้องการเปิดแอปได้อย่างละเอียด รวมถึงการจับคู่เส้นทาง URL ส่วนย่อย และพารามิเตอร์การค้นหา นอกจากนี้ คุณยังยกเว้นการจับคู่ใดก็ได้เพื่อไม่ให้ระบบอนุญาตให้เปิดแอป ดูข้อมูลเพิ่มเติมได้ที่ กำหนดค่ากฎแบบไดนามิก
ขั้นตอนแนวคิดสำหรับ Dynamic App Link มีดังนี้
- ไฟล์ Manifest ของแอป จะประกาศ URL ในตัวกรอง Intent ด้วย
android:autoVerify="true" และชี้ไปยังโฮสต์เว็บไซต์ - เมื่อติดตั้งแอป ระบบ Android จะดึงข้อมูลไฟล์
assetlinks.jsonจากตำแหน่งที่ทราบในเว็บเซิร์ฟเวอร์ - ระบบจะยืนยัน ว่าไฟล์ใช้ได้และ
sha256_cert_fingerprintsตรงกับใบรับรองการลงนามของแอป - ระบบจะแยกวิเคราะห์ กฎการทำ Deep Link ที่คุณกำหนดไว้ในฟิลด์
dynamic_app_deep_link_componentsในคำสั่งลิงก์เนื้อหาดิจิทัล (Digital Asset Links) และผสานรวมกับกฎที่ประกาศไว้ในไฟล์ Manifest- เมื่อผู้ใช้คลิกลิงก์ที่ตรงกัน ระบบจะนำผู้ใช้ไปยังแอปของคุณ โดยตรงโดยไม่แสดงกล่องโต้ตอบการแยกความแตกต่าง
- ระบบจะดึงข้อมูลไฟล์
assetlinks.jsonอีกครั้งเป็นระยะๆ เพื่อให้ได้กฎล่าสุด ซึ่งช่วยให้คุณอัปเดตลิงก์ได้โดยไม่ต้องอัปเดตแอป การดึงข้อมูลอีกครั้งเป็นระยะๆ รองรับในอุปกรณ์ที่ใช้ Android 15 (ระดับ API 35) ขึ้นไปซึ่งติดตั้งบริการของ Google
ตัวอย่างกรณีการใช้งาน
- แคมเปญการตลาดตามฤดูกาล: แอปค้าปลีกสามารถเพิ่มกฎสำหรับ "/promo/summer-sale" ลงในไฟล์
assetlinks.jsonเพื่อนำผู้ใช้ไปยังหน้าจอการขายที่เฉพาะเจาะจง เมื่อการขายสิ้นสุดลง คุณสามารถนำกฎออกได้โดยไม่จำเป็นต้องให้ผู้ใช้อัปเดตแอป - URL ที่กำหนดเองสำหรับพาร์ทเนอร์: หากคุณเป็นพาร์ทเนอร์กับอินฟลูเอนเซอร์ คุณสามารถสร้าง URL ที่กำหนดเอง เช่น "/partner/influencer-name" และเพิ่มกฎสำหรับ URL นั้น จากนั้นคุณจะติดตาม อัปเดต หรือนำ URL นี้ออกแบบไดนามิกได้เมื่อการเป็นพาร์ทเนอร์มีการเปลี่ยนแปลง
- เส้นทาง URL ของการทดสอบ A/B: นักพัฒนาแอปสามารถเผยแพร่ฟีเจอร์ใหม่ภายใต้เส้นทาง URL ที่เฉพาะเจาะจงและเพิ่มกฎสำหรับฟีเจอร์นั้นในไฟล์
assetlinks.jsonซึ่งจะช่วยให้นักพัฒนาแอปทดสอบฟีเจอร์กับผู้ใช้บางกลุ่มได้ จากนั้นจึงแก้ไขการกำหนดเส้นทางโดยไม่ต้องทำให้แอปใช้งานได้ทั้งหมด - กิจกรรมระยะสั้น: แอปขายตั๋วหรือแอปกิจกรรมสามารถเพิ่มกฎ URL สำหรับกิจกรรมที่เฉพาะเจาะจงได้ เมื่อกิจกรรมสิ้นสุดลง คุณสามารถลบกฎเหล่านี้ออกจากเซิร์ฟเวอร์ได้
ความเข้ากันได้กับการติดตั้งใช้งาน App Link
ส่วนขยาย Dynamic App Link ใน Android 15 ได้รับการออกแบบมาให้เข้ากันได้อย่างสมบูรณ์กับการติดตั้งใช้งาน App Link ที่มีอยู่ในอุปกรณ์ที่ใช้ Android เวอร์ชันก่อนหน้า แอปเวอร์ชันต่ำกว่าจะไม่สามารถใช้การกำหนดค่าแบบไดนามิกหรือฟีเจอร์การกำหนดค่าได้ โดยจะกลับไปใช้กฎที่ประกาศไว้ในไฟล์ Manifest App Link จะยังคงเปิดแอปได้อย่างถูกต้องหรือกลับไปใช้เว็บอย่างราบรื่นสำหรับผู้ใช้ Android เวอร์ชันก่อนหน้า ในกรณีส่วนใหญ่ คุณสามารถทำให้กฎแบบไดนามิกใช้งานได้อย่างปลอดภัยโดยไม่ส่งผลต่อประสบการณ์การใช้งานของผู้ใช้รายอื่นๆ
ข้อควรพิจารณาในการตั้งค่ากฎตัวกรอง Dynamic App Link
หากคุณกำลังตั้งค่าตัวกรอง Intent เพื่อใช้กับ Dynamic App Link ใน Android 15 ขึ้นไป โปรดทราบว่ากฎการกำหนดเส้นทางระดับเส้นทางที่กำหนดไว้ในไฟล์ assetlinks.json ฝั่งเซิร์ฟเวอร์ไม่สามารถขยายขอบเขตที่ คุณตั้งค่าแบบคงที่ในกฎตัวกรอง Intent ของไฟล์ Manifest ได้
ด้วยเหตุนี้ เราจึงขอแนะนำให้ตั้งค่าขอบเขตที่กว้างที่สุดเท่าที่จะเป็นไปได้ในตัวกรอง Intent ของไฟล์ Manifest แล้วใช้กฎ assetlinks.json ฝั่งเซิร์ฟเวอร์เพื่อปรับแต่งเพิ่มเติม การกำหนดค่าที่เหมาะสมนี้จะช่วยให้คุณเพิ่ม App Link ใหม่แบบไดนามิกที่อยู่ในขอบเขตกว้างๆ ที่ตั้งไว้ในไฟล์ Manifest ได้
วางแผนการติดตั้งใช้งาน App Link
การรองรับ App Link ต้องมีการติดตั้งใช้งานในแอป รวมถึงการทำงานฝั่งเซิร์ฟเวอร์เพื่อตั้งค่าไฟล์ assetlinks.json เราได้แสดงรายการงานการเตรียมการและการติดตั้งใช้งานทั่วไปไว้ที่นี่ พร้อมลิงก์ไปยังแหล่งข้อมูลอื่นๆ สำหรับรายละเอียด
- การวางแผน Deep Link - เริ่มต้นด้วยการประเมิน Deep Link ที่คุณต้องการ รูปแบบ URL ที่จะใช้ วิธีและเวลาที่จะอัปเดต รวมถึงกิจกรรมหรือการดำเนินการที่คุณต้องการให้ URL แต่ละรายการแก้ไขในแอป
- รองรับ Dynamic App Link - มอบประสบการณ์การใช้งานที่ดีที่สุดเท่าที่จะเป็นไปได้แก่ผู้ใช้ในอุปกรณ์ Android รุ่นล่าสุด ใช้ประโยชน์จาก Dynamic App Link สำหรับผู้ใช้ Android 15 ขึ้นไป
- วางแผนกฎตัวกรองแบบไดนามิก - หากคุณใช้ Dynamic App Link ให้วางแผนวิธีที่กฎฝั่งเซิร์ฟเวอร์จะทำงานร่วมกับกฎที่กำหนดไว้แบบคงที่ในไฟล์ Manifest ของแอป โปรดทราบว่ากฎตัวกรองในไฟล์ assetlinks.json ไม่สามารถขยายขอบเขตของตัวกรองไฟล์ Manifest ของแอปได้ คุณควรวางแผนให้ตัวกรองไฟล์ Manifest ประกาศขอบเขตที่กว้างที่สุดเท่าที่จะเป็นไปได้ จากนั้นกฎฝั่งเซิร์ฟเวอร์จะปรับแต่งกฎเหล่านั้นได้ตามต้องการ ดูข้อมูลเพิ่มเติมได้ที่ กำหนดค่ากฎแบบไดนามิก
- สร้างและทดสอบตัวกรอง Intent สำหรับลิงก์ - ประกาศ Deep Link ในตัวกรอง Intent และทดสอบการจับคู่รูปแบบ URL และการจัดการ Intent ขาเข้า หากต้องการรองรับ Dynamic App Link โปรดทราบว่าคุณอาจต้องย้ายเส้นทางแบบละเอียดบางเส้นทางไปยังไฟล์ JSON ฝั่งเซิร์ฟเวอร์แทน
- อ่านข้อมูลจาก Intent App Link ขาเข้า - จัดการ Intent Deep Link ขาเข้าอย่างเหมาะสมโดยแก้ไข Intent เหล่านั้นไปยังกิจกรรมที่เหมาะสม การติดตั้งใช้งาน App Link จะเหมือนกับการทำ Deep Link แบบปกติ ซึ่งอธิบายไว้ใน อ่านข้อมูลจาก Intent ขาเข้า
- กำหนดค่าการเชื่อมโยงเว็บไซต์และกฎแบบไดนามิก - หากต้องการรองรับ App Link คุณต้องกำหนดค่าไฟล์ฝั่งเซิร์ฟเวอร์ที่โฮสต์ในเว็บไซต์หรือโดเมน อุปกรณ์ Android จะดึงข้อมูลไฟล์นี้เพื่อตรวจสอบการติดตั้งใช้งาน App Link กับแอปของคุณ ดูข้อมูลเพิ่มเติมที่นี่
- ทดสอบการยืนยัน App Link - ตรวจสอบว่าระบบ Android สามารถยืนยัน Deep Link โดยอัตโนมัติได้สำเร็จ ใช้การแก้ไขข้อบกพร่องและการทดสอบแบบครบวงจรเพื่อตรวจสอบว่าการกำหนดค่าของคุณปลอดภัยและทำงานได้อย่างถูกต้องในเส้นทาง App Link ที่ยืนยันแล้วทั้งหมด
- ดูข้อมูลเกี่ยวกับเครื่องมือที่คุณใช้ตั้งค่า App Link ได้ ซึ่งรวมถึง Android Studio และ Play Console ดูข้อมูลเพิ่มเติมที่นี่