Firebase Dynamic Links হল Google-এর একটি পরিষেবা যা স্মার্ট লিংক তৈরি করে যা ব্যবহারকারীকে অ্যাপ্লিকেশনের সঠিক স্থানে নিয়ে যায়, অ্যাপ্লিকেশনটি ইনস্টল থাকুক বা না থাকুক। Firebase ডকুমেন্টেশন অনুসারে, Dynamic Links স্বয়ংক্রিয়ভাবে ব্যবহারকারীকে App Store বা Google Play-তে রিডাইরেক্ট করে যদি অ্যাপ্লিকেশনটি ইনস্টল না থাকে এবং ইনস্টলেশনের পরে ট্রানজিশন কনটেক্সট পুনরুদ্ধার করে। Firebase-এর স্মার্ট লিংক URL Scheme সমস্যার সমাধান করে, যা আনইনস্টল করা অ্যাপ্লিকেশনের সাথে কাজ করে না।
মূল পয়েন্ট
Firebase Dynamic Links হল Google-এর একটি ক্লাউড পরিষেবা যা iOS এবং Android-এ মোবাইল অ্যাপের জন্য ইউনিফাইড ইউনিভার্সাল লিংক তৈরি করে। একটি ডায়নামিক লিংকে অ্যাপের ভিতরের কন্টেন্টের একটি ডিপ লিংক থাকে কিন্তু এটি একটি সাধারণ HTTPS লিংকের মতো আচরণ করে: যদি অ্যাপটি ইনস্টল থাকে, তাহলে এটি সরাসরি খোলে; যদি না থাকে, তাহলে এটি অ্যাপ স্টোরে রিডাইরেক্ট করে।
সাধারণ URL Scheme-এর বিপরীতে, Dynamic Links ডিফার্ড ডিপ লিংক প্রযুক্তির কারণে আনইনস্টল করা অ্যাপের সাথে কাজ করতে পারে। যখন একজন ব্যবহারকারী লিংকে ক্লিক করার পরে অ্যাপটি ইনস্টল করে, Firebase ট্রানজিশন প্যারামিটার সংরক্ষণ করে এবং প্রথম লঞ্চে সেগুলি প্রেরণ করে। এটি রেফারেল প্রোগ্রাম, মার্কেটিং ক্যাম্পেইন এবং আমন্ত্রণের জন্য সুযোগ উন্মুক্ত করে।
URL Scheme-এর জন্য অ্যাপ ইনস্টল করা প্রয়োজন এবং তাদের কোনও মানক ফলব্যাক মেকানিজম নেই। Firebase Dynamic Links একটি মধ্যবর্তী Firebase ওয়েব পরিষেবার মাধ্যমে এই সমস্যার সমাধান করে যা ডিভাইসে অ্যাপ ইনস্টলেশন অবস্থা নির্ধারণ করে এবং ব্যবহারকারীকে সঠিকভাবে রুট করে। একই সাথে, একটি লিংক উভয় প্ল্যাটফর্মে একইভাবে কাজ করে।
Firebase Dynamic Link yourcode.page.link-এর মতো একটি ডোমেন ব্যবহার করে, যা Firebase Console-এ নিবন্ধিত হয়। যখন একজন ব্যবহারকারী এই ধরনের লিংকে ক্লিক করে, Firebase ডিভাইসের ধরন এবং অ্যাপ ইনস্টলেশন অবস্থা নির্ধারণ করে। iOS-এর জন্য Universal Links মেকানিজম ব্যবহার করা হয়, Android-এর জন্য Digital Asset Links-এর মাধ্যমে স্বয়ংক্রিয় যাচাই সহ App Links ব্যবহার করা হয়।
প্রক্রিয়াকরণে বেশ কয়েকটি ক্রমিক ধাপ অন্তর্ভুক্ত রয়েছে: লিংকে ক্লিক করলে, ব্রাউজার Firebase সার্ভারে একটি GET অনুরোধ পাঠায়; সার্ভার প্ল্যাটফর্ম নির্ধারণ করে এবং ডিভাইসে অ্যাপের উপস্থিতি পরীক্ষা করে। যদি অ্যাপ ইনস্টল থাকে, তাহলে টার্গেট স্ক্রিন খোলার জন্য প্যারামিটার সহ একটি Universal Link বা Intent-এ রিডাইরেক্ট তৈরি করা হয়। যদি অ্যাপ ইনস্টল না থাকে, তাহলে ডাউনলোডের জন্য App Store বা Google Play-তে রিডাইরেক্ট করে।
অ্যাপটি Firebase SDK initialization-এর সময় লিংক গ্রহণ করে। getDynamicLink() মেথড ট্রানজিশন ডেটা সহ একটি PendingResult রিটার্ন করে। সফল প্রাপ্তির পরে, ডিপ লিংক প্যারামিটার, অ্যানালিটিক্সের জন্য UTM ট্যাগ এবং লিংক তৈরি করার সময় প্রেরিত স্বেচ্ছাচারী ডেটা নিষ্কাশন করা হয়।
Firebase Console Dynamic Links তৈরি করার জন্য একটি ভিজুয়াল ইন্টারফেস সরবরাহ করে। ডেভেলপার ডিপ লিংক URL, ক্যাম্পেইনের নাম, iOS এবং Android-এর জন্য আলাদাভাবে সেটিংস এবং অ্যানালিটিক্স প্যারামিটার নির্দিষ্ট করে। তৈরি করার পরে, Firebase https://yourcode.page.link/abc123-এর মতো একটি ছোট লিংক তৈরি করে, যা বিজ্ঞাপন সামগ্রী, ইমেল ক্যাম্পেইন এবং সোশ্যাল নেটওয়ার্কে ব্যবহার করা যেতে পারে।
Dynamic Links-এর প্রোগ্রামেটিক তৈরি করার জন্য Firebase REST API বা ক্লায়েন্ট SDK ব্যবহার করা হয়। REST API কাস্টম প্যারামিটার সহ মার্কেটিং ক্যাম্পেইনের জন্য বাল্ক লিংক জেনারেশনের অনুমতি দেয়, যার মধ্যে সোশ্যাল নেটওয়ার্ক লিংক এবং অ্যাসিঙ্ক্রোনাস ক্লিক অ্যানালিটিক্স অন্তর্ভুক্ত। API-এর মাধ্যমে লিংক তৈরি করার সময়, socialMetaTagInfo প্যারামিটার সঠিকভাবে নির্দিষ্ট করা গুরুত্বপূর্ণ — এগুলি নির্ধারণ করে যে মেসেঞ্জার এবং সোশ্যাল নেটওয়ার্কে প্রিভিউ কার্ড সহ শেয়ার করার সময় লিংকটি কীভাবে প্রদর্শিত হয়।
| প্যারামিটার | উদ্দেশ্য | বাধ্যতামূলক |
|---|---|---|
| Deep Link URL | অ্যাপ কন্টেন্টের অভ্যন্তরীণ লিংক | হ্যাঁ |
| iOS Bundle ID | App Store-এ অ্যাপ শনাক্তকারী | iOS-এর জন্য |
| Android Package Name | Google Play-তে প্যাকেজ নাম | Android-এর জন্য |
| Fallback URL | অ্যাপ না থাকলে ওয়েব পেজ | না |
| UTM ট্যাগ | Google Analytics-এর জন্য প্যারামিটার | না |
iOS-এ Firebase Dynamic Links-এর সাথে কাজ করার জন্য, CocoaPods বা Swift Package Manager-এর মাধ্যমে Firebase SDK সংহত করা, Info.plist কে GOOGLE_APP_ID দিয়ে কনফিগার করা এবং প্রকল্পের Associated Domains-এ Dynamic Links ডোমেন নিবন্ধন করা প্রয়োজন। তার পরে, অ্যাপ স্বয়ংক্রিয়ভাবে Firebase দ্বারা তৈরি Universal Links হ্যান্ডল করে।
Xcode-এ, applinks:yourcode.page.link-এর মতো একটি এন্ট্রি সহ Associated Domains ক্ষমতা যোগ করা প্রয়োজন। Firebase SDK Universal Links হ্যান্ডল করার জন্য application(_:continue:restorationHandler:) মেথড ব্যবহার করে, তাই AppDelegate-এর সাথে অতিরিক্ত সংহতকরণের প্রয়োজন নেই — Firebase স্বয়ংক্রিয়ভাবে User Activity থেকে Dynamic Link প্যারামিটার নিষ্কাশন করে।
সঠিক Firebase initialization এবং Dynamic Link হ্যান্ডলার নিবন্ধনের জন্য Info.plist কনফিগারেশনের উদাহরণ। FIROptions কী-তে GoogleService-Info.plist থেকে প্রকল্প শনাক্তকারী থাকা উচিত।
<key>FirebaseDynamicLinksCustomDomains</key>
<array>
<string>https://yourcode.page.link</string>
</array>
<key>FirebaseAppDelegateProxyEnabled</key>
<false/>
যদি AppDelegate প্রক্সি নিষ্ক্রিয় থাকে, তাহলে handleUniversalLink(_:) মেথড ম্যানুয়ালি কল করা এবং continue NSUserActivity থেকে User Activity পাস করা প্রয়োজন। Firebase SDK স্বয়ংক্রিয়ভাবে লিংক প্যারামিটার নিষ্কাশন করে এবং completion handler-এর মাধ্যমে DynamicLink রিটার্ন করে।
Android-এ, Firebase Dynamic Links সংহতকরণ build.gradle-এ নির্ভরতা এবং Firebase Console থেকে google-services.json ফাইল যোগ করার মাধ্যমে শুরু হয়। Dynamic Links ডোমেন Firebase Console-এ নিবন্ধিত হয়, যার পরে এই ডোমেনের সাথে সমস্ত লিংক action VIEW সহ Intent Filter-এর মাধ্যমে Android অ্যাপ দ্বারা স্বয়ংক্রিয়ভাবে স্বীকৃত হয়। সঠিক অপারেশনের জন্য, রুট এবং মডিউল build.gradle-এ Google Services প্লাগইন যোগ করা এবং Gradle সিঙ্ক্রোনাইজেশন করা প্রয়োজন।
Android-এ লিংক সঠিকভাবে হ্যান্ডল করার জন্য, যে Activity ইনকামিং লিংক গ্রহণ করবে সেখানে Dynamic Links ডোমেনের জন্য একটি Intent Filter যোগ করা প্রয়োজন। ফিল্টারে https স্কিম, আপনার Dynamic Links ডোমেন হোস্ট এবং ডিফল্ট পাথ অন্তর্ভুক্ত থাকতে হবে।
yourcode.page.link ডোমেনে Dynamic Links গ্রহণের জন্য AndroidManifest.xml-এ Intent Filter-এর উদাহরণ।
<activity android:name=".MainActivity"
android:launchMode="singleTask">
<intent-filter
android:autoVerify="true">
<action
android:name="android.intent.action.VIEW" />
<category
android:name="android.intent.category.DEFAULT" />
<category
android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="yourcode.page.link" />
</intent-filter>
</activity>
Dynamic Links গ্রহণকারী Activity-র জন্য launchMode singleTask-এ সেট করা গুরুত্বপূর্ণ। এটি বারবার লিংক ক্লিক করার সময় Activity-র নতুন ইনস্ট্যান্স তৈরি প্রতিরোধ করে এবং সমস্ত ইনকামিং ডিপ লিংক একটি একক ইনস্ট্যান্সে হ্যান্ডল করার অনুমতি দেয়।
Android-এর জন্য Firebase SDK FirebaseDynamicLinks.getInstance().getDynamicLink(intent) মেথড সরবরাহ করে, যা লিংক ডেটা সহ একটি PendingTask অবজেক্ট রিটার্ন করে। DynamicLink অবজেক্ট থেকে ডিপ URI, UTM প্যারামিটার এবং ট্রানজিশন টাইমস্ট্যাম্প নিষ্কাশন করা হয়। Activity-র onCreate() এবং onNewIntent() মেথডে প্রক্রিয়াকরণ করার সুপারিশ করা হয়।
প্রক্রিয়াকরণের সময়, এটি বিবেচনা করা গুরুত্বপূর্ণ যে Dynamic Link কোল্ড স্টার্ট থেকে অ্যাপ লঞ্চ করার সময় এবং অন্য অ্যাপ থেকে ইতিমধ্যে চলমান অ্যাপে ট্রানজিশন করার সময় উভয় ক্ষেত্রেই গ্রহণ করা যেতে পারে। দ্বিতীয় ক্ষেত্রে, onNewIntent() ওভাররাইড করা এবং Dynamic Link চেক পুনরায় কল করা প্রয়োজন।
MainActivity-তে Firebase Dynamic Link গ্রহণ এবং হ্যান্ডল করার উদাহরণ। কোডটি কোল্ড স্টার্ট এবং অন্য অ্যাপ থেকে ট্রানজিশন উভয়ই হ্যান্ডল করে।
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
checkDynamicLink(intent)
}
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
checkDynamicLink(intent)
}
private fun checkDynamicLink(intent: Intent) {
FirebaseDynamicLinks.getInstance()
.getDynamicLink(intent)
.addOnSuccessListener link ->
val deepLink = link?.link.toString()
handleDeepLink(deepLink)
}
}
}
addOnSuccessListener মেথড একটি DynamicLink রিটার্ন করে, যা থেকে link?.link-এর মাধ্যমে টার্গেট লিংক নিষ্কাশন করা হয়। যদি listener null রিটার্ন করে, তাহলে এর অর্থ হল Intent-এ Dynamic Link নেই — এটি ইনকামিং লিংক ছাড়া একটি সাধারণ অ্যাপ লঞ্চ। ক্লিক অ্যানালিটিক্সের জন্য UTM ট্যাগও উপলব্ধ, যার মধ্যে campaign, medium, source এবং content অন্তর্ভুক্ত, যা প্রতিটি মার্কেটিং চ্যানেলের কার্যকারিতার বিস্তারিত মূল্যায়নের জন্য Google Analytics-এ প্রেরণ করা যেতে পারে।
সচরাচর জিজ্ঞাসিত প্রশ্ন
Firebase Dynamic Links ডিফার্ড ডিপ লিংক সমর্থন করে — লিংকটি কনটেক্সট সংরক্ষণ করে এমনকি যদি অ্যাপটি ইনস্টল না থাকে। ইনস্টলেশনের পরে, অ্যাপটি সমস্ত ট্রানজিশন প্যারামিটার গ্রহণ করে, যা সাধারণ URL Scheme বা Universal Links-এর সাথে অসম্ভব।
Firebase Dynamic Links বিনামূল্যের Firebase Spark মূল্য পরিকল্পনায় অন্তর্ভুক্ত। তৈরি করা যেতে পারে এমন লিংকের সংখ্যার উপর কোনও সীমা নেই। তবে, 2024 সাল থেকে Google একটি নতুন অবকাঠামোতে রূপান্তরের ঘোষণা দিয়েছে, তাই শর্তগুলি পরিবর্তিত হতে পারে।
Dynamic Links মোবাইল অ্যাপ্লিকেশন-এর জন্য ডিজাইন করা হয়েছে। ডেস্কটপ ওয়েব ব্রাউজার থেকে লিংকে ক্লিক করলে, এটি ফলব্যাক URL খুলবে। ওয়েব অ্যাপ্লিকেশনের জন্য, সাধারণ লিংক বা আপনার নিজস্ব রিডাইরেক্ট লজিক ব্যবহার করুন।
Firebase Console আচরণের পূর্বরূপ দেখতে Test Dynamic Link বাটন সরবরাহ করে। আপনি সমস্ত ট্রানজিশন পরিস্থিতির স্থানীয় পরীক্ষার জন্য ইনস্টল করা Firebase SDK সহ Android এমুলেটর বা iOS সিমুলেটরও ব্যবহার করতে পারেন।
একটি ছোট Firebase Dynamic Link page.link ডোমেন এবং প্রায় 7 অক্ষরের একটি এলোমেলো প্রত্যয় নিয়ে গঠিত। মোট দৈর্ঘ্য প্রায় 30 অক্ষর। ভিতরের ডিপ লিংক যে কোনও দৈর্ঘ্যের হতে পারে, তবে সামঞ্জস্যের জন্য এটি 2 KB-তে সীমাবদ্ধ রাখার সুপারিশ করা হয়।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন