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

আপনি 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. যদি আগে থেকে না করে থাকেন, তাহলে আপনার অ্যান্ড্রয়েড প্রজেক্টে ফায়ারবেস যোগ করুন

    আপনার অ্যাপ নিবন্ধন করার সময়, আপনার SHA-1 সাইনিং কী উল্লেখ করুন। আপনি যদি অ্যাপ লিঙ্ক ব্যবহার করেন, তাহলে আপনার SHA-256 কী-ও উল্লেখ করুন।

  2. আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত <project>/<app-module>/build.gradle.kts অথবা <project>/<app-module>/build.gradle ), অ্যান্ড্রয়েডের জন্য Dynamic Links লাইব্রেরির ডিপেন্ডেন্সি যোগ করুন। লাইব্রেরি ভার্সনিং নিয়ন্ত্রণের জন্য আমরা Firebase Android BoM ব্যবহার করার পরামর্শ দিই।

    Dynamic Links এর সর্বোত্তম অভিজ্ঞতার জন্য, আমরা আপনার ফায়ারবেস প্রজেক্টে Google Analytics সক্রিয় করার এবং আপনার অ্যাপে গুগল অ্যানালিটিক্স-এর জন্য ফায়ারবেস এসডিকে যোগ করার পরামর্শ দিই।

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:34.11.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 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.2.0'
    }
  3. Firebase কনসোলে, Dynamic Links সেকশনটি খুলুন।
  4. আপনি যদি এখনও পরিষেবার শর্তাবলী গ্রহণ না করে থাকেন এবং আপনার Dynamic Links জন্য একটি ডোমেইন সেট না করে থাকেন, তবে নির্দেশিত হলে তা করুন।

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

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

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

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

একটি Dynamic Link তৈরি করতে, এর বিল্ডার ব্যবহার করে একটি নতুন DynamicLink অবজেক্ট তৈরি করুন এবং বিল্ডার মেথডগুলোর সাহায্যে Dynamic Link প্যারামিটারগুলো নির্দিষ্ট করুন। তারপর, 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 ১৭-ক্যারেক্টারের লিঙ্ক সাফিক্স সহ তৈরি হয়, যার ফলে কারও পক্ষে একটি বৈধ 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 Link বিল্ডার এপিআই ব্যবহার করে যেকোনো সমর্থিত প্যারামিটার দিয়ে Dynamic Links তৈরি করতে পারেন। বিস্তারিত জানতে এপিআই রেফারেন্স দেখুন।

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

setDomainUriPrefix আপনার Dynamic Link ইউআরএল প্রিফিক্স, যা আপনি Firebase কনসোলে খুঁজে পাবেন। একটি Dynamic Link ডোমেইন দেখতে নিম্নলিখিত উদাহরণগুলির মতো হয়:
https://example.com/link
https://example.page.link
অ্যান্ড্রয়েড প্যারামিটার
সেটফলব্যাকইউআরএল অ্যাপটি ইনস্টল করা না থাকলে খোলার জন্য লিঙ্ক। অ্যাপটি ইনস্টল করা না থাকলে প্লে স্টোর থেকে আপনার অ্যাপ ইনস্টল করা ছাড়া অন্য কিছু করতে এটি নির্দিষ্ট করুন, যেমন—কন্টেন্টের মোবাইল ওয়েব সংস্করণ খোলা, অথবা আপনার অ্যাপের জন্য একটি প্রচারমূলক পৃষ্ঠা প্রদর্শন করা।
ন্যূনতম সংস্করণ সেট করুন আপনার অ্যাপের সর্বনিম্ন সংস্করণের versionCode , যা লিঙ্কটি খুলতে পারে। যদি ইনস্টল করা অ্যাপটি পুরোনো সংস্করণ হয়, তবে ব্যবহারকারীকে অ্যাপটি আপগ্রেড করার জন্য প্লে স্টোরে নিয়ে যাওয়া হয়।
IosParameters
অ্যাপস্টোর আইডি সেট করুন আপনার অ্যাপের অ্যাপ স্টোর আইডি, যা অ্যাপটি ইনস্টল করা না থাকলে ব্যবহারকারীদের অ্যাপ স্টোরে পাঠাতে ব্যবহৃত হয়।
সেটফলব্যাকইউআরএল অ্যাপটি ইনস্টল করা না থাকলে খোলার জন্য লিঙ্ক। অ্যাপটি ইনস্টল করা না থাকলে, অ্যাপ স্টোর থেকে আপনার অ্যাপ ইনস্টল করা ছাড়া অন্য কিছু করতে এটি নির্দিষ্ট করুন; যেমন—কন্টেন্টের মোবাইল ওয়েব সংস্করণ খোলা, অথবা আপনার অ্যাপের জন্য একটি প্রচারমূলক পৃষ্ঠা প্রদর্শন করা।
কাস্টম স্কিম সেট করুন আপনার অ্যাপের কাস্টম ইউআরএল স্কিম, যদি তা আপনার অ্যাপের বান্ডেল আইডি ছাড়া অন্য কিছু হিসেবে সংজ্ঞায়িত করা হয়ে থাকে।
আইপ্যাড ফলব্যাক ইউআরএল সেট করুন অ্যাপটি ইনস্টল করা না থাকলে আইপ্যাডে খোলার জন্য লিঙ্ক। অ্যাপটি ইনস্টল করা না থাকলে, অ্যাপ স্টোর থেকে আপনার অ্যাপটি ইনস্টল করা ছাড়া অন্য কিছু করার জন্য এটি নির্দিষ্ট করুন; যেমন—কন্টেন্টের ওয়েব সংস্করণ খোলা, অথবা আপনার অ্যাপের জন্য একটি প্রচারমূলক পৃষ্ঠা প্রদর্শন করা।
সেটআইপ্যাডবান্ডেলআইডি আইপ্যাডে লিঙ্কটি খোলার জন্য ব্যবহৃত আইওএস অ্যাপটির বান্ডেল আইডি। অ্যাপটিকে অবশ্যই Firebase কনসোলের ওভারভিউ পৃষ্ঠা থেকে আপনার প্রোজেক্টের সাথে সংযুক্ত থাকতে হবে।
ন্যূনতম সংস্করণ সেট করুন আপনার অ্যাপের সর্বনিম্ন সংস্করণের নম্বর , যা লিঙ্কটি খুলতে পারে। লিঙ্কটি খোলার সময় এই ফ্ল্যাগটি আপনার অ্যাপে পাঠানো হয় এবং এটি নিয়ে কী করতে হবে, সেই সিদ্ধান্ত আপনার অ্যাপকেই নিতে হয়।
নেভিগেশন তথ্য প্যারামিটার
setForcedRedirectEnabled '১'-এ সেট করা হলে, Dynamic Link খোলার সময় অ্যাপ প্রিভিউ পেজটি এড়িয়ে যাওয়া হবে এবং এর পরিবর্তে অ্যাপ বা স্টোরে রিডাইরেক্ট করা হবে। অ্যাপ প্রিভিউ পেজটি (যা ডিফল্টরূপে সক্রিয় থাকে) অ্যাপে Dynamic Links খোলার সময় ব্যবহারকারীদের সবচেয়ে উপযুক্ত গন্তব্যে আরও নির্ভরযোগ্যভাবে পাঠাতে পারে; তবে, যদি আপনি চান যে একটি Dynamic Link শুধুমাত্র সেইসব অ্যাপেই খোলা হোক যেগুলো এই পেজটি ছাড়াই নির্ভরযোগ্যভাবে Dynamic Links খুলতে পারে, তাহলে আপনি এই প্যারামিটারটি ব্যবহার করে এটিকে নিষ্ক্রিয় করতে পারেন। এই প্যারামিটারটি শুধুমাত্র iOS-এ Dynamic Link আচরণকে প্রভাবিত করবে।
সোশ্যালমেটাট্যাগপ্যারামিটার
শিরোনাম সেট করুন সোশ্যাল পোস্টে Dynamic Link শেয়ার করার সময় যে শিরোনামটি ব্যবহার করা হবে।
সেট বিবরণ সোশ্যাল পোস্টে Dynamic Link শেয়ার করার সময় যে বিবরণটি ব্যবহার করা হবে।
setImageUrl এই লিঙ্কের সাথে সম্পর্কিত একটি ছবির ইউআরএল। ছবিটির আকার কমপক্ষে ৩০০x২০০ পিক্সেল এবং সাইজ ৩০০ কেবি-র কম হতে হবে।
গুগল অ্যানালিটিক্স প্যারামিটার
সেটসোর্স
সেটমিডিয়াম
সেটক্যাম্পেইন
সেটটার্ম
setContent
গুগল প্লে অ্যানালিটিক্স প্যারামিটার। এই প্যারামিটারগুলো ( 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
                    // ...
                }
            }
        });