คุณสร้าง 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 หากคุณใช้ 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:33.5.1")) // 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 แต่ละเวอร์ชันในบรรทัดทรัพยากร 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.2' }
- ในคอนโซล 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 จากพารามิเตอร์
หากต้องการสร้าง Dynamic Link ให้สร้างออบเจ็กต์ DynamicLink
ใหม่ด้วย Builder ซึ่งระบุพารามิเตอร์ 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 | |
---|---|
setLink |
ลิงก์ที่แอปของคุณจะเปิดขึ้น ระบุ URL ที่แอปของคุณจัดการได้ ซึ่งโดยปกติจะเป็นเนื้อหาหรือเพย์โหลดของแอป ซึ่งจะเริ่มต้นตรรกะเฉพาะแอป (เช่น การให้เครดิตผู้ใช้ด้วยคูปองหรือแสดงหน้าจอต้อนรับ) ลิงก์นี้ต้องเป็น URL ที่มีรูปแบบเหมาะสม มีการเข้ารหัส URL อย่างถูกต้อง ใช้ HTTP หรือ HTTPS และไม่ใช่ลิงก์แบบไดนามิกอื่น |
setDomainUriPrefix | คำนำหน้า URL ของ Dynamic Link ซึ่งดูได้ในคอนโซล Firebase โดเมน Dynamic Link มีลักษณะดังตัวอย่างต่อไปนี้
https://example.com/link https://example.page.link |
AndroidParameters | |
---|---|
setFallbackUrl | ลิงก์ที่จะเปิดเมื่อไม่ได้ติดตั้งแอป ระบุค่านี้เพื่อดำเนินการอย่างอื่นนอกเหนือจากการติดตั้งแอปจาก Play Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บบนอุปกรณ์เคลื่อนที่ หรือแสดงหน้าโปรโมตสําหรับแอป |
ตั้งค่าเวอร์ชันขั้นต่ำ | versionCode ของแอปเวอร์ชันขั้นต่ำที่สามารถเปิดลิงก์ได้ หากแอปที่ติดตั้งเป็นเวอร์ชันเก่า ระบบจะนำผู้ใช้ไปที่ Play Store เพื่ออัปเกรดแอป |
พารามิเตอร์ iOS | |
---|---|
ตั้งรหัส App Store | รหัส App Store ของแอปซึ่งใช้เพื่อส่งผู้ใช้ไปยัง App Store เมื่อไม่ได้ติดตั้งแอป |
setFallbackUrl | ลิงก์ที่จะเปิดเมื่อไม่ได้ติดตั้งแอป ระบุการดำเนินการนี้เพื่อดำเนินการอื่นที่ไม่ใช่การติดตั้งแอปจาก App Store เมื่อไม่มีการติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บบนอุปกรณ์เคลื่อนที่ หรือแสดงหน้าโปรโมตสำหรับแอป |
setCustomScheme | สกีม URL ที่กำหนดเองของแอป หากกำหนดไว้เป็นค่าอื่นที่ไม่ใช่รหัสกลุ่มของแอป |
setIpadFallbackUrl | ลิงก์ที่จะเปิดใน iPad เมื่อไม่ได้ติดตั้งแอป ระบุสิ่งนี้เพื่อดำเนินการอื่นนอกเหนือจากการติดตั้งแอปจาก App Store เมื่อไม่มีการติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บ หรือแสดงหน้าโปรโมชันสำหรับแอป |
setIpadBundleId | รหัสกลุ่มของแอป iOS ที่จะใช้ใน iPad เพื่อเปิดลิงก์ แอปต้องเชื่อมต่อกับโปรเจ็กต์จากหน้าภาพรวมของคอนโซล Firebase |
ตั้งค่าเวอร์ชันขั้นต่ำ | หมายเลขเวอร์ชันของแอปเวอร์ชันขั้นต่ำที่สามารถเปิดลิงก์ได้ ระบบจะส่งแฟล็กนี้ไปยังแอปของคุณเมื่อมีการเปิดแอป และแอปจะต้องตัดสินใจว่าจะทำอย่างไรกับการแจ้งเตือนดังกล่าว |
NavigationInfoParameters | |
---|---|
setForcedRedirectEnabled | หากตั้งค่าเป็น "1" ให้ข้ามหน้าตัวอย่างแอปเมื่อเปิด Dynamic Link และเปลี่ยนเส้นทางไปยังแอปหรือ Store แทน หน้าตัวอย่างแอป (เปิดใช้โดยค่าเริ่มต้น) จะส่งผู้ใช้ไปยังปลายทางที่เหมาะสมที่สุดได้อย่างน่าเชื่อถือมากขึ้นเมื่อเปิด Dynamic Links ในแอป อย่างไรก็ตาม หากคุณคาดว่า Dynamic Link จะเปิดเฉพาะในแอปที่สามารถเปิด Dynamic Links ได้อย่างน่าเชื่อถือโดยไม่ต้องใช้หน้านี้ คุณก็ปิดใช้ได้ด้วยพารามิเตอร์นี้ พารามิเตอร์นี้จะส่งผลต่อลักษณะการทํางานของ Dynamic Link ใน iOS เท่านั้น |
พารามิเตอร์เมตาแท็กโซเชียล | |
---|---|
ตั้งชื่อ | ชื่อที่จะใช้เมื่อมีการแชร์ Dynamic Link ในโพสต์บนโซเชียลเน็ตเวิร์ก |
setDescription | คำอธิบายที่จะใช้เมื่อมีการแชร์ Dynamic Link ในโพสต์บนโซเชียลเน็ตเวิร์ก |
setImageUrl | URL ของรูปภาพที่เกี่ยวข้องกับลิงก์นี้ รูปภาพควรมีขนาดอย่างน้อย 300x200 พิกเซล และเล็กกว่า 300 KB |
พารามิเตอร์ Google Analytics | |
---|---|
setSource setMedium setCampaign setTerm setContent |
พารามิเตอร์การวิเคราะห์ของ 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 // ... } } });