ওয়েবসাইট অ্যাসোসিয়েশন এবং গতিশীল নিয়ম কনফিগার করুন

অ্যাপ লিঙ্ক সমর্থন করার জন্য, আপনাকে assetlinks.json নামে একটি ডিজিটাল অ্যাসেট লিঙ্ক JSON ফাইল তৈরি করতে হবে এবং আপনার ওয়েবসাইটের একটি সুপরিচিত স্থানে তা প্রকাশ করতে হবে। এই ফাইলটি সর্বসমক্ষে ঘোষণা করে যে কোন অ্যাপগুলো আপনার ডোমেইনের লিঙ্কগুলো পরিচালনা করার জন্য অনুমোদিত, এবং অ্যান্ড্রয়েড ডিভাইসগুলো আপনার ডিপ লিঙ্কগুলো যাচাই করার জন্য আপনার সার্ভার থেকে এই ফাইলটি সংগ্রহ করবে।

Android 15+ এ ডাইনামিক অ্যাপ লিঙ্কের জন্য, assetlinks.json ফাইলেই আপনি আপনার ডাইনামিক রুলস কনফিগারেশন নির্ধারণ করেন , যেমন পাথ, ফ্র্যাগমেন্ট এবং কোয়েরি প্যারামিটারের জন্য প্যাটার্ন ম্যাচিং। Android 15 (API লেভেল 35) বা তার পরবর্তী সংস্করণে চালিত যে ডিভাইসগুলিতে Google পরিষেবা ইনস্টল করা আছে, সেগুলি পর্যায়ক্রমে ফাইলটি সংগ্রহ করবে এবং আপনার ডাইনামিক কনফিগারেশনকে অ্যাপের ম্যানিফেস্টের স্ট্যাটিক কনফিগারেশনের সাথে একীভূত করবে।

এই নির্দেশিকায় একটি assetlinks.json ফাইল প্রস্তুত করার এবং আপনার ওয়েবসাইটে তা প্রকাশ করার পদ্ধতি বর্ণনা করা হয়েছে। আপনি চাইলে, প্লে ডিপ লিঙ্কস টুল অথবা অ্যান্ড্রয়েড স্টুডিও অ্যাপ লিঙ্কস অ্যাসিস্ট্যান্ট থেকে একটি assetlinks.json ফাইল তৈরি করতে পারেন। আরও তথ্যের জন্য, অ্যাপ লিঙ্কস ডেভেলপার টুলস দেখুন।

ওয়েবসাইট সংযোগ ঘোষণা করুন

আপনার ওয়েবসাইটের সাথে যুক্ত অ্যান্ড্রয়েড অ্যাপগুলো নির্দেশ করতে এবং অ্যাপটির ইউআরএল ইন্টেন্ট যাচাই করতে আপনাকে অবশ্যই আপনার ওয়েবসাইটে একটি ডিজিটাল অ্যাসেট লিঙ্কস JSON ফাইল প্রকাশ করতে হবে। সংশ্লিষ্ট অ্যাপগুলো শনাক্ত করার জন্য JSON ফাইলটি নিম্নলিখিত ফিল্ডগুলো ব্যবহার করে:

  • package_name : অ্যাপটির build.gradle ফাইলে ঘোষিত অ্যাপ্লিকেশন আইডি
  • sha256_cert_fingerprints : আপনার অ্যাপের সাইনিং সার্টিফিকেটের SHA256 ফিঙ্গারপ্রিন্ট। আপনি জাভা কীটুল (java keytool) ব্যবহার করে ফিঙ্গারপ্রিন্ট তৈরি করতে নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:

keytool -list -v -keystore my-release-key.keystore

  • এই ফিল্ডটি একাধিক ফিঙ্গারপ্রিন্ট সমর্থন করে, যা আপনার অ্যাপের বিভিন্ন সংস্করণ, যেমন ডিবাগ এবং প্রোডাকশন বিল্ড সমর্থন করার জন্য ব্যবহার করা যেতে পারে। আপনি যদি আপনার অ্যাপের জন্য প্লে অ্যাপ সাইনিং (Play App Signing) ব্যবহার করেন, তাহলে স্থানীয়ভাবে keytool চালিয়ে তৈরি হওয়া সার্টিফিকেট ফিঙ্গারপ্রিন্টটি সাধারণত ব্যবহারকারীদের ডিভাইসের ফিঙ্গারপ্রিন্টের সাথে মিলবে না। আপনি আপনার প্লে কনসোল ডেভেলপার অ্যাকাউন্টে রিলিজ > সেটআপ > অ্যাপ সাইনিং Release > Setup > App signing এর অধীনে আপনার অ্যাপের জন্য প্লে অ্যাপ সাইনিং ব্যবহার করছেন কিনা তা যাচাই করতে পারেন; যদি করে থাকেন, তাহলে আপনি একই পৃষ্ঠায় আপনার অ্যাপের জন্য সঠিক ডিজিটাল অ্যাসেট লিঙ্কস JSON স্নিপেটটিও খুঁজে পাবেন।

নিম্নলিখিত উদাহরণ assetlinks.json ফাইলটি একটি com.example অ্যান্ড্রয়েড অ্যাপকে লিঙ্ক খোলার অধিকার প্রদান করে:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example",
    "sha256_cert_fingerprints":
    ["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
  }
}]

একটি ওয়েবসাইটকে একাধিক অ্যাপের সাথে সংযুক্ত করুন

একটি ওয়েবসাইট একই assetlinks.json ফাইলের মধ্যে একাধিক অ্যাপের সাথে সংযোগ ঘোষণা করতে পারে। নিম্নলিখিত ফাইল তালিকাটি এমন একটি স্টেটমেন্ট ফাইলের উদাহরণ দেখাচ্ছে যা দুটি অ্যাপের সাথে আলাদাভাবে সংযোগ ঘোষণা করে এবং https://www.example.com/.well-known/assetlinks.json -এ অবস্থিত:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.puppies.app",
    "sha256_cert_fingerprints":
    ["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
  }
  },
  {
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.example.monkeys.app",
    "sha256_cert_fingerprints":
    ["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
  }
}]

একই ওয়েব হোস্টের অধীনে বিভিন্ন অ্যাপ ভিন্ন ভিন্ন রিসোর্সের লিঙ্ক পরিচালনা করতে পারে। উদাহরণস্বরূপ, অ্যাপ১ https://example.com/articles এর জন্য একটি ইন্টেন্ট ফিল্টার ঘোষণা করতে পারে, এবং অ্যাপ২ https://example.com/videos জন্য একটি ইন্টেন্ট ফিল্টার ঘোষণা করতে পারে।

একটি অ্যাপের সাথে একাধিক ওয়েবসাইট সংযুক্ত করুন

একাধিক ওয়েবসাইট তাদের নিজ নিজ assetlinks.json ফাইলে একই অ্যাপের সাথে সংযোগ ঘোষণা করতে পারে। নিম্নলিখিত ফাইল তালিকাগুলো app1-এর সাথে example.com এবং example.net-এর সংযোগ কীভাবে ঘোষণা করতে হয় তার একটি উদাহরণ দেখায়। প্রথম তালিকাটি app1-এর সাথে example.com-এর সংযোগ দেখাচ্ছে:

https://www.example.com/.well-known/assetlinks.json

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.mycompany.app1",
    "sha256_cert_fingerprints":
    ["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
  }
}]

পরবর্তী তালিকাটিতে app1-এর সাথে example.net-এর সংযোগ দেখানো হয়েছে। শুধুমাত্র এই ফাইলগুলো যেখানে হোস্ট করা আছে, সেই অবস্থানটি ভিন্ন ( com এবং net ):

https://www.example.net/.well-known/assetlinks.json

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.mycompany.app1",
    "sha256_cert_fingerprints":
    ["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
  }
}]

ডায়নামিক নিয়ম কনফিগার করুন

অ্যান্ড্রয়েড ১৫+ এর ডাইনামিক অ্যাপ লিঙ্ক আপনাকে সার্ভার-সাইড ডিপ লিঙ্ক ম্যাচিং নিয়ম ব্যবহার করার সুযোগ দেয়, যা আপনার অ্যাপ ম্যানিফেস্টে স্থিরভাবে সংজ্ঞায়িত নিয়মগুলোর সাথে একত্রে কাজ করে। আপনার assetlinks.json ফাইলে আপনি ডাইনামিক নিয়মগুলো সংজ্ঞায়িত করেন। এটি অন্তর্ভুক্ত করা ঐচ্ছিক।

