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

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

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

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

  1. যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার অ্যান্ড্রয়েড প্রজেক্টে 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:34.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 লাইব্রেরি সংস্করণ তার নির্ভরতা লাইনে নির্দিষ্ট করতে হবে।

    মনে রাখবেন যে আপনি যদি আপনার অ্যাপে একাধিক 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:23.0.0'
    }
  3. Firebase কনসোলে, Dynamic Links বিভাগটি খুলুন।
  4. যদি আপনি ইতিমধ্যেই পরিষেবার শর্তাবলী গ্রহণ না করে থাকেন এবং আপনার Dynamic Links এর জন্য একটি ডোমেন সেট না করে থাকেন, তাহলে অনুরোধ করা হলে তা করুন।

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

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

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

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

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

নিচের ন্যূনতম উদাহরণটি https://www.example.com/ এ একটি দীর্ঘ Dynamic Link তৈরি করে যা আপনার অ্যান্ড্রয়েড অ্যাপ এবং iOS এ com.example.ios অ্যাপ দিয়ে খোলে:

Kotlin

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

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 অনুমান করতে পারবে না। যদি, আপনার ব্যবহারের ক্ষেত্রে, কেউ সফলভাবে একটি ছোট লিঙ্ক অনুমান করতে পারে তাতে কোনও ক্ষতি না হয়, তাহলে আপনি এমন প্রত্যয় তৈরি করতে পছন্দ করতে পারেন যা অনন্য হওয়ার জন্য যতক্ষণ প্রয়োজন ততক্ষণ পর্যন্ত দীর্ঘ, যা আপনি buildShortDynamicLink পদ্ধতিতে ShortDynamicLink.Suffix.SHORT পাস করে করতে পারেন:

Kotlin

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

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 প্যারামিটার সেট করতে পারেন:

ডাইনামিকলিঙ্ক প্যারামিটার
সেটলিঙ্ক

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

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

একটি দীর্ঘ Dynamic Link ছোট করতে, অন্যান্য বিল্ডার পদ্ধতির সাথে প্যারামিটার সেট করার পরিবর্তে setLongLink ব্যবহার করে Dynamic Link এর URL নির্দিষ্ট করুন:

Kotlin

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