Catch up on everthing we announced at this year's Firebase Summit. Learn more

অ্যান্ড্রয়েডে ডায়নামিক লিঙ্ক তৈরি করুন

আপনি Firebase ডাইনামিক লিঙ্কস বিল্ডার API দিয়ে ছোট বা দীর্ঘ ডায়নামিক লিঙ্ক তৈরি করতে পারেন। এই API একটি দীর্ঘ ডায়নামিক লিঙ্ক বা ডায়নামিক লিঙ্ক প্যারামিটার সম্বলিত একটি বস্তু গ্রহণ করে এবং নিচের উদাহরণের মত ইউআরএল প্রদান করে:

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

আপনার অ্যান্ড্রয়েড অ্যাপে ডায়নামিক লিঙ্ক তৈরি করার আগে, আপনাকে অবশ্যই ফায়ারবেস এসডিকে অন্তর্ভুক্ত করতে হবে। যদি আপনার অ্যাপটি ডায়নামিক লিঙ্ক গ্রহণের জন্য সেট আপ করা থাকে, আপনি ইতিমধ্যে এই ধাপগুলি সম্পন্ন করেছেন এবং আপনি এই বিভাগটি এড়িয়ে যেতে পারেন।

  1. আপনি ইতিমধ্যে থাকে, তাহলে আপনার অ্যান্ড্রয়েড প্রকল্পের Firebase যোগ

    যখন আপনি আপনার অ্যাপ নিবন্ধন করেন, আপনার SHA-1 স্বাক্ষর কী নির্দিষ্ট করুন। আপনি যদি অ্যাপ লিংক ব্যবহার করেন, আপনার SHA-256 কীটিও নির্দিষ্ট করুন।

  2. ব্যবহার Firebase অ্যান্ড্রয়েড Bom , আপনার মডিউল (অ্যাপ্লিকেশান-স্তর) Gradle ফাইল (সাধারণত ডাইনামিক লিংক অ্যান্ড্রয়েড লাইব্রেরির জন্য নির্ভরতা ঘোষণা app/build.gradle )।

    ডায়নামিক লিংক সঙ্গে একটি অনুকূল অভিজ্ঞতার জন্য, আমরা প্রস্তাব Google এনালিটিক্স সক্রিয় আপনার Firebase প্রকল্পে এবং আপনার অ্যাপ্লিকেশানে Google এনালিটিক্স জন্য Firebase SDK এর যোগ।

    জাভা

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.1')
    
        // Declare 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 অ্যান্ড্রয়েড Bom , আপনার অ্যাপ্লিকেশন সবসময় Firebase অ্যান্ড্রয়েড লাইব্রেরি সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করবে।

    (বিকল্প) Bom ব্যবহার না করেই Firebase গ্রন্থাগার নির্ভরতা ঘোষণা

    আপনি যদি Firebase BoM ব্যবহার না করার সিদ্ধান্ত নেন, তাহলে আপনাকে অবশ্যই প্রতিটি Firebase লাইব্রেরির সংস্করণ তার নির্ভরতা লাইনে নির্দিষ্ট করতে হবে।

    মনে রাখবেন যদি আপনি আপনার অ্যাপ্লিকেশন একাধিক Firebase লাইব্রেরি ব্যবহার করেন তখন আমরা অত্যন্ত গ্রন্থাগার সংস্করণ, যা নিশ্চিত করে যে সমস্ত সংস্করণের সামঞ্জস্যপূর্ণ পরিচালনা করতে Bom ব্যবহার সুপারিশ।

    dependencies {
        // Declare 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:21.0.0'
        implementation 'com.google.firebase:firebase-analytics:20.0.0'
    }
    

    কোটলিন+কেটিএক্স

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.1')
    
        // Declare 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-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx'
    }
    

    ব্যবহারের Firebase অ্যান্ড্রয়েড Bom , আপনার অ্যাপ্লিকেশন সবসময় Firebase অ্যান্ড্রয়েড লাইব্রেরি সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করবে।

    (বিকল্প) Bom ব্যবহার না করেই Firebase গ্রন্থাগার নির্ভরতা ঘোষণা

    আপনি যদি Firebase BoM ব্যবহার না করার সিদ্ধান্ত নেন, তাহলে আপনাকে অবশ্যই প্রতিটি Firebase লাইব্রেরির সংস্করণ তার নির্ভরতা লাইনে নির্দিষ্ট করতে হবে।

    মনে রাখবেন যদি আপনি আপনার অ্যাপ্লিকেশন একাধিক Firebase লাইব্রেরি ব্যবহার করেন তখন আমরা অত্যন্ত গ্রন্থাগার সংস্করণ, যা নিশ্চিত করে যে সমস্ত সংস্করণের সামঞ্জস্যপূর্ণ পরিচালনা করতে Bom ব্যবহার সুপারিশ।

    dependencies {
        // Declare 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-ktx:21.0.0'
        implementation 'com.google.firebase:firebase-analytics-ktx:20.0.0'
    }
    
  3. Firebase কনসোলে, ডায়নামিক লিংক অধ্যায় খুলুন।
  4. আপনি যদি ইতিমধ্যেই পরিষেবার শর্তাবলী গ্রহণ না করে থাকেন এবং আপনার ডায়নামিক লিঙ্কগুলির জন্য একটি ডোমেইন সেট করেন, তাহলে অনুরোধ করার সময় এটি করুন।

    আপনার যদি ইতিমধ্যে একটি ডায়নামিক লিংকস ডোমেইন থাকে তবে এটি নোট করুন। আপনি যখন ডাইনামিক লিঙ্ক তৈরি করবেন তখন আপনাকে একটি ডায়নামিক লিঙ্ক ডোমেইন প্রদান করতে হবে।

  5. প্রস্তাবিত: URL রীতি আপনার গভীর লিঙ্ক এবং ফলব্যাক সংযোগগুলি অনুমতিপ্রাপ্ত উল্লেখ করুন। এটি করার মাধ্যমে, আপনি অননুমোদিত দলগুলিকে ডাইনামিক লিঙ্ক তৈরি করতে বাধা দেন যা আপনার ডোমেন থেকে এমন সাইটগুলিতে পুনirectনির্দেশিত হয় যা আপনি নিয়ন্ত্রণ করেন না। দেখুন নির্দিষ্ট URL রীতি অনুমতি দিন