অ্যান্ড্রয়েড ১৫ (এপিআই লেভেল ৩৫) বা তার পরবর্তী সংস্করণে চালিত এবং গুগল পরিষেবা ইনস্টল করা অ্যান্ড্রয়েড ডিভাইসগুলো পর্যায়ক্রমে আপনার সার্ভার থেকে এই ফাইলটি সংগ্রহ করবে এবং অ্যাপের ম্যানিফেস্টে থাকা স্ট্যাটিক কনফিগারেশনের সাথে আপনার ডাইনামিক রুলস কনফিগারেশনকে একীভূত করবে। নিচে ডাইনামিক রুলস সহ একটি assetlinks.json ফাইলের উদাহরণ দেওয়া হলো:

[
  {
    "relation": [
      "delegate_permission/common.handle_all_urls"
    ],
    "target": {
      "namespace": "android_app",
      "package_name": "com.example.app",
      "sha256_cert_fingerprints": [...]
    },
    "relation_extensions": {
      "delegate_permission/common.handle_all_urls": {
        "dynamic_app_link_components": [
          {"?": {"dl": "*"}},
          {"#": "app"},
          {"/": "/products/*"},
          {"/": "/shoes", "?": {"in_app": "true"}},
          {"/": "*", "exclude": true}
        ]
      }
    }
  }
]

কোড সম্পর্কে মূল বিষয়গুলো

  • ডাইনামিক অ্যাপ লিঙ্কস dynamic_app_link_components নামে একটি নতুন ডিজিটাল অ্যাসেট লিঙ্কস রিলেশন এক্সটেনশন যোগ করে, যেখানে আপনি আপনার ডাইনামিক নিয়মগুলো কনফিগার করেন।
  • ডাইনামিক নিয়মে পাথ, ফ্র্যাগমেন্ট এবং কোয়েরি প্যারামিটারের জন্য প্যাটার্ন ম্যাচিং অন্তর্ভুক্ত থাকতে পারে।
  • আপনি যেকোনো প্যাটার্ন ম্যাচিংকে বর্জনকৃত হিসেবেও চিহ্নিত করতে পারেন, যাতে মিলে যাওয়া URL-গুলো আপনার অ্যাপ না খোলে।
  • এই উদাহরণটিতে পাথ ( "/" ), ফ্র্যাগমেন্ট ( "#" ), এবং কোয়েরি প্যারামিটার ( "?" ) এর জন্য ম্যাচিং অপশন এবং সেইসাথে বাদ দেওয়া ম্যাচিং অপশন ( "exclude" ) দেখানো হয়েছে।
  • ফাইলের কোনো ফিল্ড ত্রুটিপূর্ণ বা খালি থাকলে, অ্যান্ড্রয়েড ডায়নামিক নিয়মগুলো বাতিল করে দেয় এবং ডিভাইসটি অ্যাপের ম্যানিফেস্টে স্থিরভাবে সংজ্ঞায়িত নিয়মগুলোতে ফিরে যায়।

ডাইনামিক রুল শুধুমাত্র সেইসব নিয়মই নির্দিষ্ট করতে পারে যা আপনার অ্যাপের ম্যানিফেস্ট ফাইলে ঘোষিত ডোমেইনগুলোর আওতার মধ্যে প্রযোজ্য। নিচে দেখুন।

গতিশীল নিয়ম ঘোষণা করুন

