প্রকল্প সম্পর্কে

js-fair-consent একটি ওপেন‑সোর্স সম্মতি ব্যবস্থাপন সমাধান যা ওয়েবসাইটকে ভিজিটরের গোপনীয়তা সম্মান করতে সক্ষম করে এবং নৈতিক ও আইনীয়ভাবে অ্যানালিটিক্স ও márketিং টুল ব্যবহার করতে সক্ষম করে। এই লাইব্রেরি একটি সম্মতি ব্যানার প্রদান করে (HTML গঠন এবং CSS এর মাধ্যমে সম্পূর্ণরূপে কাস্টমাইজযোগ্য), যা যেকোনো অ্যানালিটিক্স স্ক্রিপ্ট লোড করার আগে ভিজিটর থেকে অনুমতি माँगे। একবার অনুমতি দেওয়া হয়—or নিষিদ্ধ করা হয়—উপযুক্ত পরিষেবাগুলি অ্যাসínক্রোনাস এবং নন‑ব্লকিংভাবে লোড হয়, আধুনিক ওয়েব কর্মক্ষমতার অনুসারে। সমর্থিত অ্যানালিটিক্স প্রদানকারী - Google Analytics (gtag.js এর মাধ্যমে), Consent Mode v2 সমর্থন সহ (`consent-only` বা `preload` মোড) - Matomo, এর নেটিভ সম্মতি API ব্যবহার করে (`requireConsent`, `rememberConsentGiven`, `forgetConsentGiven`) - Umami, কোনো প্রি‑লোড মোড না থাকায়, যা সম্মতি দেওয়ার পরে পুনরায় রেন্ডার থেকে এড়াতে সাহায্য করে - Hotjar, শুধুমাত্র بازاریকরণ বা ব্যক্তিগতকরণ সম্মতি দেওয়া হলে শর্তভিত্তিকভাবে লোড হয় প্রধান বৈশিষ্ট্য - অ্যাসínক্রোনাস, বিলম্বিত স্ক্রিপ্ট লোডিং, ফলে পৃষ্ঠা রেন্ডারিং কখনো ব্লক করা হয় না - গ্লোবাল প্রাইভেসি কন্ট্রোল (GPC) এবং Do-Not-Track (DNT) সিগন্যাল স্বয়ংক্রিয়ভাবে সম্মান করা হয় — যখন কোনো একটি সনাক্ত করা হয়, ব্যানার লুকানো হয় এবং সব ঐচ্ছিক টুল বন্ধ থাকে - গোপনীয়তা‑by‑design ডিফল্ট: স্পষ্ট সম্মতি না পাওয়া পর্যন্ত কোনো কুকি সেট হয় না, নিরাপদ কুকি বৈশিষ্ট্য (`SameSite=Lax`, শুধুমাত্র HTTPS) - ঐচ্ছিক গ্রানুলার সম্মতি: ভিজিটরAnalytics, بازاریকরণ, ব্যক্তিগতকরণ মতো আলাদা‑আলাদা বিভাগগুলোকে স্বাধীনভাবে অনুমোদন বা অস্বীকার করতে পারে, একটি একক সব‑কিছু‑অথবা‑কিছু না নির্বাচনের পরিবর্তে - CSP‑নিরাপত্তা: `nonce` এবং `integrity` atribুত সমর্থন করে, যা কঠ Content Security Policy সেট‑আপের জন্য উপযোগী - বিল্ট‑ইন i18n: ডিফল্টরূপে ইংরেজি ও পোলিশ অনুবাদ সহ, অন্যান্য ভাষার জন্য প্রসারযোগ্য - CDN‑প্রস্তুত: jsDelivr বা GitHub Pages থেকে সরাসরি বিতরণ योग্য কনফিগারেশন লাইব্রেরি `ConsentAnalytics.init()`‑এ একটি ساده জাভাস্ক্রিপ্ট অবজেক্ট পাস করে আরম্ভ করা হয়। ব্যবহারকারী mereka সমর্থন করতে চান এমন পরিষেবাগুলো ঘোষণা করে, তাদের ID‑গুলো (উদাহরণ: GA মেজারমেন্ট আইডি, Umami ওয়েবসাইট আইডি, Matomo URL এবং সাইট আইডি, Hotjar প্রোজেক্ট আইডি এবং সংস্করণ) প্রদান করে, এবং `debug`, `locale` এবং `granular` সম্মতি সক্রিয় করার মতো বিকল্পগুলি সেট করে। যদি `granular` সম্মতি সক্রিয় করা হয়, সংরক্ষিত কুকি একটি JSON অবজেক্ট হয়ে যায় যা প্রতিটি বিভাগকে এর অনুমোদন স্থিতিতে ম্যাপ করে, এবং প্রতিটি পরিষেবা লোড করার আগে ilgili বিভাগের মান চেক করে। পাবলিক API লাইব্রেরি প্রোগ্রাম্যাটিক্স অ্যাক্সেসের জন্য একটি ছোট পদ্ধতি সমূহ প্রকাশ করে: - `ConsentAnalytics.hasConsent()` — কোনো সম্মতি দেওয়া হয়েছে কিনাboolean ফেরত দেয় - `ConsentAnalytics.readPrefs()` — পুরো সম্মতি পছন্দ অবজেক্ট ফেরত দেয় - `ConsentAnalytics.writePrefs(prefs)` — একটি নতুন পছন্দ অবস্থা সংরক্ষণ করে - `ConsentAnalytics.revokeConsent()` — সংরক্ষিত সম্মতি মুছে ফেলে এবং ব্যানার আবার দেখায় - `ConsentAnalytics.trackPageView()` — ম্যানুয়ালি পৃষ্ঠা দর্শন ট্রিগার করে (SPA‑স জন্য উপযোগী) প্রকল্পটি MIT‑লাইসেন্সে মুক্ত এবং Rafał Masiarek দ্বারা তৈরি করা হয়েছে।