Android पर डाइनैमिक लिंक बनाना

Firebase Dynamic Links बिल्डर एपीआई की मदद से, छोटे या बड़े Dynamic Links बनाए जा सकते हैं. यह एपीआई, बड़ा Dynamic Link या Dynamic Link पैरामीटर वाला कोई ऑब्जेक्ट स्वीकार करता है. इसके बाद, यह नीचे दिए गए उदाहरणों जैसे यूआरएल दिखाता है:

https://example.com/link/WXYZ
https://example.page.link/WXYZ

अपने Android ऐप्लिकेशन में Dynamic Links बनाने के लिए, आपको Firebase SDK टूल शामिल करना होगा. अगर आपका ऐप्लिकेशन, Dynamic Links पाने के लिए सेट अप है, तो आपने ये चरण पहले ही पूरे कर लिए हैं. इसलिए, इस सेक्शन को छोड़ा जा सकता है.

  1. अगर आपने पहले से ही A/B टेस्टिंग नहीं बनाई है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.

    अपने ऐप्लिकेशन को रजिस्टर करते समय, SHA-1 साइनिंग पासकोड की जानकारी दें. अगर App Links का इस्तेमाल किया जाता है, तो SHA-256 पासकोड की जानकारी भी दें.

  2. अपने मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle) में, Android के लिए Dynamic Links लाइब्रेरी की डिपेंडेंसी जोड़ें. हमारा सुझाव है कि लाइब्रेरी के वर्शन को कंट्रोल करने के लिए, Firebase Android BoM का इस्तेमाल करें.

    Dynamic Links का बेहतर अनुभव पाने के लिए, हमारा सुझाव है कि अपने Firebase प्रोजेक्ट में Google Analytics चालू करें और अपने ऐप्लिकेशन में, Firebase के लिए Google Analytics SDK टूल जोड़ें.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:34.12.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 लाइब्रेरी के ऐसे वर्शन का इस्तेमाल करेगा जो उसके साथ काम करते हैं.

    (दूसरा तरीका)  BoM का इस्तेमाल किए बिना 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.2.0'
    }
  3. Firebase कंसोल में, Dynamic Links सेक्शन खोलें.
  4. अगर आपने सेवा की शर्तें स्वीकार नहीं की हैं और अपने Dynamic Links के लिए कोई डोमेन सेट नहीं किया है , तो ऐसा करने के लिए कहे जाने पर, यह काम करें.

    अगर आपके पास पहले से ही कोई Dynamic Links डोमेन है, तो उसे नोट कर लें. प्रोग्राम के ज़रिए Dynamic Links बनाते समय, आपको Dynamic Links डोमेन की जानकारी देनी होगी.

  5. सुझाव: डीप लिंक और फ़ॉलबैक लिंक में, अनुमति वाले यूआरएल पैटर्न की जानकारी दें. ऐसा करने से, अनधिकृत पक्ष ऐसे Dynamic Links नहीं बना पाएंगे जो आपके डोमेन से, उन साइटों पर रीडायरेक्ट होते हैं जिन्हें आप कंट्रोल नहीं करते. अनुमति वाले यूआरएल पैटर्न तय करना लेख पढ़ें.

Firebase कंसोल का इस्तेमाल करना

अगर आपको सिर्फ़ एक Dynamic Link जनरेट करना है, तो इसके लिए दो विकल्प हैं. पहला, टेस्टिंग के लिए. दूसरा, मार्केटिंग टीम के लिए, ताकि वह आसानी से ऐसा लिंक बना सके जिसका इस्तेमाल सोशल मीडिया पोस्ट जैसी चीज़ों में किया जा सके. इसके लिए, सबसे आसान तरीका होगा कि Firebase कंसोल पर जाएं और चरण-दर-चरण फ़ॉर्म भरकर, मैन्युअल तरीके से एक लिंक बनाएं.

Dynamic Link बनाने के लिए, उसके बिल्डर के साथ एक नया DynamicLink ऑब्जेक्ट बनाएं. इसके लिए, बिल्डर के तरीकों से Dynamic Link के पैरामीटर तय करें. इसके बाद, buildDynamicLink या buildShortDynamicLink को कॉल करें.

यहां दिए गए सामान्य उदाहरण में, एक बड़ा Dynamic Link to https://www.example.com/ बनाया गया है. यह लिंक, Android पर आपके Android ऐप्लिकेशन और iOS पर com.example.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 Links बनाए जा सकते हैं. ज़्यादा जानकारी के लिए, एपीआई के बारे में जानकारी देखें.

यहां दिए गए उदाहरण में, कई सामान्य पैरामीटर सेट करके एक 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 पैरामीटर सेट कर सकते हैं:

डाइनैमिक लिंक के पैरामीटर
setLink

