
Deep link จะนำผู้ใช้งานจากข้อความใน Braze ไปยังหน้าจอภายในแอปของคุณโดยตรง ประเภทของลิงก์ที่คุณต้องใช้ขึ้นอยู่กับช่องทางที่คุณส่ง ไม่ใช่ปลายทางที่ต้องการ Custom scheme เหมาะสำหรับ Push, In-app message และ Content Cards ส่วน Universal link เหมาะสำหรับอีเมลและ SMS ซึ่งระบบจะทำการเขียนที่อยู่ใหม่เพื่อติดตามการคลิกก่อนที่ผู้ใช้จะกด
คุณควรใช้ลิงก์ประเภทไหน?
Braze มีวิธีการจัดการลิงก์จากข้อความ 3 รูปแบบ ซึ่งการเลือกใช้ไม่ใช่เรื่องของความชอบ แต่ละแบบมีขั้นตอนการตั้งค่าที่ต่างกันและมีข้อจำกัดในการทำงานที่ต่างกัน
ประเภทลิงก์ตัวอย่างเหมาะสำหรับเปิดโดยไม่มีแอปติดตั้งอยู่Custom schememyapp://products/123Push, In-app message, Content Cardsไม่ได้ ลิงก์จะใช้งานไม่ได้Universal linkhttps://myapp.com/products/123อีเมล, SMS, ช่องทางที่มีการติดตามการคลิกได้ โดยจะเปลี่ยนไปเปิดบนเว็บแทนOpen Web URL Inside Appทุกช่องทาง https:// URLเนื้อหาเว็บใน WebView แบบโมดอลไม่สามารถใช้ได้ โดยจะแสดงผลใน WebView
กฎที่เราใช้ในการส่งข้อความคือ ช่องทางจะเป็นตัวกำหนดประเภทของลิงก์ และต้องกำหนดก่อนที่จะเริ่มเขียนโค้ดแอป Push, In-app message และ Content Cards จะส่งที่อยู่ตามที่คุณระบุไว้ แต่สำหรับอีเมลและ SMS จะไม่เป็นเช่นนั้น เนื่องจากระบบโครงสร้างพื้นฐานในการส่งจะทำการเขียนที่อยู่ใหม่ในระหว่างการส่ง
ลำดับขั้นตอนดังกล่าวเป็นแนวทางที่เราสรุปจากการทำงานจริง ไม่ใช่คำแนะนำอย่างเป็นทางการจาก Braze ทีมที่เลือกปลายทางก่อนแล้วค่อยเลือกประเภทลิงก์มักจะพบปัญหาความไม่เข้ากันในช่วงทดสอบ (Staging) ซึ่งเป็นช่วงที่เขียนโค้ดแอปโดยใช้ Delegate method ที่ไม่ถูกต้องไปแล้ว
ทำไม Deep link ในอีเมลถึงต้องมีการตั้งค่าเพิ่มเติม?
Braze ระบุไว้อย่างชัดเจนว่าผู้ให้บริการอีเมลจะครอบลิงก์ด้วยโดเมนสำหรับการติดตามการคลิก โดยมี 3 รายที่ระบุไว้ดังนี้:
- SendGrid
- SparkPost
- Amazon SES
Custom scheme ไม่สามารถรองรับการเขียนที่อยู่ใหม่แบบนั้นได้ ด้วยเหตุนี้อีเมลจึงจำเป็นต้องใช้ Universal link เท่านั้น
ส่วนที่มักทำให้เกิดปัญหาคือขั้นตอนที่ลึกลงไปอีกระดับ ไฟล์ Apple App Site Association จะต้องถูกโฮสต์ไว้บนโดเมนสำหรับการติดตามการคลิกด้วย ไม่ใช่แค่บนโดเมนหลักของคุณเท่านั้น หากโฮสต์ไว้เพียงที่เดียว ลิงก์ในอีเมลทั้งหมดจะถูกเปิดผ่านเบราว์เซอร์แทนที่จะเป็นแอป
ความผิดพลาดในทางตรงกันข้ามก็มีบันทึกไว้เช่นกัน หากไฟล์ association บนโดเมนที่ใช้ติดตามการคลิกใช้รูปแบบเส้นทางที่ครอบคลุมทุกอย่างบนโดเมนนั้น ลิงก์ทุกลิงก์ในอีเมลจะเปิดแอปขึ้นมา รวมถึงลิงก์ยกเลิกการสมัครสมาชิกที่ท้ายอีเมลด้วย วิธีแก้ไขของ Braze คือการจำกัดเส้นทาง สำหรับ SendGrid คำแนะนำคือให้จับคู่กับ /uni/ และกำหนดให้เฉพาะลิงก์เหล่านั้นเป็นลิงก์แบบสากล (universal)
ลิงก์แต่ละประเภทต้องการอะไรบ้าง?
Custom scheme เป็นวิธีที่สร้างได้ประหยัดกว่า คุณเพียงแค่ลงทะเบียน scheme ไว้ภายใต้ CFBundleURLTypes ใน Info.plistเพิ่มลงในรายการอนุญาต (query allowlist) และเขียนโค้ดใน application(_:open:options:)โดยไม่ต้องใช้ไฟล์ association และไม่ต้องตั้งค่า Braze SDK เพิ่มเติม เพราะ SDK จะเปิด URL แบบ custom scheme ให้โดยอัตโนมัติ
Universal links มีต้นทุนที่ต้องจ่ายเพิ่มใน 3 ส่วนพร้อมกัน:
- โฮสต์ไฟล์ association ไว้ที่
https://yourdomain.com/.well-known/apple-app-site-association. - เพิ่ม
applinks:yourdomain.comในส่วน Signing and Capabilities ใน Xcode - เขียนโค้ดใน
application(_:continue:restorationHandler:)และตั้งค่าconfiguration.forwardUniversalLinksเป็นtrue.
มีพฤติกรรมหนึ่งที่คุณควรทราบก่อนออกแบบโดยอิงจากการยกเว้นพาธ (path exclusions) คือ Braze SDK จะไม่อ่านไฟล์ association ของคุณ โดย SDK จะแยก Universal Links ออกจาก URL เว็บทั่วไปโดยดูที่ชื่อโดเมนเพียงอย่างเดียว ดังนั้นกฎการยกเว้นที่เขียนไว้ในไฟล์ดังกล่าวจะไม่มีผลต่อวิธีการที่ SDK จัดเส้นทางลิงก์นั้น
คุณจะแยกปัญหา Deep Link ที่ใช้งานไม่ได้ได้อย่างไร?
การดีบั๊ก Deep Link ภายในแคมเปญแทบจะบอกอะไรคุณไม่ได้เลย เพราะแคมเปญเป็นการรวมองค์ประกอบอิสระสี่อย่างเข้าด้วยกัน เราจึงใช้วิธีตรวจสอบจากอุปกรณ์ออกมาข้างนอก และหยุดที่จุดแรกที่เกิดปัญหา
ขั้นที่หนึ่ง: ภายนอกแอปพลิเคชัน
สำหรับ Custom Scheme ให้รันคำสั่ง xcrun simctl openurl booted "myapp://products/123". สำหรับ Universal Link ให้คัดลอกลิงก์ไปวางในแอป Notes บนอุปกรณ์จริงแล้วแตะที่ลิงก์นั้น Braze ไม่แนะนำให้ทดสอบผ่านแถบที่อยู่ของ Safari เนื่องจาก iOS จัดการกับ URL ที่พิมพ์เองต่างจากการแตะที่ลิงก์ หากลิงก์ไม่ทำงานในขั้นตอนนี้ แสดงว่าปัญหาอยู่ที่แอปของคุณ และการแก้ไขแคมเปญก็จะไม่ช่วยให้ลิงก์ทำงานได้
ขั้นที่สอง: ช่องทางเดียว
ส่งลิงก์ผ่านช่องทางของ Braze เพียงช่องทางเดียวโดยเปิดการบันทึกข้อมูลแบบละเอียด (verbose logging) ไว้ SDK จะแสดงรายการ Opening ที่ระบุช่องทาง, แฟล็ก useWebView และ isUniversalLink แฟล็ก
ขั้นที่สาม เปรียบเทียบช่องทาง
หากลิงก์ใช้งานได้จากข้อความแจ้งเตือน (push) แต่ไม่ได้ผลจากข้อความในแอป ให้ลองนำบันทึกทั้งสองรายการมาวางเทียบกัน ความแตกต่างใน isUniversalLink หมายความว่า SDK จัดประเภทที่อยู่เดียวกันไว้ต่างกัน
การจัดลำดับสามขั้นนี้เป็นวิธีของเรา Braze ได้เผยแพร่ขั้นตอนการตรวจสอบของพวกเขาไว้ และเราได้นำมาเรียงลำดับใหม่เป็นระดับความสำคัญ เพื่อให้คุณทราบว่าทีมใดเป็นผู้รับผิดชอบในการแก้ไขเมื่อพบปัญหาในขั้นนั้นๆ
อะไรที่ดูเหมือนเป็นปัญหาจาก Braze แต่จริงๆ แล้วไม่ใช่?
มีพฤติกรรมหลายอย่างที่ได้รับการบันทึกไว้ซึ่งทำให้เกิดอาการที่ดูเหมือนเป็นความผิดพลาดของแคมเปญ ทั้งที่จริงๆ แล้วไม่ใช่
อาการสาเหตุที่ระบุไว้ลิงก์ Universal เปิดเบราว์เซอร์หลังจากที่เคยใช้งานได้เมื่อวานนี้การกดลิงก์ค้างไว้แล้วเลือกเปิดอาจทำให้การเชื่อมโยงโดเมนเสียหาย แก้ไขได้โดยการกดค้างแล้วเลือกเปิดในแอปUniversal links ไม่ทำงานในโปรแกรมจำลองการส่งต่อข้อมูลจำเป็นต้องใช้สิทธิ์ของแอปพลิเคชัน ซึ่งโปรแกรมจำลองไม่ได้เปิดเผยข้อมูลนี้โดยตรงURL เว็บเปิดขึ้นมาเป็นหน้าว่างหน้าเป้าหมายมีการตั้งค่าส่วนหัวความปลอดภัยของเนื้อหาหรือการจัดเฟรมที่บล็อกการแสดงผลภายใน WebViewการแจ้งเตือนบน Android เปิดแอปได้แต่ไม่ไปที่หน้าจอที่ต้องการcom_braze_handle_push_deep_links_automatically ไม่ได้ถูกตั้งค่าเป็น true ใน braze.xml
มีอีกสองประเด็นที่ควรนำไปใส่ไว้ในรายการตรวจสอบก่อนสร้างแอป แอปที่สร้างด้วย Xcode 27 ขึ้นไปจะใช้ UIScene ซึ่งหมายความว่า URL แบบกำหนดเอง (custom scheme) จะถูกส่งไปยัง SceneDelegate แทนที่จะเป็น AppDelegateและบน Android จะมีตัวจัดการหนึ่งตัวที่ทำหน้าที่ตาม IBrazeDeeplinkHandler ซึ่งช่วยจัดการลิงก์จากทั้ง Content Cards, ข้อความในแอป และการแจ้งเตือนแบบพุชไปพร้อมกัน
Deep link เข้ามาเปลี่ยนการออกแบบแคมเปญอย่างไร?
Deep link ช่วยลดขั้นตอนระหว่างข้อความกับการดำเนินการที่ต้องการ ซึ่งมีความสำคัญอย่างยิ่งเมื่อการดำเนินการนั้นมีความเฉพาะเจาะจง และเป็นจุดที่การออกแบบเส้นทางของผู้ใช้งาน (Journey Design) มาบรรจบกับการออกแบบข้อความ
การเริ่มต้นใช้งาน (Onboarding) คือตัวอย่างที่ชัดเจนที่สุด ขั้นตอนการเปิดใช้งานที่ระบุถึงฟีเจอร์ใดฟีเจอร์หนึ่งควรนำผู้ใช้ไปยังฟีเจอร์นั้นโดยตรง และ เส้นทางการเริ่มต้นใช้งานที่ขับเคลื่อนด้วย Canvas จะช่วยให้คุณสร้างโครงสร้างแบบแยกสาขาเพื่อส่งผู้ใช้แต่ละกลุ่มไปยังหน้าจอที่แตกต่างกันได้ โดย แคมเปญการเปิดใช้งานที่เราเคยเขียนถึงไปก่อนหน้านี้ ต่างก็มีจุดหมายปลายทางที่ชัดเจน และแต่ละแคมเปญก็เป็นเส้นทางแยกต่างหากในไฟล์เชื่อมโยง
เช่นเดียวกันกับการปรับแต่งให้เหมาะกับบุคคล หากคุณกำลังสร้าง เนื้อหาข้อความแบบเฉพาะบุคคลอยู่แล้ว จุดหมายปลายทางก็ควรได้รับการปฏิบัติเช่นเดียวกัน และ เทคนิคเนื้อหาแบบไดนามิก ก็สามารถนำมาใช้กับเส้นทางของลิงก์ได้ง่ายพอๆ กับเนื้อหาในข้อความ งานดึงดูดผู้ใช้กลับมา (Win-back) เป็นกรณีที่เห็นปัญหานี้ชัดเจนที่สุด เนื่องจาก แคมเปญเพื่อรักษาฐานลูกค้า มักจะชี้ไปยังตะกร้าสินค้าหรือรายการที่บันทึกไว้ซึ่งมีอยู่เฉพาะสำหรับผู้ใช้แต่ละคนเท่านั้น
คำถามที่พบบ่อย
Deep link แบบ custom scheme ใช้ในอีเมลได้หรือไม่?
ไม่ได้ Braze ระบุว่าผู้ให้บริการอีเมลจะครอบลิงก์ด้วยโดเมนสำหรับติดตามการคลิก ซึ่งการเขียนทับลิงก์ดังกล่าวจะทำให้ custom scheme ใช้งานไม่ได้ ให้ใช้ universal link สำหรับอีเมลแทน และโฮสต์ไฟล์ Apple App Site Association ไว้บนโดเมนสำหรับติดตามการคลิกควบคู่ไปกับโดเมนหลักของคุณ
ฉันจำเป็นต้องมีไฟล์ Apple App Site Association สำหรับ deep link ในการแจ้งเตือนแบบ push หรือไม่?
ไม่จำเป็นสำหรับลิงก์แบบ custom scheme โดย Braze ระบุว่าไฟล์ association ไม่จำเป็นสำหรับ custom scheme ซึ่งต้องการเพียงแค่การลงทะเบียน scheme ใน Info.plist และตัวจัดการ (handler) เท่านั้น แต่คุณจำเป็นต้องมีไฟล์นี้หากคุณส่ง universal link ผ่านการแจ้งเตือนแบบ push โดยเปิดใช้งาน forwardUniversalLinks ไว้
ไฟล์ Apple App Site Association มีขนาดใหญ่ได้สูงสุดเท่าใด?
รายการตรวจสอบการตรวจสอบความถูกต้องของ Braze กำหนดขนาดสูงสุดไว้ที่ 128 KB พร้อมด้วยใบรับรองที่ถูกต้อง, Content-Type เป็น application/jsonและ appID ที่ตรงกับ Team ID และ Bundle ID ของคุณ
ทำไม Deep link ถึงใช้งานได้จาก Push notification แต่กลับใช้ไม่ได้จาก In-app message?
เปิดใช้งาน Verbose logging แล้วเปรียบเทียบ รายการ ของแต่ละช่องทาง Braze จะระบุถึงความแตกต่างใน useWebView และ isUniversalLink ซึ่งเป็นค่าที่บ่งบอกว่า SDK กำลังตีความลิงก์เดียวกันในรูปแบบที่ต่างกัน
ฉันสามารถทดสอบ Universal links บน iOS simulator ได้หรือไม่?
Braze แนะนำให้ใช้เครื่องจริง เนื่องจากกระบวนการส่งต่อ Universal link จำเป็นต้องใช้ Application entitlements ซึ่ง Simulator ไม่รองรับโดยตรง การเพิ่มไฟล์ .entitlements เข้าไปในขั้นตอนการ Build ที่ชื่อ Copy Bundle Resources จะช่วยให้รองรับการใช้งานบน Simulator ได้
แหล่งข้อมูล
- คู่มือการทำ Deep linking บน iOS, เอกสารประกอบของ Braze สืบค้นเมื่อ 16 ก.ย. 2026 braze.com/docs/developer_guide/push_notifications/ios_deep_linking_guide
- การแก้ไขปัญหา Deep linking, เอกสารประกอบของ Braze สืบค้นเมื่อ 16 ก.ย. 2026 braze.com/docs/developer_guide/push_notifications/deep_linking_troubleshooting
- การทำ Deep-linking สำหรับข้อความในแอป (In-app message) ของ Braze SDK, เอกสารประกอบของ Braze เข้าถึงเมื่อ 16 ก.ย. 2026 braze.com/docs/developer_guide/in_app_messages/deep_linking
CustomerIK เป็นพาร์ทเนอร์ด้านการติดตั้งใช้งาน Braze




