คุณสามารถสร้าง Dynamic Links แบบสั้นหรือแบบยาวได้ด้วย Firebase Dynamic Links Builder API API นี้ยอมรับ Dynamic Link แบบยาวหรือออบเจ็กต์ที่มี Dynamic Link และแสดง URL เหมือนตัวอย่างต่อไปนี้
https://example.com/link/WXYZ https://example.page.link/WXYZ
ตั้งค่า Firebase และ Dynamic Links SDK
ก่อนที่จะสร้าง Dynamic Links ในแอป Android ได้ คุณต้องใส่ Firebase SDK หากคุณตั้งค่าแอปให้รับ Dynamic Links คุณได้ ดำเนินการตามขั้นตอนเหล่านี้และคุณสามารถข้ามส่วนนี้ได้
หากคุณยังไม่ได้ดำเนินการ เพิ่ม Firebase ลงในโปรเจ็กต์ Android
เมื่อคุณลงทะเบียนแอป ให้ระบุคีย์ SHA-1 Signing หากคุณใช้ ลิงก์แอป ให้ระบุคีย์ SHA-256 ด้วย
-
ในไฟล์ Gradle ของโมดูล (ระดับแอป) (ปกติ
<project>/<app-module>/build.gradle.kts
หรือ<project>/<app-module>/build.gradle
) เพิ่มทรัพยากร Dependency สำหรับไลบรารี Dynamic Links สำหรับ Android เราขอแนะนำให้ใช้ Firebase Android BoM เพื่อควบคุมการกำหนดเวอร์ชันไลบรารีเราขอแนะนำเพื่อประสบการณ์การใช้งาน Dynamic Links ที่ดีที่สุด กำลังเปิดใช้ Google Analytics ในโปรเจ็กต์ Firebase และเพิ่ม Firebase SDK สำหรับ Google Analytics ลงในแอป
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.2.0")) // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links' implementation 'com.google.firebase:firebase-analytics' }
เมื่อใช้Firebase Android BoM แอปจะใช้ไลบรารี Firebase Android เวอร์ชันที่เข้ากันได้เสมอ
(ทางเลือก) เพิ่มทรัพยากร Dependency ของไลบรารี Firebase โดยไม่ใช้ BoM
หากเลือกไม่ใช้ Firebase BoM คุณต้องระบุเวอร์ชันไลบรารี Firebase แต่ละเวอร์ชัน ในบรรทัดทรัพยากร Dependency
โปรดทราบว่าหากคุณใช้ไลบรารี Firebase หลายรายการในแอป เราขอแนะนำอย่างยิ่ง แนะนำให้ใช้ BoM ในการจัดการเวอร์ชันไลบรารี เพื่อให้มั่นใจว่าทุกเวอร์ชัน ที่เข้ากันได้
dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links:22.1.0' implementation 'com.google.firebase:firebase-analytics:22.1.0' }
- ในคอนโซล Firebase ให้เปิดส่วน Dynamic Links
-
หากคุณยังไม่ได้ยอมรับข้อกำหนดในการให้บริการและตั้งค่าโดเมน สำหรับ Dynamic Links ให้ดำเนินการเมื่อได้รับข้อความแจ้ง
หากคุณมีโดเมน Dynamic Links อยู่แล้ว โปรดจดไว้ สิ่งที่คุณต้องทำ ระบุโดเมน Dynamic Links เมื่อคุณสร้าง Dynamic Links แบบเป็นโปรแกรม
- แนะนำ: ระบุรูปแบบ URL ที่อนุญาตใน Deep Link และลิงก์สำรอง การทำเช่นนี้จะเป็นการป้องกันไม่ให้บุคคลที่ไม่ได้รับอนุญาตสามารถ สร้าง Dynamic Links ที่เปลี่ยนเส้นทางจากโดเมนของคุณไปยังเว็บไซต์ที่คุณควบคุมไม่ได้ ดูอนุญาตบางรายการ รูปแบบ URL
ใช้คอนโซล Firebase
หากต้องการสร้าง Dynamic Link รายการเดียว ไม่ว่าจะเพื่อการทดสอบหรือสำหรับทีมการตลาด เพื่อสร้างลิงก์เพื่อใช้ในสิ่งต่างๆ เช่น โพสต์โซเชียลมีเดีย วิธีที่ง่ายที่สุดในการ ไปที่คอนโซล Firebase และสร้างด้วยตนเองตามแบบฟอร์มทีละขั้นตอน
สร้าง Dynamic Link จากพารามิเตอร์
หากต้องการสร้าง Dynamic Link ให้สร้างออบเจ็กต์ DynamicLink
ใหม่ด้วย
เครื่องมือสร้าง ซึ่งระบุพารามิเตอร์ Dynamic Link ด้วยเมธอดของ Builder จากนั้นโทร
buildDynamicLink
หรือ buildShortDynamicLink
ตัวอย่างเล็กน้อยต่อไปนี้สร้าง Dynamic Link แบบยาวเพื่อ
https://www.example.com/
ที่เปิดด้วยแอป Android ใน Android
และแอป com.example.ios
ใน iOS
Kotlin+KTX
val dynamicLink = Firebase.dynamicLinks.dynamicLink { link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" // Open links with this app on Android androidParameters { } // Open links with com.example.ios on iOS iosParameters("com.example.ios") { } } val dynamicLinkUri = dynamicLink.uri
Java
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") // Open links with this app on Android .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build()) // Open links with com.example.ios on iOS .setIosParameters(new DynamicLink.IosParameters.Builder("com.example.ios").build()) .buildDynamicLink(); Uri dynamicLinkUri = dynamicLink.getUri();
หากต้องการสร้าง Dynamic Link แบบสั้น ให้สร้าง DynamicLink
ด้วยวิธีเดียวกัน และ
จากนั้นโทร buildShortDynamicLink
การสร้างลิงก์แบบสั้นจำเป็นต้องมี
แทนการส่งลิงก์คืนโดยตรง
buildShortDynamicLink
แสดงผล Task
ซึ่งทำให้
ลิงก์แบบสั้นที่ใช้ได้เมื่อคําขอเสร็จสมบูรณ์ เช่น
Kotlin+KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync { link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" // Set parameters // ... }.addOnSuccessListener { (shortLink, flowchartLink) -> // You'll need to import com.google.firebase.dynamiclinks.component1 and // com.google.firebase.dynamiclinks.component2 // Short link created processShortLink(shortLink, flowchartLink) }.addOnFailureListener { // Error // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") // Set parameters // ... .buildShortDynamicLink() .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { @Override public void onComplete(@NonNull Task<ShortDynamicLink> task) { if (task.isSuccessful()) { // Short link created Uri shortLink = task.getResult().getShortLink(); Uri flowchartLink = task.getResult().getPreviewLink(); } else { // Error // ... } } });
โดยค่าเริ่มต้น ระบบจะสร้าง Dynamic Links แบบสั้น โดยมีคำต่อท้ายลิงก์ 17 อักขระที่
ทำให้มีแนวโน้มต่ำมากที่จะมีใครคาดเดา Dynamic Link ที่ถูกต้องได้ ถ้า สำหรับ
กรณีการใช้งานของคุณ การที่ใครสักคนเดาลิงก์แบบสั้นได้สำเร็จก็ไม่เสียหายอะไร
คุณอาจต้องการสร้างคำต่อท้ายที่มีความยาวเท่าที่จำเป็น
ที่ไม่ซ้ำ ซึ่งคุณสามารถทำได้โดยการส่ง ShortDynamicLink.Suffix.SHORT
ไปยังเมธอด buildShortDynamicLink
:
Kotlin+KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) { // Set parameters // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() // ... .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT); // ...
พารามิเตอร์ Dynamic Link รายการ
คุณสามารถใช้ Dynamic Link Builder API เพื่อสร้าง Dynamic Links ด้วย พารามิเตอร์ที่รองรับ โปรดดู ข้อมูลอ้างอิง API สำหรับรายละเอียด
ตัวอย่างต่อไปนี้สร้าง Dynamic Link ที่มีพารามิเตอร์ทั่วไปหลายรายการ ตั้งค่า:
Kotlin+KTX
val dynamicLink = Firebase.dynamicLinks.dynamicLink { // or Firebase.dynamicLinks.shortLinkAsync link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" androidParameters("com.example.android") { minimumVersion = 125 } iosParameters("com.example.ios") { appStoreId = "123456789" minimumVersion = "1.0.1" } googleAnalyticsParameters { source = "orkut" medium = "social" campaign = "example-promo" } itunesConnectAnalyticsParameters { providerToken = "123456" campaignToken = "example-promo" } socialMetaTagParameters { title = "Example of a Dynamic Link" description = "This link works whether the app is installed or not!" } }
Java
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") .setAndroidParameters( new DynamicLink.AndroidParameters.Builder("com.example.android") .setMinimumVersion(125) .build()) .setIosParameters( new DynamicLink.IosParameters.Builder("com.example.ios") .setAppStoreId("123456789") .setMinimumVersion("1.0.1") .build()) .setGoogleAnalyticsParameters( new DynamicLink.GoogleAnalyticsParameters.Builder() .setSource("orkut") .setMedium("social") .setCampaign("example-promo") .build()) .setItunesConnectAnalyticsParameters( new DynamicLink.ItunesConnectAnalyticsParameters.Builder() .setProviderToken("123456") .setCampaignToken("example-promo") .build()) .setSocialMetaTagParameters( new DynamicLink.SocialMetaTagParameters.Builder() .setTitle("Example of a Dynamic Link") .setDescription("This link works whether the app is installed or not!") .build()) .buildDynamicLink(); // Or buildShortDynamicLink()
คุณตั้งค่าพารามิเตอร์ Dynamic Link ได้ด้วยวิธีต่อไปนี้
พารามิเตอร์ DynamicLink | |
---|---|
ตั้งค่าลิงก์ |
ลิงก์ที่แอปของคุณจะเปิดขึ้น ระบุ URL ที่แอปสามารถจัดการได้ ซึ่งโดยทั่วไปจะเป็นเนื้อหาของแอป หรือเพย์โหลด ซึ่งเป็นการเริ่มต้นตรรกะเฉพาะแอป (เช่น ให้เครดิตผู้ใช้ด้วยคูปอง หรือ แสดงหน้าจอต้อนรับ) ลิงก์นี้ต้องเป็น URL ที่มีรูปแบบเหมาะสม มีการเข้ารหัส URL อย่างถูกต้อง ใช้ HTTP หรือ HTTPS และไม่สามารถเป็นลิงก์แบบไดนามิกอื่นได้ |
setDomainUriPrefix | คำนำหน้า URL Dynamic Link ซึ่งดูได้ในคอนโซล Firebase ต
โดเมน Dynamic Link มีลักษณะดังตัวอย่างต่อไปนี้
https://example.com/link https://example.page.link |
พารามิเตอร์ Android | |
---|---|
setFallbackUrl | ลิงก์ที่จะเปิดเมื่อไม่ได้ติดตั้งแอป โดยให้ระบุการดำเนินการนี้เพื่อดำเนินการอื่นที่ไม่ใช่การติดตั้งแอปจาก Play Store เมื่อไม่ได้ติดตั้งแอปดังกล่าว เช่น เปิดเนื้อหาเวอร์ชันเว็บบนอุปกรณ์เคลื่อนที่ หรือแสดงหน้าโปรโมตสำหรับแอป |
ตั้งค่าเวอร์ชันขั้นต่ำ | versionCode ของแอปเวอร์ชันต่ำสุดที่สามารถเปิดลิงก์ได้ หากแอปที่ติดตั้งเป็นเวอร์ชันเก่า ระบบจะนำผู้ใช้ไปที่ Play Store เพื่ออัปเกรดแอป |
พารามิเตอร์ iOS | |
---|---|
ตั้งรหัส App Store | รหัส App Store ของแอปซึ่งใช้เพื่อส่งผู้ใช้ไปยัง App Store เมื่อไม่ได้ติดตั้งแอป |
setFallbackUrl | ลิงก์ที่จะเปิดเมื่อไม่ได้ติดตั้งแอป ระบุสิ่งนี้เพื่อดำเนินการอื่นนอกเหนือจากการติดตั้งแอปจาก App Store เมื่อไม่มีการติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บบนอุปกรณ์เคลื่อนที่ หรือแสดงหน้าโปรโมตสำหรับแอป |
ตั้งค่ารูปแบบที่กำหนดเอง | ชุดรูปแบบ URL ที่กำหนดเองของแอป หากกำหนดให้เป็นรูปแบบอื่นที่ไม่ใช่รหัสชุดของแอป |
setIpadFallbackUrl | ลิงก์ที่จะเปิดใน iPad เมื่อไม่ได้ติดตั้งแอป ระบุสิ่งนี้เพื่อดำเนินการอื่นนอกเหนือจากการติดตั้งแอปจาก App Store เมื่อไม่มีการติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บ หรือแสดงหน้าโปรโมชันสำหรับแอป |
รหัสชุด iPad | รหัสชุดของแอป iOS ที่จะใช้ใน iPad เพื่อเปิดลิงก์ แอปต้องเชื่อมต่อกับโปรเจ็กต์จากหน้าภาพรวมของคอนโซล Firebase |
ตั้งค่าเวอร์ชันขั้นต่ำ | หมายเลขเวอร์ชันของแอปเวอร์ชันขั้นต่ำที่สามารถเปิดลิงก์ได้ ระบบจะส่งแฟล็กนี้ไปยังแอปของคุณเมื่อมีการเปิดแอป และแอปจะต้องตัดสินใจว่าจะทำอย่างไรกับการแจ้งเตือนดังกล่าว |
NavigationInfoParameters | |
---|---|
setForcedRedirectEnabled | หากตั้งค่าเป็น "1" ให้ข้ามหน้าตัวอย่างแอปเมื่อเปิด Dynamic Link และเปลี่ยนเส้นทางไปยังแอปหรือ Store แทน หน้าตัวอย่างแอป (เปิดใช้โดยค่าเริ่มต้น) จะส่งผู้ใช้ไปยังปลายทางที่เหมาะสมที่สุดได้อย่างน่าเชื่อถือมากขึ้นเมื่อเปิด Dynamic Links ในแอป อย่างไรก็ตาม หากคุณคาดว่า Dynamic Link จะเปิดเฉพาะในแอปที่สามารถเปิด Dynamic Links ได้อย่างเสถียรโดยไม่ต้องใช้หน้านี้ คุณก็ปิดใช้ด้วยพารามิเตอร์นี้ได้ พารามิเตอร์นี้จะส่งผลต่อลักษณะการทำงานของ Dynamic Link เฉพาะใน iOS เท่านั้น |
พารามิเตอร์เมตาแท็กโซเชียล | |
---|---|
ตั้งชื่อ | ชื่อที่จะใช้เมื่อมีการแชร์ Dynamic Link ในโพสต์บนโซเชียลเน็ตเวิร์ก |
คำอธิบายชุด | คำอธิบายที่จะใช้เมื่อมีการแชร์ Dynamic Link ในโพสต์บนโซเชียลเน็ตเวิร์ก |
URL ตั้งรูปภาพ | URL ไปยังรูปภาพที่เกี่ยวข้องกับลิงก์นี้ รูปภาพควรมีขนาดอย่างน้อย 300x200 พิกเซล และเล็กกว่า 300 KB |
พารามิเตอร์ Google Analytics | |
---|---|
setSource setMedium setCampaign setTerm setContent |
พารามิเตอร์ Analytics ของ Google Play พารามิเตอร์เหล่านี้
(utm_source utm_medium
utm_campaign , utm_term , utm_content )
จะส่งไปยัง Play Store รวมถึงเพย์โหลดลิงก์ต่อท้าย
|
พารามิเตอร์ Analytics ของ ItunesConnect | |
---|---|
setProviderToken setaffiliateToken setCampaignToken |
พารามิเตอร์ข้อมูลวิเคราะห์ของ iTunes Connect พารามิเตอร์เหล่านี้ (pt ,
at , ct ) จะส่งไปยัง App Store |
ตัดDynamic Linkให้ยาวขึ้น
หากต้องการตัด Dynamic Link แบบยาวให้สั้นลง ให้ระบุ URL ของ Dynamic Link โดยใช้
setLongLink
แทนที่จะตั้งค่าพารามิเตอร์ด้วยเครื่องมือสร้างอื่น
วิธีการ:
Kotlin+KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync { longLink = Uri.parse( "https://example.page.link/?link=" + "https://www.example.com/&apn=com.example.android&ibn=com.example.ios", ) }.addOnSuccessListener { (shortLink, flowChartLink) -> // You'll need to import com.google.firebase.dynamiclinks.component1 and // com.google.firebase.dynamiclinks.component2 // Short link created processShortLink(shortLink, flowChartLink) }.addOnFailureListener { // Error // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLongLink(Uri.parse("https://example.page.link/?link=https://www.example.com/&apn=com.example.android&ibn=com.example.ios")) .buildShortDynamicLink() .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { @Override public void onComplete(@NonNull Task<ShortDynamicLink> task) { if (task.isSuccessful()) { // Short link created Uri shortLink = task.getResult().getShortLink(); Uri flowchartLink = task.getResult().getPreviewLink(); } else { // Error // ... } } });