ডিপ লিংক (Deep Link) একটি URL যা ব্যবহারকারীকে মোবাইল অ্যাপ্লিকেশনের ভেতরে একটি নির্দিষ্ট স্ক্রিন বা কন্টেন্টে নির্দেশ করে, হোম স্ক্রিন এড়িয়ে। একটি ওয়েবসাইটের সাধারণ লিংকের বিপরীতে, ডিপ লিংক অ্যাপটি সক্রিয় করে এবং সাথে সাথে লক্ষ্য কন্টেন্ট খোলে। Android Developers-এর মতে, সঠিকভাবে কনফিগার করা ডিপ লিংক কন্টেন্টে পৌঁছানোর ধাপের সংখ্যা কমিয়ে লক্ষ্য কর্মে রূপান্তর 30–50% পর্যন্ত বাড়ায়।
মূল পয়েন্ট
ডিপ লিংক (Deep Link) একটি URI যা ক্লিক করলে কোনো ওয়েব পেজ নয়, বরং মোবাইল অ্যাপ্লিকেশনের ভেতরে একটি নির্দিষ্ট স্ক্রিন খোলে। প্রযুক্তিটি মোবাইল প্ল্যাটফর্মের একটি মৌলিক সমস্যা সমাধান করে: ব্রাউজার সরাসরি অ্যাপ স্ক্রিন খুলতে পারে না, এবং ডিপ লিংক ওয়েব এবং নেটিভ কোডের মধ্যে একটি সেতু তৈরি করে। ডিপ লিংক ছাড়া, ব্যবহারকারী সবসময় হোম স্ক্রিনে পৌঁছায় এবং ম্যানুয়ালি পছন্দসই কন্টেন্টে নেভিগেট করতে বাধ্য হয়।
ডিপ লিংকের আর্কিটেকচারে দুটি অংশ থাকে: স্কিম (scheme) নির্ধারণ করে কোন অ্যাপ লিংকটি হ্যান্ডেল করবে, এবং পাথ (path) অ্যাপের ভেতরে একটি নির্দিষ্ট রিসোর্স নির্দেশ করে — একটি পণ্য, নিবন্ধ, ব্যবহারকারী প্রোফাইল বা সেটিংস বিভাগ। কোয়েরি প্যারামিটার (?source=push&campaign=summer) অ্যানালিটিক্স, ব্যক্তিগতকরণ এবং ক্যাম্পেইন অ্যাট্রিবিউশনের জন্য অতিরিক্ত কনটেক্সট পাঠায়।
ডিপ লিংক এবং সাধারণ লিংকের মধ্যে পার্থক্য করা গুরুত্বপূর্ণ। একটি সাধারণ লিংক (https://example.com/product/42) ব্রাউজারে খোলে এবং পেজের ওয়েব সংস্করণে নিয়ে যায়। একটি ডিপ লিংক (myapp://product/42), যদি অ্যাপ ইনস্টল করা থাকে, তবে একই কন্টেন্ট সহ নেটিভ স্ক্রিন খোলে, কিন্তু যদি অ্যাপ ইনস্টল না থাকে, তবে এটি একটি ত্রুটি দেখায়। Universal Link (iOS) এবং App Link (Android) বিশেষভাবে বিজোড় ফলব্যাক (fallback) সমস্যা সমাধানের জন্য তৈরি করা হয়েছিল।
বিভিন্ন কাজের জন্য বিভিন্ন ধরনের ডিপ লিংক প্রয়োজন। কিছু লিংক শুধুমাত্র ইনস্টল করা অ্যাপের সাথে কাজ করে, অন্যগুলি ইনস্টলেশনের জন্য অপেক্ষা করতে পারে, এবং অন্যগুলি অ্যানালিটিকাল কনটেক্সট পাঠায়। প্রকারের পছন্দ ব্যবহারের পরিস্থিতির উপর নির্ভর করে: বিজ্ঞাপন ক্যাম্পেইন, পুশ নোটিফিকেশন, কন্টেন্ট শেয়ারিং বা ইমেল নিউজলেটার।
স্ট্যান্ডার্ড ডিপ লিংক হল মৌলিক প্রকার যা কেবল তখনই সক্রিয় হয় যদি অ্যাপটি ডিভাইসে ইতিমধ্যে ইনস্টল করা থাকে। ব্যবহারকারী myapp://product/42 লিংকে ক্লিক করে, সিস্টেম নিবন্ধিত স্কিম শনাক্ত করে এবং কাঙ্ক্ষিত স্ক্রিনে অ্যাপ খোলে। যদি অ্যাপ ইনস্টল না থাকে, ব্রাউজার “পৃষ্ঠা পাওয়া যায়নি” ত্রুটি দেখায় বা কিছুই করে না। এই প্রকারটি ইতিমধ্যে ইনস্টল করা অ্যাপ্লিকেশনের ভেতরে অভ্যন্তরীণ নেভিগেশনের জন্য উপযুক্ত।
স্ট্যান্ডার্ড ডিপ লিংক সেট আপ করা সহজ: শুধু ম্যানিফেস্ট (Android) বা Info.plist (iOS)-এ URI স্কিম নিবন্ধন করুন। সার্ভার যাচাইকরণ বা SSL সার্টিফিকেটের প্রয়োজন নেই। কিন্তু ফলব্যাকের অভাবের কারণে, এই প্রকারটি মার্কেটিং ক্যাম্পেইনের জন্য পুরনো বলে বিবেচিত হয় — অ্যাপ ছাড়া ব্যবহারকারীদের থেকে ট্রাফিক ক্ষতি 60% পর্যন্ত পৌঁছাতে পারে।
ডিফার্ড ডিপ লিংক সাধারণ ডিপ লিংকের প্রধান সমস্যা সমাধান করে: এটি কাজ করে এমনকি যদি অ্যাপ ইনস্টল না থাকে। ব্যবহারকারী লিংকে ক্লিক করে → একটি পৃষ্ঠা দেখে (ল্যান্ডিং বা App Store/Google Play) → অ্যাপ ইনস্টল করে → প্রথম লঞ্চে, অ্যাপ মূল লিংকের কনটেক্সট পায় এবং কাঙ্ক্ষিত স্ক্রিন খোলে। প্রযুক্তিটির জন্য একটি মধ্যস্থতাকারী SDK (AppsFlyer, Branch, Adjust) প্রয়োজন যা প্রথম লঞ্চ পর্যন্ত সার্ভারে কনটেক্সট সংরক্ষণ করে।
Branch ডিফার্ড ডিপ লিংকের জন্য সবচেয়ে জনপ্রিয় প্ল্যাটফর্মগুলির একটি। এটি একটি একক লিংক সরবরাহ করে যা সব প্ল্যাটফর্মে কাজ করে: ব্যবহারকারীর OS শনাক্ত করে, অ্যাপ স্টোরে রিডাইরেক্ট করে, এবং ইনস্টলেশনের পরে কনটেক্সট (প্রোমো কোড, পণ্য ID, ক্যাম্পেইন উৎস) পাঠায়। Branch (2024) অনুসারে, ডিফার্ড ডিপ লিংক বিজ্ঞাপন ক্যাম্পেইন রূপান্তর 40–70% বাড়ায়।
প্রাসঙ্গিক ডিপ লিংক একটি সাধারণ বা ডিফার্ড ডিপ লিংক যা কনটেক্সট প্যারামিটার দ্বারা পরিপূরক: ট্রাফিক উৎস, ক্যাম্পেইন, প্রোমো কোড, রেফারার, পার্টনার ID। প্যারামিটারগুলি URL-এ পাঠানো হয় এবং ব্যক্তিগতকরণের জন্য অ্যাপ দ্বারা প্রক্রিয়া করা হয়: স্বাগত বোনাস দেখানো, ডিসকাউন্টে পণ্য খোলা, ইনস্টলেশন অ্যানালিটিক্স রেকর্ড করা।
UTM ট্যাগ (utm_source, utm_medium, utm_campaign) কনটেক্সট পাঠানোর একটি মানক উপায়। মোবাইলে, প্রাসঙ্গিক ডিপ লিংক অ্যাট্রিবিউশনের জন্য গুরুত্বপূর্ণ: এগুলি ছাড়া, অ্যাপ মালিক জানতে পারে না কোন চ্যানেল ব্যবহারকারীকে এনেছে — অর্গানিক ট্রাফিক, Facebook বিজ্ঞাপন, ইমেল নিউজলেটার বা QR কোড। গুণগত অ্যাট্রিবিউশনের জন্য MMP (Mobile Measurement Partner)-এর সাথে ইন্টিগ্রেশন প্রয়োজন।
| ডিপ লিংকের প্রকার | ইনস্টলেশন প্রয়োজন | ইনস্টলে অপেক্ষা | কনটেক্সট |
|---|---|---|---|
| স্ট্যান্ডার্ড | হ্যাঁ | না | শুধু URL-এ |
| ডিফার্ড | না | হ্যাঁ | সার্ভার স্টোরেজ |
| প্রাসঙ্গিক | যেকোনো | যেকোনো | UTM + প্যারামিটার |
iOS দুটি পদ্ধতির মাধ্যমে ডিপ লিংক সমর্থন করে: পুরনো Custom URL Scheme এবং আধুনিক Universal Link (iOS 9+)। Custom URL Scheme Info.plist-এ একটি কাস্টম স্কিম নিবন্ধন করে কাজ করে। অ্যাপ myapp:// নিবন্ধন করে, এবং iOS এই ধরনের লিংকে ক্লিক করলে অ্যাপ খোলে। সমস্যা: যদি স্কিমটি কোনো অ্যাপ দ্বারা নিবন্ধিত না হয়, ব্রাউজার একটি ত্রুটি দেখায়।
iOS-এ ডিপ লিংকের হ্যান্ডলিং AppDelegate পদ্ধতি application(_:open:options:) বা SceneDelegate scene(_:openURLContexts:) এর মাধ্যমে হয়। ডেভেলপার URL বের করে, পাথ এবং প্যারামিটার পার্স করে, তারপর উপযুক্ত স্ক্রিনে নেভিগেট করে। যদি SwiftUI ব্যবহার করা হয়, হ্যান্ডলিং OpenURLAction বা onChange(of: openURL) এর মাধ্যমে করা হয়। অ্যাপের অবস্থা সঠিকভাবে হ্যান্ডেল করা গুরুত্বপূর্ণ: অ্যাপ লঞ্চ না হওয়া, ব্যাকগ্রাউন্ডে থাকা বা সক্রিয় থাকা।
iOS-এ নিরাপত্তা কঠোর: যেকোনো অ্যাপ একই স্কিম নিবন্ধন করে Custom URL Scheme ইন্টারসেপ্ট করতে পারে। এটি একটি সম্ভাব্য দুর্বলতা (URL Scheme হাইজ্যাকিং)। তাই Apple Universal Link-কে আরও নিরাপদ বিকল্প হিসেবে সুপারিশ করে: শুধুমাত্র যাচাইকৃত ডোমেন মালিক অ্যাপের সাথে লিংক যুক্ত করতে পারেন। Universal Link সম্পর্কে আরও জানতে Universal Link নিবন্ধটি দেখুন।
Android AndroidManifest.xml-এ Intent Filters-এর মাধ্যমে ডিপ লিংক বাস্তবায়ন করে। অ্যাপ একটি Activity সংজ্ঞায়িত করে যা একটি নির্দিষ্ট স্কিম (myapp://) বা নির্দিষ্ট হোস্ট এবং পাথ হ্যান্ডেল করে। যখন ব্যবহারকারী ডিপ লিংকে ক্লিক করে, Android মেলানো Intent Filter সহ Activity খোঁজে এবং তা খোলে। যদি একাধিক মেলানো Activities থাকে, সিস্টেম একটি অ্যাপ নির্বাচন ডায়ালগ দেখায়।
// AndroidManifest.xml - ডিপ লিংকের জন্য Intent Filter
<activity
android:name=".ui.ProductActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="myapp"
android:host="product"
android:pathPrefix="/" />
</intent-filter>
</activity>
Android-এ ডিপ লিংকের হ্যান্ডলিং Activity.onCreate() বা onNewIntent() পদ্ধতিতে করা হয়। ডেভেলপার Intent গ্রহণ করে, URI বের করে এবং নেভিগেশন শুরু করে। Jetpack Navigation-এর জন্য, Navigation Deep Link কম্পোনেন্ট নেভিগেশন গ্রাফে ডিপ লিংক ঘোষণামূলকভাবে বর্ণনা করার অনুমতি দেয়। Android App Link (Android 6.0+) Digital Asset Links-এর মাধ্যমে যাচাইকরণ সহ ডিপ লিংকের বিবর্তন, যা অ্যাপ নির্বাচন ডায়ালগ দূর করে।
Android 12+ পরিবর্তনগুলি বিবেচনা করা গুরুত্বপূর্ণ: API 31 থেকে শুরু করে, সিস্টেমের ডিপ লিংক হ্যান্ডেল করা Activities-এর জন্য exported=true-এর স্পষ্ট ঘোষণা প্রয়োজন এবং Intent Filter-এর সঠিকতা পরীক্ষা করে। Google Play Store প্রকাশনার সময় App Link যাচাইকরণ পরীক্ষা করে। যাচাইকরণ ছাড়া, Google আপডেট প্রত্যাখ্যান করতে পারে যদি ডিপ লিংক ওয়েবসাইটের অস্তিত্বহীন পৃষ্ঠায় নিয়ে যায়।
ডিপ লিংক সেটআপ-এ উভয় প্ল্যাটফর্মের জন্য সাধারণ বেশ কয়েকটি ধাপ অন্তর্ভুক্ত রয়েছে। প্রথম ধাপ হল স্কিম এবং URL কাঠামো সংজ্ঞায়িত করা। Universal Link এবং App Link-এর সাথে সামঞ্জস্যের জন্য https স্কিম (কাস্টমের পরিবর্তে) ব্যবহার করার পরামর্শ দেওয়া হয়। URL কাঠামোটি ওয়েবসাইটের কাঠামো প্রতিফলিত করা উচিত: /product/42, /profile/john, /settings/notifications। এটি রক্ষণাবেক্ষণ এবং সার্চ ইঞ্জিন দ্বারা কন্টেন্ট ইনডেক্সিং সহজ করে।
দ্বিতীয় ধাপ হল অ্যাপ কোডে ডিপ লিংক হ্যান্ডলিং। Android-এর জন্য, nav_graph-এ ঘোষণামূলক ডিপ লিংক সহ Jetpack Navigation সুপারিশ করা হয়। iOS-এর জন্য — OpenURLAction হ্যান্ডলিং সহ SwiftUI NavigationStack। তিনটি অ্যাপ অবস্থা হ্যান্ডেল করা গুরুত্বপূর্ণ: কোল্ড স্টার্ট (অ্যাপ লঞ্চ হয়নি), ওয়ার্ম স্টার্ট (ব্যাকগ্রাউন্ডে), এবং সক্রিয় (স্ক্রিনে)। প্রতিটি অবস্থার জন্য আলাদা নেভিগেশন লজিক প্রয়োজন।
ডিপ লিংকের পরীক্ষা একটি আলাদা কাজ। Android Studio Intent Filters পরীক্ষার জন্য App Links Assistant টুল সরবরাহ করে। iOS-এ, পরীক্ষা লঞ্চ স্কিম আর্গুমেন্টের মাধ্যমে URL পাস করে Xcode-এর মাধ্যমে করা হয়। CI চেক সেট আপ করার পরামর্শ দেওয়া হয়: স্বয়ংক্রিয় ডিপ লিংক নেভিগেশন এবং যাচাইকরণ যে প্রত্যাশিত স্ক্রিন খোলা হয়েছে। ডিফার্ড ডিপ লিংকের জন্য, পরীক্ষায় “ইনস্টলেশন → প্রথম লঞ্চ → কনটেক্সট”-এর সম্পূর্ণ চক্র অন্তর্ভুক্ত। পরীক্ষা ছাড়া, অ্যাপ নেভিগেশন আপডেট করার সময় ডিপ লিংক প্রায়ই ভেঙে যায়।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
সাধারণ লিংক (https://site.com/page) ব্রাউজারে খোলে। ডিপ লিংক (myapp://page বা https://site.com/page যাচাইকরণ সহ) মোবাইল অ্যাপের ভেতরে একটি স্ক্রিন খোলে। ডিপ লিংক কনটেক্সটও পাঠাতে পারে: প্রোমো কোড, ট্রাফিক উৎস, রেফারেল ID।
URI স্কিম একটি URL উপসর্গ যা নির্ধারণ করে কোন অ্যাপ লিংকটি হ্যান্ডেল করবে (উদাহরণ: myapp://, vk://, tg://)। সিস্টেম রাউটিংয়ের জন্য স্কিম ব্যবহার করে: এটি সেই অ্যাপ খুঁজে পায় যা এই স্কিম নিবন্ধন করেছে এবং প্রক্রিয়াকরণের জন্য URL পাঠায়।
ব্যবহারকারী লিংকে ক্লিক করে → সার্ভিস (Branch, AppsFlyer) কনটেক্সট মনে রাখে → App Store/Google Play-তে রিডাইরেক্ট করে → ইনস্টলেশন এবং প্রথম লঞ্চের পরে, SDK সংরক্ষিত কনটেক্সট অ্যাপে পাঠায় → অ্যাপ কাঙ্ক্ষিত স্ক্রিন খোলে, যেন ব্যবহারকারীর কাছে অ্যাপটি আগে থেকেই ইনস্টল করা আছে।
সাধারণ ডিপ লিংক — না। ডিফার্ড ডিপ লিংক — হ্যাঁ, একটি মধ্যবর্তী পৃষ্ঠার মাধ্যমে যা অ্যাপ স্টোরে রিডাইরেক্ট করে এবং কনটেক্সট সংরক্ষণ করে। Universal Link এবং App Link অ্যাপ ইনস্টল না থাকলে ফলব্যাক হিসেবে ওয়েবসাইট খোলে।
Android-এ, adb ব্যবহার করুন: adb shell am start -W -a android.intent.action.VIEW -d “myapp://product/42”। iOS-এ — xcrun simctl openurl booted “myapp://product/42”। উভয় প্ল্যাটফর্মের জন্য Firebase Dynamic Links এবং Branch পরীক্ষা কনসোল উপলব্ধ।
সারাংশ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন