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

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

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

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

  1. যদি আপনি ইতিমধ্যেই না করে থাকেন তাহলে আপনার Android প্রকল্পে Firebase যোগ করুন

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

  2. আপনার মডিউলে (অ্যাপ-লেভেল) গ্রেডল ফাইল (সাধারণত <project>/<app-module>/build.gradle.kts বা <project>/<app-module>/build.gradle ), ডায়নামিক লিঙ্কগুলির জন্য নির্ভরতা যোগ করুন অ্যান্ড্রয়েডের জন্য লাইব্রেরি। আমরা লাইব্রেরি সংস্করণ নিয়ন্ত্রণ করতে 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:32.8.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 লাইব্রেরি নির্ভরতা যোগ করুন

    আপনি যদি Firebase BoM ব্যবহার না করা বেছে নেন, তাহলে আপনাকে অবশ্যই প্রতিটি 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:21.2.0'
        implementation 'com.google.firebase:firebase-analytics:21.6.1'
    }
    
    একটি কোটলিন-নির্দিষ্ট লাইব্রেরি মডিউল খুঁজছেন? অক্টোবর 2023 থেকে শুরু হচ্ছে (Firebase BoM 32.5.0) , Kotlin এবং Java ডেভেলপাররা প্রধান লাইব্রেরি মডিউলের উপর নির্ভর করতে পারে (বিস্তারিত জানতে, এই উদ্যোগ সম্পর্কে প্রায়শই জিজ্ঞাসিত প্রশ্ন দেখুন)।
  3. Firebase কনসোলে, ডায়নামিক লিঙ্ক বিভাগ খুলুন।
  4. আপনি যদি ইতিমধ্যেই পরিষেবার শর্তাদি স্বীকার না করে থাকেন এবং আপনার ডায়নামিক লিঙ্কগুলির জন্য একটি ডোমেন সেট না করে থাকেন, অনুরোধ করা হলে তা করুন৷

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

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

ফায়ারবেস কনসোল ব্যবহার করুন

আপনি যদি একটি একক ডায়নামিক লিঙ্ক তৈরি করতে চান, হয় পরীক্ষার উদ্দেশ্যে বা আপনার বিপণন দলের জন্য সহজে একটি লিঙ্ক তৈরি করতে যা সোশ্যাল মিডিয়া পোস্টের মতো কিছুতে ব্যবহার করা যেতে পারে, তাহলে সবচেয়ে সহজ উপায় হল 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-অক্ষরের লিঙ্ক প্রত্যয়গুলির সাথে তৈরি করা হয় যা এটিকে অত্যন্ত অসম্ভাব্য করে তোলে যে কেউ একটি বৈধ ডায়নামিক লিঙ্ক অনুমান করতে পারে। যদি, আপনার ব্যবহারের ক্ষেত্রে, কেউ সফলভাবে একটি সংক্ষিপ্ত লিঙ্ক অনুমান করতে কোন ক্ষতি না হয়, তাহলে আপনি এমন প্রত্যয় তৈরি করতে পছন্দ করতে পারেন যেগুলি শুধুমাত্র অনন্য হওয়ার জন্য যতটা প্রয়োজন, যা আপনি 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);
        // ...

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

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

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

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

DynamicLink পরামিতি
সেট লিঙ্ক

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

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

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

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