Firebase কনসোল ব্যবহার করুন

আপনি সহজেই একটি লিঙ্ক রয়েছে যা একটি সামাজিক মিডিয়া পোস্ট ভালো কিছু ব্যবহার করা যেতে পারে তৈরি করতে একটি একক ডায়নামিক লিঙ্ক তৈরি করতে, নয়তো উদ্দেশ্যে পরীক্ষার জন্য, বা আপনার বিপণন দলের জন্য চান, সহজ উপায় দেখার জন্য হবে Firebase কনসোল এবং একটি তৈরি ম্যানুয়ালি ধাপে ধাপে ফর্ম অনুসরণ করা।

ডাইনামিক লিঙ্ক তৈরি করতে, একটি নতুন তৈরি DynamicLink , তার নির্মাতা সঙ্গে বস্তুর নির্মাতা পদ্ধতি ডাইনামিক লিংক পরামিতি উল্লেখ। তারপর, কল buildDynamicLink বা buildShortDynamicLink

নিম্নলিখিত সংক্ষিপ্ত উদাহরণ একটি দীর্ঘ ডায়নামিক লিঙ্ক তৈরি করে https://www.example.com/ Android এবং অ্যাপ্লিকেশনে আপনার Android অ্যাপ্লিকেশান সঙ্গে খুলে গেল সেখানে com.example.ios iOS এ:

জাভা

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

কোটলিন+কেটিএক্স

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

অল্প ডায়নামিক লিঙ্ক তৈরি করতে, একটি বিল্ড DynamicLink একই ভাবে, এবং তারপর কল buildShortDynamicLink । একটি সংক্ষিপ্ত লিংক বিল্ডিং একটি নেটওয়ার্ক কল, তাই পরিবর্তে সরাসরি ফিরে লিঙ্ক, প্রয়োজন buildShortDynamicLink আয় একটি Task , যা সংক্ষিপ্ত লিংক উপলব্ধ অনুরোধ সম্পন্ন হয়ে তোলে। উদাহরণ স্বরূপ:

জাভা

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

কোটলিন+কেটিএক্স

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.ktx.component1 and
    // com.google.firebase.dynamiclinks.ktx.component2

    // Short link created
    processShortLink(shortLink, flowchartLink)
}.addOnFailureListener {
    // Error
    // ...
}

ডিফল্টরূপে, 17-অক্ষরের লিঙ্ক প্রত্যয় দিয়ে সংক্ষিপ্ত ডায়নামিক লিঙ্ক তৈরি করা হয় যার ফলে কেউ বৈধ ডায়নামিক লিঙ্ক অনুমান করতে পারে এমন সম্ভাবনা খুবই কম। তাহলে, আপনার ব্যবহার কেস জন্য, কেউ সফলভাবে একটি সংক্ষিপ্ত লিংক মনন কোন ক্ষতি, আপনি যতদিন প্রয়োজনীয় হিসাবে প্রত্যয় যে শুধুমাত্র জেনারেট করতে অনন্য হতে আপনি কি করতে পারেন যা ক্ষণস্থায়ী দ্বারা পছন্দ করা পারে, ShortDynamicLink.Suffix.SHORT করার buildShortDynamicLink পদ্ধতি :

জাভা

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

কোটলিন+কেটিএক্স

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

আপনি যে কোন সমর্থিত প্যারামিটার দিয়ে ডায়নামিক লিঙ্ক তৈরি করতে ডায়নামিক লিঙ্ক বিল্ডার এপিআই ব্যবহার করতে পারেন। দেখুন এপিআই রেফারেন্স বিস্তারিত জানার জন্য।

নিম্নলিখিত উদাহরণটি বেশ কয়েকটি সাধারণ প্যারামিটার সেট সহ একটি ডায়নামিক লিঙ্ক তৈরি করে:

জাভা

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

কোটলিন+কেটিএক্স

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!"
    }
}

আপনি নিম্নলিখিত পদ্ধতিগুলির সাহায্যে ডায়নামিক লিঙ্ক প্যারামিটার সেট করতে পারেন:

DynamicLink প্যারামিটার
setLink

আপনার অ্যাপের লিঙ্কটি খুলবে। একটি ইউআরএল নির্দিষ্ট করুন যা আপনার অ্যাপ পরিচালনা করতে পারে, সাধারণত অ্যাপের বিষয়বস্তু বা প্লেলোড, যা অ্যাপ-নির্দিষ্ট যুক্তি (যেমন ব্যবহারকারীকে কুপন দিয়ে ক্রেডিট করা বা স্বাগত পর্দা প্রদর্শন করা) শুরু করে। এই লিঙ্কটি অবশ্যই একটি ভাল ফরম্যাট করা ইউআরএল হতে হবে, সঠিকভাবে ইউআরএল-এনকোডেড হতে হবে, এইচটিটিপি বা এইচটিটিপিএস ব্যবহার করতে হবে এবং অন্য ডাইনামিক লিঙ্ক হতে পারে না।