वह लिंक जिसे आपका ऐप्लिकेशन खोलेगा. ऐसा यूआरएल तय करें जिसे आपका ऐप्लिकेशन हैंडल कर सके. आम तौर पर, यह ऐप्लिकेशन का कॉन्टेंट या पेलोड होता है. इससे ऐप्लिकेशन के लिए खास लॉजिक शुरू होता है. जैसे, उपयोगकर्ता को कूपन देना या स्वागत स्क्रीन दिखाना. यह लिंक, सही फ़ॉर्मैट वाला यूआरएल होना चाहिए. साथ ही, इसे सही तरीके से यूआरएल-एनकोड किया गया हो. इसमें एचटीटीपी या एचटीटीपीएस का इस्तेमाल किया गया हो. इसके अलावा, यह कोई दूसरा डाइनैमिक लिंक नहीं हो सकता.

setDomainUriPrefix आपका Dynamic Link यूआरएल प्रीफ़िक्स. यह आपको Firebase कंसोल में मिल सकता है. डोमेन, इन उदाहरणों जैसा दिखता है: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 आपके ऐप्लिकेशन की कस्टम यूआरएल स्कीम. अगर इसे आपके ऐप्लिकेशन के बंडल आईडी के अलावा किसी और चीज़ के लिए तय किया गया है, तो
setIpadFallbackUrl वह लिंक जिसे ऐप्लिकेशन इंस्टॉल न होने पर iPad पर खोला जाएगा. अगर ऐप्लिकेशन इंस्टॉल न होने पर, App Store से आपका ऐप्लिकेशन इंस्टॉल करने के अलावा कोई और कार्रवाई करनी है, तो यह तय करें. जैसे, कॉन्टेंट का वेब वर्शन खोलना या आपके ऐप्लिकेशन के लिए प्रमोशन वाला पेज दिखाना.
setIpadBundleId iOS ऐप्लिकेशन का बंडल आईडी. इसका इस्तेमाल, लिंक खोलने के लिए iPad पर किया जाता है. ऐप्लिकेशन को Firebase कंसोल के खास जानकारी वाले पेज से आपके प्रोजेक्ट से कनेक्ट किया जाना चाहिए.
setMinimumVersion आपके ऐप्लिकेशन के उस वर्शन का वर्शन नंबर जो लिंक खोल सकता है. यह फ़्लैग, आपका ऐप्लिकेशन खुलने पर उसे पास किया जाता है. इसके बाद, आपका ऐप्लिकेशन यह तय करता है कि इसके साथ क्या करना है.
NavigationInfoParameters
setForcedRedirectEnabled अगर इसे '1' पर सेट किया जाता है, तो Dynamic Link खुलने पर, ऐप्लिकेशन की झलक दिखाने वाला पेज छोड़ दिया जाता है. इसके बजाय, ऐप्लिकेशन या स्टोर पर रीडायरेक्ट किया जाता है. ऐप्लिकेशन की झलक दिखाने वाला पेज (डिफ़ॉल्ट रूप से चालू), लोगों को ज़्यादा भरोसेमंद तरीके से, सबसे सही डेस्टिनेशन पर भेज सकता है. हालांकि, अगर आपको लगता है कि Dynamic Link सिर्फ़ उन ऐप्लिकेशन में खुलेगा जो इस पेज के बिना भी Dynamic Links को भरोसेमंद तरीके से खोल सकते हैं, तो इस पैरामीटर की मदद से इसे बंद किया जा सकता है.Dynamic Links यह पैरामीटर, iOS पर Dynamic Link के व्यवहार पर ही असर डालेगा.
SocialMetaTagParameters
setTitle वह शीर्षक जिसका इस्तेमाल, सोशल पोस्ट में Dynamic Link शेयर करते समय किया जाएगा.
setDescription वह जानकारी जिसका इस्तेमाल, सोशल पोस्ट में Dynamic Link शेयर करते समय किया जाएगा.
setImageUrl इस लिंक से जुड़ी किसी इमेज का यूआरएल. इमेज का साइज़ कम से कम 300x200 पिक्सल होना चाहिए. साथ ही, यह 300 केबी से कम होनी चाहिए.
GoogleAnalyticsParameters
setSource
setMedium
setCampaign
setTerm
setContent
Google Play के Analytics पैरामीटर. ये पैरामीटर (utm_source, utm_medium, utm_campaign, utm_term, utm_content) Play Store को पास किए जाते हैं. साथ ही, इन्हें लिंक पेलोड में भी जोड़ा जाता है.
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
iTunes Connect के Analytics पैरामीटर. ये पैरामीटर (pt, at, ct) App Store को पास किए जाते हैं.

बड़े Dynamic Link को छोटा करने के लिए, अन्य बिल्डर तरीकों से पैरामीटर सेट करने के बजाय, 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
                    // ...
                }
            }
        });