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. अगर आपने पहले से ऐसा नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.

    अपना ऐप्लिकेशन रजिस्टर करते समय, SHA-1 साइनिंग पासकोड डालें. अगर आपने ऐप्लिकेशन लिंक का इस्तेमाल किया है, तो अपनी 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 को चालू करें. साथ ही, अपने ऐप्लिकेशन में Google Analytics के लिए Firebase SDK टूल जोड़ें.

    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 लाइब्रेरी के साथ काम करने वाले वर्शन का इस्तेमाल करेगा.

    (वैकल्पिक) BoM का इस्तेमाल किए बिना, Firebase लाइब्रेरी डिपेंडेंसी जोड़ें

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

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

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

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

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

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

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

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

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

सेटडोमेनयूरीप्रीफ़िक्स आपका 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 पर भेजने के लिए किया जाता है
setFallbackUrl ऐप्लिकेशन इंस्टॉल न होने पर खुलने वाला लिंक. ऐप्लिकेशन इंस्टॉल न होने पर, App Store से ऐप्लिकेशन इंस्टॉल करने के अलावा, कुछ और करने के लिए यह जानकारी दें. जैसे, कॉन्टेंट का मोबाइल वेब वर्शन खोलना या अपने ऐप्लिकेशन का प्रमोशनल पेज दिखाना.
सेट कस्टम स्कीम आपके ऐप्लिकेशन का कस्टम यूआरएल स्कीम, अगर इसे आपके ऐप्लिकेशन के बंडल आईडी के अलावा किसी और के तौर पर तय किया गया है
setIpadFallbackUrl जब ऐप्लिकेशन इंस्टॉल न हो, तब iPad पर खोलने के लिए लिंक. ऐप्लिकेशन इंस्टॉल न होने पर, App Store से ऐप्लिकेशन इंस्टॉल करने के अलावा, कुछ और करने के लिए यह जानकारी दें. जैसे, कॉन्टेंट का वेब वर्शन खोलना या अपने ऐप्लिकेशन का प्रमोशनल पेज दिखाना.
setIpadBundleId iOS ऐप्लिकेशन का बंडल आईडी, जिसका इस्तेमाल करके iPad पर लिंक खोला जा सकता है. ऐप्लिकेशन को Firebase कंसोल के होम पेज से आपके प्रोजेक्ट से कनेक्ट करना होगा.
setMinimumVersion आपके ऐप्लिकेशन के उस वर्शन का वर्शन नंबर जो लिंक को खोल सकता है. यह फ़्लैग, ऐप्लिकेशन के खुलने पर उसे भेजा जाता है. इसके बाद, यह ऐप्लिकेशन तय करता है कि इस फ़्लैग का इस्तेमाल कैसे करना है.
NavigationInfoParameters
setForcedredirectEnabled अगर यह नीति '1' पर सेट है, तो Dynamic Link के खुलने पर ऐप्लिकेशन की झलक दिखाने वाले पेज को छोड़कर आगे बढ़ें. इसके बजाय, ऐप्लिकेशन या स्टोर पर रीडायरेक्ट करें. ऐप्लिकेशन की झलक दिखाने वाला पेज (डिफ़ॉल्ट रूप से चालू होता है), उपयोगकर्ताओं को ऐप्लिकेशन में Dynamic Links खोलने पर, सबसे सही डेस्टिनेशन पर भेज सकता है. हालांकि, अगर आपको Dynamic Link को सिर्फ़ उन ऐप्लिकेशन में खोलना है जो इस पेज के बिना भी Dynamic Links को भरोसेमंद तरीके से खोल सकते हैं, तो इस पैरामीटर की मदद से इसे बंद किया जा सकता है. इस पैरामीटर का असर, सिर्फ़ iOS पर Dynamic Link के व्यवहार पर पड़ेगा.
SocialMetaTagParameters
सेट टाइटल सोशल मीडिया पोस्ट में Dynamic Link शेयर करते समय इस्तेमाल किया जाने वाला टाइटल.
जानकारी सेट करें सोशल मीडिया पर पोस्ट में Dynamic Link शेयर करने के दौरान इस्तेमाल किया जाने वाला ब्यौरा.
setImageUrl इस लिंक से जुड़ी इमेज का यूआरएल. इमेज का साइज़ कम से कम 300x200 पिक्सल और 300 केबी से कम होना चाहिए.
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 को छोटा करने के लिए, बिल्डर के अन्य तरीकों से पैरामीटर सेट करने के बजाय, setLongLink का इस्तेमाल करके Dynamic Link का यूआरएल तय करें:

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
                    // ...
                }
            }
        });