setDomainUriPrefix আপনার ডায়নামিক লিঙ্ক ইউআরএল উপসর্গ, যা আপনি ফায়ারবেস কনসোলে খুঁজে পেতে পারেন। নিম্নলিখিত উদাহরণ মত একটি ডাইনামিক লিংক ডোমেইন দেখায়:
https://example.com/link
https://example.page.link
অ্যান্ড্রয়েড প্যারামিটার
setFallbackUrl অ্যাপটি ইনস্টল না করা হলে লিঙ্কটি খুলতে হবে। অ্যাপটি ইনস্টল না থাকলে প্লে স্টোর থেকে আপনার অ্যাপ ইনস্টল করা ছাড়া অন্য কিছু করার জন্য এটি নির্দিষ্ট করুন, যেমন বিষয়বস্তুর মোবাইল ওয়েব সংস্করণ খুলুন, অথবা আপনার অ্যাপের জন্য একটি প্রচারমূলক পৃষ্ঠা প্রদর্শন করুন।
সেট মিনিমাম ভার্সন versionCode যে লিঙ্ক খুলতে পারে আপনার অ্যাপ্লিকেশান ন্যূনতম সংস্করণের। যদি ইনস্টল করা অ্যাপটি পুরোনো সংস্করণ হয়, তাহলে অ্যাপটিকে আপগ্রেড করার জন্য ব্যবহারকারীকে প্লে স্টোরে নিয়ে যাওয়া হয়।
IosParameters
setAppStoreId আপনার অ্যাপের অ্যাপ স্টোর আইডি, ব্যবহারকারীদের অ্যাপ স্টোরে পাঠানোর জন্য ব্যবহার করা হয় যখন অ্যাপটি ইনস্টল না থাকে
setFallbackUrl অ্যাপটি ইনস্টল না হলে লিঙ্কটি খুলতে হবে। অ্যাপ ইনস্টল না থাকলে অ্যাপ স্টোর থেকে আপনার অ্যাপ ইনস্টল করা ছাড়া অন্য কিছু করার জন্য এটি নির্দিষ্ট করুন, যেমন বিষয়বস্তুর মোবাইল ওয়েব সংস্করণ খুলুন, অথবা আপনার অ্যাপের জন্য একটি প্রচারমূলক পৃষ্ঠা প্রদর্শন করুন।
setCustomScheme আপনার অ্যাপের কাস্টম ইউআরএল স্কিম, যদি আপনার অ্যাপের বান্ডেল আইডি ছাড়া অন্য কিছু হিসেবে সংজ্ঞায়িত করা হয়
setIpadFallbackUrl অ্যাপটি ইনস্টল না থাকলে আইপ্যাডে খোলা লিঙ্ক। অ্যাপ ইনস্টল না থাকলে অ্যাপ স্টোর থেকে আপনার অ্যাপ ইনস্টল করা ছাড়া অন্য কিছু করার জন্য এটি নির্দিষ্ট করুন, যেমন বিষয়বস্তুর ওয়েব সংস্করণ খুলুন, অথবা আপনার অ্যাপের জন্য একটি প্রচারমূলক পৃষ্ঠা প্রদর্শন করুন।
setIpadBundleId আইওএস অ্যাপের বান্ডেল আইডি আইপ্যাডে ব্যবহার করার জন্য লিঙ্কটি খুলুন। ফায়ারবেস কনসোলের ওভারভিউ পৃষ্ঠা থেকে অ্যাপটিকে আপনার প্রকল্পের সাথে সংযুক্ত থাকতে হবে।
সেট মিনিমাম ভার্সন সংস্করণ সংখ্যা যে লিঙ্ক খুলতে পারে আপনার অ্যাপ্লিকেশান ন্যূনতম সংস্করণের। এই পতাকাটি আপনার অ্যাপে প্রেরণ করা হয় যখন এটি খোলা হয়, এবং আপনার অ্যাপকে অবশ্যই এটি দিয়ে কী করতে হবে তা নির্ধারণ করতে হবে।
ন্যাভিগেশন ইনফো প্যারামিটার
setForcedRedirectEnabled যদি '1' এ সেট করা থাকে, ডায়নামিক লিঙ্ক খোলা হলে অ্যাপ প্রিভিউ পৃষ্ঠাটি এড়িয়ে যান এবং পরিবর্তে অ্যাপ বা স্টোরে রিডাইরেক্ট করুন। অ্যাপের প্রিভিউ পৃষ্ঠা (ডিফল্টরূপে সক্ষম) ব্যবহারকারীদের অ্যাপের মধ্যে ডায়নামিক লিঙ্ক খুললে সবচেয়ে নির্ভরযোগ্যভাবে সবচেয়ে উপযুক্ত গন্তব্যে পাঠাতে পারে; যাইহোক, যদি আপনি আশা করেন যে ডাইনামিক লিঙ্ক শুধুমাত্র সেই অ্যাপগুলিতে খোলা হবে যা এই পৃষ্ঠা ছাড়াই নির্ভরযোগ্যভাবে ডায়নামিক লিঙ্ক খুলতে পারে, আপনি এই প্যারামিটার দিয়ে এটি অক্ষম করতে পারেন। এই পরামিতি শুধুমাত্র iOS- এ ডায়নামিক লিংকের আচরণকে প্রভাবিত করবে।
SocialMetaTagParameters
সেট টাইটেল একটি সামাজিক পোস্টে ডায়নামিক লিঙ্ক শেয়ার করা হলে ব্যবহারের শিরোনাম।
সেট বর্ণনা ডাইনামিক লিংক যখন সামাজিক পোস্টে শেয়ার করা হয় তখন ব্যবহার করার বর্ণনা।
setImageUrl এই লিঙ্ক সম্পর্কিত একটি ছবির URL। ছবিটি কমপক্ষে 300x200 px এবং 300 KB এর কম হওয়া উচিত।
GoogleAnalytics পরামিতি
সেটসোর্স
সেট মিডিয়াম
সেট ক্যাম্পেইন
সেট টার্ম
সেট কনটেন্ট
গুগল প্লে অ্যানালিটিক্স প্যারামিটার। এই মাপদণ্ডগুলি ( utm_source , utm_medium , utm_campaign , utm_term , utm_content ) প্লে স্টোর সেইসাথে লিংক পে লোড সংযোজন কাছে হস্তান্তর করা হয়।
ItunesConnectAnalytics প্যারামিটার
setProviderToken
setAffiliateToken
setCampaignToken
আইটিউনস সংযোগ বিশ্লেষণ পরামিতি। এই মাপদণ্ডগুলি ( pt , at , ct ) App স্টোর বা দোকান প্রেরণ করা হয়।

একটি দীর্ঘ ডাইনামিক লিংক কমান করতে, ব্যবহার ডাইনামিক লিংক URL টি নির্দিষ্ট setLongLink পরিবর্তে অন্যান্য রচয়িতা পদ্ধতি পরামিতি সেটিং:

জাভা

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

কোটলিন+কেটিএক্স

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.ktx.component1 and
    // com.google.firebase.dynamiclinks.ktx.component2

    // Short link created
    processShortLink(shortLink, flowChartLink)
}.addOnFailureListener {
    // Error
    // ...
}