คุณสร้าง 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 หากใช้ App Link ให้ระบุคีย์ 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:34.0.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 เวอร์ชันที่เข้ากันได้อยู่เสมอ
(ทางเลือก) เพิ่มการอ้างอิงไลบรารี Firebase โดยไม่ใช้ BoM
หากเลือกไม่ใช้ Firebase BoM คุณต้องระบุเวอร์ชันของไลบรารี Firebase แต่ละรายการ ในบรรทัดการอ้างอิง
โปรดทราบว่าหากคุณใช้ไลบรารี 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:23.0.0' }
- เปิดส่วน Dynamic Links ในคอนโซล Firebase
-
หากยังไม่ได้ยอมรับข้อกำหนดในการให้บริการและตั้งค่าโดเมน สำหรับ Dynamic Links โปรดดำเนินการเมื่อได้รับแจ้ง
หากคุณมีโดเมน Dynamic Links อยู่แล้ว ให้จดบันทึกไว้ คุณต้อง ระบุโดเมน Dynamic Links เมื่อสร้าง Dynamic Links โดยใช้โปรแกรม
- แนะนำ: ระบุรูปแบบ URL ที่อนุญาตให้ใช้ใน Deep Link และลิงก์สำรอง การดำเนินการนี้จะป้องกันไม่ให้บุคคลที่ไม่ได้รับอนุญาตสร้าง Dynamic Links ที่เปลี่ยนเส้นทางจากโดเมนของคุณไปยังเว็บไซต์ที่คุณไม่ได้ควบคุม ดู อนุญาตรูปแบบ URL ที่เฉพาะเจาะจง
ใช้คอนโซล Firebase
หากต้องการสร้าง Dynamic Link รายการเดียว ไม่ว่าจะเพื่อการทดสอบหรือเพื่อให้ทีมการตลาด สร้างลิงก์ที่ใช้ในโพสต์โซเชียลมีเดียได้อย่างง่ายดาย วิธีที่ง่ายที่สุด คือไปที่คอนโซล Firebase แล้วสร้างด้วยตนเองตามแบบฟอร์มทีละขั้นตอน
สร้าง Dynamic Link จากพารามิเตอร์
หากต้องการสร้าง Dynamic Link ให้สร้างออบเจ็กต์ DynamicLink
ใหม่ด้วย
Builder โดยระบุพารามิเตอร์ Dynamic Link ด้วยเมธอด Builder จากนั้นโทรหา
buildDynamicLink
หรือ buildShortDynamicLink
ตัวอย่างขั้นต่ำต่อไปนี้จะสร้าง Dynamic Link to
https://www.example.com/
ที่เปิดด้วยแอป Android ใน Android
และแอป com.example.ios
ใน iOS:
Kotlin
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
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
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
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 | |
---|---|
setLink |
ลิงก์ที่แอปจะเปิด ระบุ URL ที่แอปของคุณจัดการได้ ซึ่งโดยปกติจะเป็นเนื้อหาหรือเพย์โหลดของแอป ซึ่งจะเริ่มต้นตรรกะเฉพาะแอป (เช่น การให้เครดิตผู้ใช้ด้วยคูปองหรือการแสดงหน้าจอต้อนรับ) ลิงก์นี้ต้องเป็น URL ที่จัดรูปแบบอย่างถูกต้อง เข้ารหัส URL อย่างถูกต้อง ใช้ HTTP หรือ HTTPS และต้องไม่ใช่ Dynamic Link อื่น |
setDomainUriPrefix | คำนำหน้า URL ของ Dynamic Link ซึ่งดูได้ในคอนโซล Firebase A
Dynamic Link โดเมนมีลักษณะดังตัวอย่างต่อไปนี้
https://example.com/link https://example.page.link |
AndroidParameters | |
---|---|
setFallbackUrl | ลิงก์ที่จะเปิดเมื่อไม่ได้ติดตั้งแอป ระบุพารามิเตอร์นี้เพื่อทำอย่างอื่นนอกเหนือจากการติดตั้งแอปจาก Play Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บสำหรับอุปกรณ์เคลื่อนที่ หรือแสดงหน้าโปรโมตสำหรับแอป |
setMinimumVersion | versionCode ของเวอร์ชันขั้นต่ำของแอปที่เปิดลิงก์ได้ หากแอปที่ติดตั้งเป็นเวอร์ชันเก่า ระบบจะนำผู้ใช้ไปยัง Play Store เพื่ออัปเกรดแอป |
IosParameters | |
---|---|
setAppStoreId | รหัส App Store ของแอปที่ใช้เพื่อส่งผู้ใช้ไปยัง App Store เมื่อไม่ได้ติดตั้งแอป |
setFallbackUrl | ลิงก์ที่จะเปิดเมื่อไม่ได้ติดตั้งแอป ระบุสิ่งนี้เพื่อทำอย่างอื่นนอกเหนือจากการติดตั้งแอปจาก App Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บสำหรับอุปกรณ์เคลื่อนที่ หรือแสดงหน้าโปรโมตสำหรับแอป |
setCustomScheme | สกีม URL ที่กำหนดเองของแอป หากกำหนดให้เป็นอย่างอื่นที่ไม่ใช่รหัสชุดของแอป |
setIpadFallbackUrl | ลิงก์ที่จะเปิดใน iPad เมื่อไม่ได้ติดตั้งแอป ระบุพารามิเตอร์นี้เพื่อทำอย่างอื่นนอกเหนือจากการติดตั้งแอปจาก App Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บ หรือแสดงหน้าโปรโมตสำหรับแอป |
setIpadBundleId | รหัส Bundle ของแอป iOS ที่จะใช้ใน iPad เพื่อเปิดลิงก์ แอปต้องเชื่อมต่อกับโปรเจ็กต์จากหน้าภาพรวมของFirebaseคอนโซล |
setMinimumVersion | หมายเลขเวอร์ชันของเวอร์ชันต่ำสุดของแอปที่เปิดลิงก์ได้ ระบบจะส่งแฟล็กนี้ไปยังแอปเมื่อเปิด และแอปของคุณต้องตัดสินใจว่าจะทำอย่างไรกับแฟล็กนี้ |
NavigationInfoParameters | |
---|---|
setForcedRedirectEnabled | หากตั้งค่าเป็น "1" ให้ข้ามหน้าตัวอย่างแอปเมื่อเปิด Dynamic Link และเปลี่ยนเส้นทางไปยังแอปหรือ Store แทน หน้าตัวอย่างแอป (เปิดใช้โดยค่าเริ่มต้น) จะส่งผู้ใช้ไปยังปลายทางที่เหมาะสมที่สุดได้อย่างน่าเชื่อถือมากขึ้นเมื่อผู้ใช้เปิด Dynamic Links ในแอป อย่างไรก็ตาม หากคุณต้องการให้เปิด Dynamic Link เฉพาะในแอปที่เปิด Dynamic Links ได้อย่างน่าเชื่อถือโดยไม่ต้องใช้หน้านี้ คุณสามารถปิดใช้ได้ด้วยพารามิเตอร์นี้ พารามิเตอร์นี้จะมีผลต่อลักษณะการทำงานของ Dynamic Link ใน iOS เท่านั้น |
SocialMetaTagParameters | |
---|---|
setTitle | ชื่อที่จะใช้เมื่อแชร์ Dynamic Link ในโพสต์โซเชียล |
setDescription | คำอธิบายที่จะใช้เมื่อแชร์ Dynamic Link ในโพสต์โซเชียล |
setImageUrl | URL ของรูปภาพที่เกี่ยวข้องกับลิงก์นี้ รูปภาพควรมีขนาดอย่างน้อย 300x200 พิกเซล และมีขนาดน้อยกว่า 300 KB |
GoogleAnalyticsParameters | |
---|---|
setSource setMedium setCampaign setTerm setContent |
พารามิเตอร์การวิเคราะห์ของ Google Play ระบบจะส่งพารามิเตอร์เหล่านี้
(utm_source , utm_medium ,
utm_campaign , utm_term , utm_content )
ไปยัง Play Store และต่อท้ายเพย์โหลดของลิงก์ด้วย
|
ItunesConnectAnalyticsParameters | |
---|---|
setProviderToken setAffiliateToken setCampaignToken |
พารามิเตอร์การวิเคราะห์ iTunes Connect ระบบจะส่งพารามิเตอร์เหล่านี้ (pt ,
at , ct ) ไปยัง App Store |
ตัด Dynamic Link ที่มีความยาวมาก
หากต้องการย่อ Dynamic Link ที่ยาว ให้ระบุ URL ของ Dynamic Link โดยใช้
setLongLink
แทนการตั้งค่าพารามิเตอร์ด้วยเครื่องมือสร้างอื่นๆ
Kotlin
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 // ... } } });