ডাইনামিক অ্যাপ লিঙ্কস একটি নতুন dynamic_app_link_components রিলেশন এক্সটেনশন সমর্থন করে, যা rules অবজেক্টের একটি অ্যারে ধারণ করে। প্রতিটি রুল path, fragment, এবং query parameters-এর জন্য pattern matching ব্যবহার করে সংজ্ঞায়িত করা হয়, যা আপনার অ্যাপটি খুলবে। matching-গুলোকে আলাদাভাবে বাদও দেওয়া যেতে পারে, যাতে সেগুলো আপনার অ্যাপটি না খোলে। এই সবগুলোই ঐচ্ছিক।

  • পথ মেলানো
    • চাবি: "/"
    • মান: একক স্ট্রিং, যা URL পাথের জন্য এক্সপ্রেশনের সাথে মেলে।
  • খণ্ডাংশ মেলানো
    • চাবি: "#"
    • মান: একক স্ট্রিং, যা URL খণ্ডের জন্য এক্সপ্রেশনের সাথে মেলে।
  • কোয়েরি প্যারামিটার মেলানো
    • চাবি: "?"
    • মান: ইউআরএল কোয়েরি প্যারামিটারে কী/ভ্যালু জোড়া মেলানোর জন্য ডিকশনারি।
    • উদাহরণস্বরূপ, {" ?", {"dl": "*", "in_app":"true "} ডিকশনারিটি " ?in_app=true&dl=abc " কোয়েরি স্ট্রিংটির সাথে মিলবে।
    • ডিকশনারিতে থাকা কী/ভ্যালু পেয়ারগুলোর ক্রম কোয়েরি স্ট্রিং-এর পেয়ারগুলোর ক্রমের সাথে মিলতে হবে এমন কোনো বাধ্যবাধকতা নেই। এছাড়াও, ডিকশনারিটিকে কোয়েরি স্ট্রিং-এর সমস্ত কী/ভ্যালু পেয়ারের সাথে মিলতে হবে এমন কোনো বাধ্যবাধকতা নেই, কিন্তু ডিকশনারির প্রতিটি এন্ট্রির জন্য একটি মিল অবশ্যই খুঁজে পাওয়া যেতে হবে।
    • উদাহরণস্বরূপ, ডিকশনারিটি " ?lang=en&in_app=true&tz=pst&dl=abc " কোয়েরি স্ট্রিংটির সাথেও মিলবে, কিন্তু " ?lang=en&tz=pst&dl=abc " কোয়েরি স্ট্রিংটির সাথে মিলবে না।
  • বাদ দেওয়া হয়েছে
    • মূল: "বাদ দিন"
    • মান: dynamic_app_link_components এ সংজ্ঞায়িত প্রতিটি নিয়মের জন্য ঐচ্ছিক সত্য/মিথ্যা মান (উদাহরণ দেখুন)।

আপনি প্যাটার্ন ম্যাচিং-এ এই বিশেষ অক্ষরগুলো ব্যবহার করতে পারেন:

  • "*" চিহ্নটি প্যাটার্নে থাকা ওয়াইল্ডকার্ডের পরের অক্ষরটি মিলে যাওয়া স্ট্রিং-এর মধ্যে থাকা পর্যন্ত শূন্য বা তার বেশি সংখ্যক অক্ষরের সাথে মেলে।
  • "?" যেকোনো একটি অক্ষরের সাথে মেলে
  • "?*" এক বা একাধিক অক্ষরের সাথে মেলে

মানগুলির জন্য অন্য কোনো অক্ষরগত সীমাবদ্ধতা নেই।

অর্ডার ডায়নামিক নিয়ম

নিয়মগুলো যে ক্রমে ঘোষণা করা হয়, তা গুরুত্বপূর্ণ। অ্যান্ড্রয়েড একটি মিল খুঁজে না পাওয়া পর্যন্ত প্রতিটি নিয়ম ক্রমানুসারে মূল্যায়ন করে।

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে ক্রমবিন্যাস হ্যান্ডলিংকে প্রভাবিত করতে পারে। প্রথম নিয়মটি সমস্ত পাথ ("*") ম্যাচ করে কিন্তু ম্যাচগুলোকে বাদ দেয় (exclude: true), যার অর্থ এটি অ্যাপটি খোলার জন্য সমস্ত URL বাদ দেয়। এই ক্ষেত্রে, দ্বিতীয় নিয়মটি যা "/path1" কে অনুমতি দেয়, তা কখনই মূল্যায়ন করা হবে না।

dynamic_app_link_components: [
  {"/": "*", "exclude": true},
  {"/": "/path1"}
]

তবে, পরবর্তী উদাহরণে, "/path1" নিয়মটি প্রথমে ঘোষণা করা হয়েছে, তাই এটি প্রথমে মূল্যায়ন করা হবে এবং "/path1"-এর সাথে মিলে যাওয়া URL-এর জন্য অ্যাপটি খুলবে। দ্বিতীয় নিয়মটি, যা অ্যাপটি খোলা থেকে সমস্ত URL বাদ দেয়, সেটি দ্বিতীয়বার মূল্যায়ন করা হবে, কিন্তু শুধুমাত্র যদি প্রথম নিয়মটি না মেলে।

dynamic_app_link_components: [
  {"/": "/path1"},
  {"/": "*", "exclude": true}
]

ঘোষিত কম্পোনেন্টগুলোর তালিকায় কোনো মিল খুঁজে না পাওয়া গেলে, URL-টি দিয়ে অ্যাপটি খুলবে না। নিচের উদাহরণে, কোনো পাথই "/path3"-এর সাথে মেলে না, তাই ডিভাইসটি এই পাথটিকে বর্জিত হিসেবে গণ্য করবে।

dynamic_app_link_components: [
  {"/": "/path1"},
  {"/": "/path2"}
]

এই আচরণটি গুরুত্বপূর্ণ যদি আপনি চান যে dynamic_app_link_components শুধুমাত্র URL-এর নির্দিষ্ট কিছু অংশ বাদ দেবে কিন্তু বাকি সবগুলোকে অনুমতি দেবে। নিম্নলিখিত উদাহরণে, বাকি সমস্ত পাথকে অনুমতি দেওয়ার শেষ নিয়মটি বাদ দিলে তার অর্থ হবে যে সমস্ত URL অ্যাপ থেকে বাদ দেওয়া হবে।

dynamic_app_link_components: [
  {"/": "/path1", "exclude": true},
  {"/": "*"}
]

আপনার ডাইনামিক নিয়মগুলোকে সঠিকভাবে পরিধিভুক্ত করুন।

অ্যান্ড্রয়েড ১৫ এবং তার পরবর্তী সংস্করণগুলিতে ডাইনামিক অ্যাপ লিঙ্কের সাথে ব্যবহারের জন্য আপনার সার্ভার-সাইড নিয়মগুলি সংজ্ঞায়িত করার সময়, সেগুলিকে যথাযথভাবে স্কোপ করা গুরুত্বপূর্ণ, যাতে সেগুলি আপনার অ্যাপ ম্যানিফেস্টে ঘোষিত স্ট্যাটিক ইন্টেন্ট ফিল্টারগুলির সাথে কাজ করে এবং সেগুলিকে পরিপূরক করে।

assetlinks.json ফাইলে ঘোষিত ডাইনামিক রুলগুলো শুধুমাত্র সেই হোস্টগুলোর জন্যই নিয়ম নির্দিষ্ট করতে পারে, যেগুলো আপনি আপনার অ্যাপের AndroidManifest.xml ফাইলে ঘোষণা করেন। এই ডাইনামিক রুলগুলো আপনার অ্যাপ ম্যানিফেস্টে স্ট্যাটিক্যালি ঘোষিত URL রুলগুলোর পরিধি প্রসারিত করতে পারে না

এই কারণে, আমরা আপনার ডাইনামিক এবং স্ট্যাটিক নিয়মগুলো জুড়ে এই পদ্ধতিটি ব্যবহার করার পরামর্শ দিই:

  • আপনার অ্যাপ ম্যানিফেস্টে, সম্ভাব্য সর্বাধিক বিস্তৃত পরিসরের নিয়ম সেট করুন, যেমন শুধুমাত্র স্কিম এবং ডোমেইন ঘোষণা করার মাধ্যমে।
  • আরও পরিমার্জনের জন্য সার্ভার-সাইডের ডাইনামিক নিয়ম, যেমন পাথ-লেভেল রাউটিং, ব্যবহার করুন।

এই আদর্শ কনফিগারেশনের মাধ্যমে, আপনি প্রয়োজন অনুযায়ী assetlinks.json ফাইলে ডায়নামিকভাবে নতুন অ্যাপ লিঙ্ক পাথ যোগ করতে পারবেন, এই জেনে যে সেগুলি আপনার অ্যাপ ম্যানিফেস্টে সেট করা বিস্তৃত পরিধির মধ্যেই থাকবে।

আপনার নিয়মগুলো সঠিকভাবে পরিচালনার জন্য, একটি নির্দিষ্ট সাইট, রিলেশন এবং অ্যাপের জন্য স্টেটমেন্টগুলোতে কেবল একটিই dynamic_app_link_components অবজেক্ট ডিক্লেয়ার করুন।

  • একই সাইট, রিলেশন এবং অ্যাপের জন্য একাধিক স্টেটমেন্ট খুঁজুন, যেগুলোতে একটি dynamic_app_link_components অবজেক্ট ডিক্লেয়ার করা হয়েছে।
  • একই স্টেটমেন্টে ঘোষিত একাধিক dynamic_app_link_components অবজেক্ট খুঁজুন।

এই ধরনের ক্ষেত্রে, অ্যান্ড্রয়েড কোন ডাইনামিক রুলস কনফিগারেশনটি ব্যবহৃত হবে তার কোনো নিশ্চয়তা দেয় না।

পূর্ববর্তী অ্যাপ লিঙ্ক কনফিগারেশনগুলির সাথে ডায়নামিক নিয়মগুলির সামঞ্জস্যতা

আপনি যদি ইতিমধ্যেই অ্যাপ লিঙ্ক সমর্থন করে থাকেন, তাহলে সরাসরি আপনার বিদ্যমান assetlinks.json ফাইলে ডাইনামিক অ্যাপ লিঙ্কের জন্য সমর্থন যোগ করতে পারেন। আপনার অ্যাপ লিঙ্ক যাচাই করার জন্য রিলেশন ফিল্ডগুলো একই থাকবে, এবং আপনি অন্য কোনো পরিবর্তন ছাড়াই ডাইনামিক নিয়মের জন্য নতুন রিলেশন এক্সটেনশন ফিল্ডগুলো যোগ করতে পারবেন।

অ্যান্ড্রয়েড ১৪ (এপিআই লেভেল ৩৪ বা তার আগের) চালিত ডিভাইসগুলো ডাইনামিক রুলের জন্য নতুন রিলেশন এক্সটেনশন ফিল্ডগুলোকে উপেক্ষা করে, অন্যদিকে অ্যান্ড্রয়েড ১৫ এবং তার পরবর্তী সংস্করণ চালিত ডিভাইসগুলো সেই রুলগুলোকে আপনার ম্যানিফেস্টে সংজ্ঞায়িত রুলগুলোর সাথে একীভূত করে নেবে।

JSON যাচাইকরণ ফাইলটি প্রকাশ করুন

আপনাকে অবশ্যই আপনার JSON যাচাইকরণ ফাইলটি নিম্নলিখিত স্থানে প্রকাশ করতে হবে:

https://domain.name/.well-known/assetlinks.json

নিম্নলিখিত বিষয়গুলো নিশ্চিত করুন:

  • assetlinks.json ফাইলটি application/json কন্টেন্ট-টাইপ সহ পরিবেশন করা হয়।
  • আপনার অ্যাপের ইন্টেন্ট ফিল্টারগুলো ডেটা স্কিম হিসেবে HTTPS ঘোষণা করুক বা না করুক, assetlinks.json ফাইলটি অবশ্যই একটি HTTPS সংযোগের মাধ্যমে অ্যাক্সেসযোগ্য হতে হবে।
  • assetlinks.json ফাইলটি অবশ্যই কোনো রিডাইরেক্ট ছাড়াই অ্যাক্সেসযোগ্য হতে হবে (কোনো ৩০১ বা ৩০২ রিডাইরেক্ট নয়)।
  • যদি আপনার অ্যাপ লিঙ্কগুলি একাধিক হোস্ট ডোমেন সমর্থন করে, তাহলে আপনাকে প্রতিটি ডোমেনে assetlinks.json ফাইলটি প্রকাশ করতে হবে। একাধিক হোস্টের জন্য অ্যাপ লিঙ্কিং সমর্থন দেখুন।
  • ম্যানিফেস্ট ফাইলে এমন কোনো টেস্ট ইউআরএল (URL) রেখে আপনার অ্যাপ প্রকাশ করবেন না যা সর্বসাধারণের জন্য অ্যাক্সেসযোগ্য নাও হতে পারে (যেমন, যেগুলো শুধুমাত্র ভিপিএন (VPN) দিয়ে অ্যাক্সেস করা যায়)। এই ধরনের ক্ষেত্রে একটি সমাধান হলো, ডেভ বিল্ডের (dev build) জন্য একটি ভিন্ন ম্যানিফেস্ট ফাইল তৈরি করতে বিল্ড ভ্যারিয়েন্ট (build variants) কনফিগার করা

নিম্নলিখিত সম্পর্কিত নির্দেশিকাগুলো দেখুন: