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

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

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

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

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

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

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

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

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:33.1.2"))
    
        // 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.0.2'
    }
    
    क्या आपको Kotlin से जुड़े लाइब्रेरी मॉड्यूल की तलाश है? अक्टूबर 2023 (Firebase BoM 32.5.0) से, Kotlin और Java डेवलपर, दोनों मुख्य लाइब्रेरी मॉड्यूल पर निर्भर कर सकते हैं. ज़्यादा जानकारी के लिए, इस इनिशिएटिव के बारे में अक्सर पूछे जाने वाले सवाल देखें.
  3. Firebase कंसोल में, डाइनैमिक लिंक सेक्शन खोलें.
  4. अगर आपने पहले से सेवा की शर्तें स्वीकार नहीं की हैं और अपने डाइनैमिक लिंक के लिए कोई डोमेन सेट किया है, तो निर्देश मिलने पर यह काम करें.

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

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

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

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

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

यहां दिए गए छोटे से उदाहरण से, 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();

छोटा डाइनैमिक लिंक बनाने के लिए, इसी तरह 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
                    // ...
                }
            }
        });

डिफ़ॉल्ट रूप से, 17 वर्णों के लिंक के सफ़िक्स के साथ छोटे डाइनैमिक लिंक जनरेट होते हैं. इस वजह से, किसी मान्य डाइनैमिक लिंक का अनुमान लगाना मुश्किल हो जाता है. अगर आपके इस्तेमाल के उदाहरण में, छोटे लिंक का अनुमान लगाने में किसी को कोई नुकसान नहीं हुआ है, तो हो सकता है कि आप सिर्फ़ उन सफ़िक्स को जनरेट करना चाहें जो ज़रूरत के हिसाब से यूनीक हों. ऐसा करने के लिए, buildShortDynamicLink तरीके में ShortDynamicLink.Suffix.SHORT को पास करें:

Kotlin+KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) {
    // Set parameters
    // ...
}

Java

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        // ...
        .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT);
        // ...

डाइनैमिक लिंक बनाने के लिए, इस्तेमाल किए जा सकने वाले किसी भी पैरामीटर के साथ, डाइनैमिक लिंक बनाने के लिए, डाइनैमिक लिंक बिल्डर एपीआई का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, एपीआई का संदर्भ देखें.

नीचे दिया गया उदाहरण कई सामान्य पैरामीटर सेट के साथ एक डाइनैमिक लिंक बनाता है:

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()

इन तरीकों का इस्तेमाल करके, डाइनैमिक लिंक पैरामीटर को सेट किया जा सकता है:

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

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

सेटडोमेनयूरीप्रीफ़िक्स आपका डाइनैमिक लिंक यूआरएल प्रीफ़िक्स, जो आपको Firebase कंसोल में मिलेगा. कोई डाइनैमिक लिंक डोमेन, इन उदाहरणों की तरह दिखता है:
https://example.com/link
https://example.page.link
Android के पैरामीटर
setFallbackUrl ऐप्लिकेशन इंस्टॉल न होने पर खुलने वाला लिंक. इसके बारे में बताएं कि यह ऐप्लिकेशन इंस्टॉल न होने पर, Play Store से आपका ऐप्लिकेशन इंस्टॉल करने के अलावा कुछ और करेगा. जैसे, कॉन्टेंट का मोबाइल वेब वर्शन खोलना या अपने ऐप्लिकेशन का प्रमोशन करने वाला पेज दिखाना.
सेट कम से कम वर्शन आपके ऐप्लिकेशन के कम से कम वर्शन का versionCode, जो लिंक को खोल सकता हो. अगर इंस्टॉल किया गया ऐप्लिकेशन पुराना वर्शन है, तो उपयोगकर्ता को ऐप्लिकेशन अपग्रेड करने के लिए Play Store पर ले जाया जाता है.
Ios पैरामीटर
setAppStoreId आपके ऐप्लिकेशन का ऐप स्टोर आईडी, जिसका इस्तेमाल ऐप्लिकेशन के इंस्टॉल न होने पर, उपयोगकर्ताओं को App Store पर भेजने के लिए किया जाता है
setFallbackUrl ऐप्लिकेशन इंस्टॉल न होने पर खुलने वाला लिंक. इसके बारे में बताएं कि यह ऐप्लिकेशन इंस्टॉल न होने पर, App Store से आपका ऐप्लिकेशन इंस्टॉल करने के अलावा, कुछ और करने के लिए भी निर्देश देगा. जैसे, कॉन्टेंट का मोबाइल वेब वर्शन खोलना या अपने ऐप्लिकेशन का प्रमोशन पेज दिखाना.
सेट कस्टम स्कीम आपके ऐप्लिकेशन के बंडल आईडी की जगह, आपके ऐप्लिकेशन की कस्टम यूआरएल स्कीम
setIpadFallbackUrl iPad पर, ऐप्लिकेशन इंस्टॉल न होने पर खोलने के लिए लिंक. इसके बारे में बताएं कि यह ऐप्लिकेशन इंस्टॉल न होने पर, App Store से आपका ऐप्लिकेशन इंस्टॉल करने के अलावा, कुछ और करने के लिए भी निर्देश देगा. जैसे, कॉन्टेंट का वेब वर्शन खोलना या अपने ऐप्लिकेशन का प्रमोशन करने वाला पेज दिखाना.
setIpadBundleId iPad पर इस्तेमाल करने के लिए, iOS ऐप्लिकेशन का बंडल आईडी. ऐप्लिकेशन, Firebase कंसोल के खास जानकारी देने वाले पेज से आपके प्रोजेक्ट से कनेक्ट होना चाहिए.
सेट कम से कम वर्शन आपके ऐप्लिकेशन के उस वर्शन का वर्शन नंबर जो लिंक को खोल सकता है. आपके ऐप्लिकेशन को खोले जाने पर, यह फ़्लैग आपके पास भेजा जाता है. इसके बाद, आपके ऐप्लिकेशन को यह तय करना होता है कि उसका क्या करना है.
नेविगेशनजानकारी पैरामीटर
setForcedredirectEnabled अगर यह नीति '1' पर सेट है, तो डाइनैमिक लिंक के खुलने पर ऐप्लिकेशन की झलक दिखाने वाले पेज को छोड़कर आगे बढ़ें. इसके बजाय, उपयोगकर्ताओं को ऐप्लिकेशन या स्टोर पर रीडायरेक्ट करें. ऐप्लिकेशन में डाइनैमिक लिंक खोलने पर, ऐप्लिकेशन की झलक दिखाने वाला पेज (डिफ़ॉल्ट रूप से चालू), उपयोगकर्ताओं को सबसे सही डेस्टिनेशन पर भेज सकता है. हालांकि, अगर आपको डाइनैमिक लिंक को सिर्फ़ ऐसे ऐप्लिकेशन में खोलना है जो इस पेज के बिना ही डाइनैमिक लिंक खोल सकते हैं, तो इस पैरामीटर का इस्तेमाल करके उसे बंद किया जा सकता है. यह पैरामीटर सिर्फ़ iOS पर डाइनैमिक लिंक के काम करने के तरीके पर असर डालेगा.
SocialMetaTagपैरामीटर
सेट टाइटल सोशल मीडिया पर पोस्ट में डाइनैमिक लिंक शेयर करने के दौरान इस्तेमाल किया जाने वाला टाइटल.
जानकारी सेट करें सोशल मीडिया पर पोस्ट में डाइनैमिक लिंक शेयर करने के दौरान इस्तेमाल किया जाने वाला ब्यौरा.
सेट चित्र Url इस लिंक से जुड़ी इमेज का यूआरएल. इमेज का साइज़ कम से कम 300x200 पिक्सल और उसका साइज़ 300 केबी से कम होना चाहिए.
GoogleAnalyticsपैरामीटर
setSource
setMedium
setCampaign
setTerm
setContent
Google Play के आंकड़ों के पैरामीटर. ये पैरामीटर (utm_source, utm_medium, utm_campaign, utm_term, utm_content) Play Store पर पास किए जाते हैं और लिंक पेलोड में जोड़ दिए जाते हैं.
ItunesConnectAnalytics पैरामीटर
setProviderToken
setAffiliateToken
setCampaignToken
iTunes Connect के आंकड़ों के पैरामीटर. ये पैरामीटर (pt, at, ct) App Store को पास किए गए हैं.

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