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

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

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

    আপনার যদি ইতিমধ্যেই একটি Dynamic Links ডোমেন থাকে তবে এটি নোট করুন। আপনি যখন প্রোগ্রাম্যাটিকভাবে Dynamic Links তৈরি করেন তখন আপনাকে একটি Dynamic Links ডোমেন প্রদান করতে হবে।

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

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

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

একটি Dynamic Link তৈরি করতে, বিল্ডার পদ্ধতির সাথে Dynamic Link প্যারামিটারগুলি নির্দিষ্ট করে তার নির্মাতার সাথে একটি নতুন DynamicLink অবজেক্ট তৈরি করুন। তারপর, buildDynamicLink বা buildShortDynamicLink কল করুন।

নিম্নলিখিত ন্যূনতম উদাহরণটি https://www.example.com/ এর একটি দীর্ঘ Dynamic Link তৈরি করে যা 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 ফেরত দেয়, যা অনুরোধটি সম্পূর্ণ হলে সংক্ষিপ্ত লিঙ্কটি উপলব্ধ করে। যেমন:

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 Links তৈরি করতে Dynamic Link বিল্ডার API ব্যবহার করতে পারেন। বিস্তারিত জানার জন্য API রেফারেন্স দেখুন।

নিম্নলিখিত উদাহরণটি বেশ কয়েকটি সাধারণ প্যারামিটার সেট সহ একটি 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 পরামিতি
সেট লিঙ্ক

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

setDomainUriPrefix আপনার Dynamic Link URL প্রিফিক্স, যা আপনি Firebase কনসোলে খুঁজে পেতে পারেন। একটি Dynamic Link ডোমেন নিম্নলিখিত উদাহরণগুলির মত দেখায়:
https://example.com/link
https://example.page.link
অ্যান্ড্রয়েড প্যারামিটার
setFallbackUrl অ্যাপটি ইনস্টল না থাকলে খোলার লিঙ্ক। অ্যাপটি ইনস্টল না থাকলে প্লে স্টোর থেকে আপনার অ্যাপ ইনস্টল করা ছাড়া অন্য কিছু করার জন্য এটি নির্দিষ্ট করুন, যেমন বিষয়বস্তুর মোবাইল ওয়েব সংস্করণ খুলুন বা আপনার অ্যাপের জন্য একটি প্রচারমূলক পৃষ্ঠা প্রদর্শন করুন।
মিনিমাম সংস্করণ সেট করুন আপনার অ্যাপের সর্বনিম্ন সংস্করণের versionCode যা লিঙ্কটি খুলতে পারে। ইনস্টল করা অ্যাপটি পুরনো সংস্করণ হলে, অ্যাপটি আপগ্রেড করতে ব্যবহারকারীকে প্লে স্টোরে নিয়ে যাওয়া হয়।
আইওএস প্যারামিটার
setAppStoreId আপনার অ্যাপের অ্যাপ স্টোর আইডি, অ্যাপটি ইনস্টল না থাকলে ব্যবহারকারীদের অ্যাপ স্টোরে পাঠাতে ব্যবহৃত হয়
setFallbackUrl অ্যাপটি ইনস্টল না থাকলে খোলার লিঙ্ক। অ্যাপটি ইনস্টল না থাকলে অ্যাপ স্টোর থেকে আপনার অ্যাপ ইনস্টল করা ছাড়া অন্য কিছু করার জন্য এটি নির্দিষ্ট করুন, যেমন বিষয়বস্তুর মোবাইল ওয়েব সংস্করণ খুলুন বা আপনার অ্যাপের জন্য একটি প্রচারমূলক পৃষ্ঠা প্রদর্শন করুন।
সেট কাস্টম স্কিম আপনার অ্যাপের কাস্টম URL স্কিম, যদি আপনার অ্যাপের বান্ডেল আইডি ছাড়া অন্য কিছু বলে সংজ্ঞায়িত করা হয়
setIpadFallbackUrl অ্যাপ ইনস্টল না থাকলে iPads-এ খোলার লিঙ্ক। অ্যাপটি ইনস্টল না থাকলে অ্যাপ স্টোর থেকে আপনার অ্যাপ ইনস্টল করা ছাড়া অন্য কিছু করার জন্য এটি নির্দিষ্ট করুন, যেমন বিষয়বস্তুর ওয়েব সংস্করণ খুলুন বা আপনার অ্যাপের জন্য একটি প্রচারমূলক পৃষ্ঠা প্রদর্শন করুন।
setIpadBundleId লিঙ্কটি খুলতে iPads-এ ব্যবহার করার জন্য iOS অ্যাপের বান্ডেল আইডি। অ্যাপটিকে অবশ্যই Firebase কনসোলের ওভারভিউ পৃষ্ঠা থেকে আপনার প্রকল্পের সাথে সংযুক্ত থাকতে হবে।
মিনিমাম সংস্করণ সেট করুন আপনার অ্যাপের ন্যূনতম সংস্করণের সংস্করণ নম্বর যা লিঙ্কটি খুলতে পারে। এই ফ্ল্যাগটি আপনার অ্যাপে পাস করা হয় যখন এটি খোলা হয়, এবং আপনার অ্যাপটিকে এটির সাথে কী করতে হবে তা নির্ধারণ করতে হবে।
নেভিগেশন ইনফো প্যারামিটার
setForcedRedirectEnabled '1' তে সেট করা থাকলে, Dynamic Link খোলার সময় অ্যাপের পূর্বরূপ পৃষ্ঠাটি এড়িয়ে যান এবং পরিবর্তে অ্যাপ বা স্টোরে পুনঃনির্দেশ করুন। অ্যাপ প্রিভিউ পৃষ্ঠা (ডিফল্টরূপে সক্রিয়) ব্যবহারকারীরা যখন অ্যাপে Dynamic Links খোলে তখন তাদের সবচেয়ে উপযুক্ত গন্তব্যে আরও নির্ভরযোগ্যভাবে পাঠাতে পারে; যাইহোক, আপনি যদি এই পৃষ্ঠা ছাড়া Dynamic Links নির্ভরযোগ্যভাবে খুলতে পারে এমন অ্যাপগুলিতে একটি Dynamic Link খোলার আশা করেন তবে আপনি এই প্যারামিটার দিয়ে এটি অক্ষম করতে পারেন। এই প্যারামিটারটি শুধুমাত্র iOS-এ Dynamic Link আচরণকে প্রভাবিত করবে।
SocialMetaTag প্যারামিটার
সেটটাইটেল একটি সামাজিক পোস্টে Dynamic Link শেয়ার করা হলে ব্যবহার করার জন্য শিরোনাম।
সেট বর্ণনা Dynamic Link একটি সামাজিক পোস্টে শেয়ার করা হলে ব্যবহার করার বিবরণ।
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 ) অ্যাপ স্টোরে পাঠানো হয়৷

একটি দীর্ঘ Dynamic Link সংক্ষিপ্ত করতে, অন্যান্য নির্মাতা পদ্ধতির সাথে প্যারামিটার সেট করার পরিবর্তে setLongLink ব্যবহার করে Dynamic Link 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
                    // ...
                }
            }
        });