Hotjar হিটম্যাপ এবং সেশন রেকর্ডিং কুকি সম্মতি ইন্টিগ্রেশন গাইড: প্রকাশকদের জন্য ২০২৬ প্লেবুক

Hotjar টুলিং স্ট্যাকে একটি অনন্য স্থান অধিকার করে। এটি Google Analytics-এর মতো কোনো ওয়েব অ্যানালিটিক্স প্ল্যাটফর্ম নয়, Amplitude বা Mixpanel-এর মতো কোনো প্রোডাক্ট অ্যানালিটিক্স প্ল্যাটফর্ম নয় এবং কোনো ট্যাগ ম্যানেজারও নয়। এটি একটি ব্যবহারকারীর অভিজ্ঞতা গবেষণা সরঞ্জাম যা বিশেষভাবে রেকর্ড করার জন্য বিদ্যমান যে পৃথক ব্যবহারকারীরা একটি পৃষ্ঠায় কী করে — তারা মাউস কোথায় সরায়, কোথায় ক্লিক করে, কোথায় স্ক্রোল করে, কোথায় দ্বিধা করে এবং সেশন রেকর্ডিংয়ের ক্ষেত্রে স্ক্রিনে ঠিক কী টাইপ করেছিল এবং কী দেখা গিয়েছিল। সেই সূক্ষ্মতাই হল পণ্য। এ কারণেই নিয়ন্ত্রকরা সেশন রিপ্লেকে আচরণগত প্রক্রিয়াকরণের সর্বোচ্চ ঝুঁকিপূর্ণ বিভাগগুলির মধ্যে একটি হিসেবে চিহ্নিত করেছেন এবং একটি অসতর্ক Hotjar ডিপ্লয়মেন্ট হল একটি অন্যথায় সম্মতিযোগ্য ওয়েবসাইটের সম্মতির বাইরে যাওয়ার সবচেয়ে সহজ উপায়গুলির মধ্যে একটি। CNIL, Garante এবং EDPB সবাই সেশন রিপ্লে আচরণকে বিশেষভাবে লক্ষ্য করে নির্দেশিকা প্রকাশ করেছে এবং ২০২৬ সালের EDPB কুকি ব্যানার টাস্ক ফোর্স এটিকে অগ্রাধিকার বিভাগ হিসেবে বিবেচনা করছে। সুখবর হল Hotjar সম্মতি-প্রথম ডিপ্লয়মেন্টের জন্য এই বিভাগের আরও ভালো-ইঞ্জিনিয়ারড সরঞ্জামগুলির মধ্যে একটি — যতক্ষণ প্রকাশক বিদ্যমান নিয়ন্ত্রণগুলি আসলে ব্যবহার করেন।

কেন Hotjar স্পষ্ট সম্মতি প্রয়োজন

Hotjar-এর সংগ্রহ প্রোফাইল হল যা প্রতিটি গুরুত্বপূর্ণ ফ্রেমওয়ার্কে সম্মতি বাধ্যবাধকতা ট্রিগার করে। ডিফল্ট ইনিশিয়ালাইজেশনে Hotjar ট্র্যাকিং স্ক্রিপ্ট পৃষ্ঠা লোডের মিলিসেকেন্ডের মধ্যে ব্রাউজারে কমপক্ষে তিনটি ফার্স্ট-পার্টি কুকি লেখে — _hjSessionUser_{siteId}, _hjSession_{siteId} এবং একটি সিরিজ সাপ্রেশন ও আসছে-সূত্র কুকি। তারপর স্ক্রিপ্ট কার্সার কোঅর্ডিনেট, ক্লিক কোঅর্ডিনেট, স্ক্রোল পজিশন, ভিউপোর্ট সাইজ এবং সেশন রেকর্ডিং সক্ষম হলে একটি বেসলাইনের বিপরীতে ডিফার করা সম্পূর্ণ রেন্ডার করা DOM-এর একটি অবিচ্ছিন্ন রেকর্ড স্ট্রিম করা শুরু করে।

ePrivacy নির্দেশিকার ৫(৩) অনুচ্ছেদের অধীনে সেই কুকিগুলির প্রতিটি একটি স্টোরেজ-অ্যান্ড-অ্যাকসেস অপারেশন যার জন্য EEA, UK, সুইজারল্যান্ড এবং একই মান আমদানি করা যেকোনো এখতিয়ারে পূর্ববর্তী, স্বাধীনভাবে দেওয়া, নির্দিষ্ট, অবহিত এবং দ্ব্যর্থহীন সম্মতি প্রয়োজন। GDPR-এর অধীনে আচরণগত স্ট্রিম ব্যক্তিগত ডেটার প্রক্রিয়াকরণ গঠন করে কারণ কার্সার ট্রেস, IP ঠিকানা, ডিভাইস ফিঙ্গারপ্রিন্ট এবং সেশন শনাক্তকারীর সমন্বয় একজন ব্যক্তিকে আলাদা করার জন্য যথেষ্ট। CCPA এবং CPRA-এর অধীনে একই সংগ্রহটি বিক্রয় বা ভাগাভাগি হিসেবে গণ্য হয় যদি না প্রকাশকের Hotjar-এর সাথে প্রাসঙ্গিক পরিষেবা প্রদানকারী চুক্তি থাকে — যা Hotjar তার CCPA-সম্মত DPA-এর মাধ্যমে অফার করে, কিন্তু কেবলমাত্র যখন ইন্টিগ্রেশন সঠিকভাবে কনফিগার করা হয় তখনই কার্যকর হয়। EDPB-এর সেশন রিপ্লে নির্দেশিকার অধীনে বারটি আরও উঁচু: রিপ্লে অবশ্যই একটি নির্দিষ্ট, বৈধ UX-গবেষণা উদ্দেশ্যের সাথে আবদ্ধ হতে হবে, রিটেনশন পিরিয়ড অবশ্যই সর্বনিম্ন প্রয়োজনীয় হতে হবে এবং ডেটা বিষয়কে কেবল রেকর্ডিং বিদ্যমান তা নয় বরং তাদের নিজস্ব সেশন একজন বিশ্লেষক দ্বারা রিপ্লে করা হতে পারে সে সম্পর্কেও জানাতে হবে।

Hotjar সম্মতির আগে কী সংগ্রহ করে — এবং কী সাপ্রেস করতে হবে

সবচেয়ে সাধারণ বাস্তবায়ন ভুল হল যা Hotjar-এর নিজস্ব কুইকস্টার্টের সাথে শিপ করে: ট্র্যাকিং স্ক্রিপ্ট সরাসরি পৃষ্ঠার <head>-এ পেস্ট করা। এটি কাজ করে, কিন্তু কুকি ব্যানার রেন্ডার হওয়ার আগেই Hotjar লোড করে, যার মানে হল কুকি সেট করা হয় এবং প্রথম পৃষ্ঠা ভিউতেই আচরণগত রেকর্ডিং শুরু হয় — ব্যবহারকারী পরে যাই সিদ্ধান্ত নিন না কেন। এই প্যাটার্নে রায় দিয়েছে এমন প্রতিটি EU নিয়ন্ত্রক একইভাবে রায় দিয়েছে: সম্মতির আগে সেট করা কুকি অবৈধ এবং প্রকাশক দায়বদ্ধ।

একটি সম্মতিসম্পন্ন ইন্টিগ্রেশন তাই প্রাসঙ্গিক সম্মতি বিভাগ দেওয়া না হওয়া পর্যন্ত Hotjar স্ক্রিপ্টকে মোটেও লোড হতে বাধা দিতে হবে। এটি করার সবচেয়ে পরিষ্কার উপায় হল Hotjar স্নিপেটকে একটি সম্মতি-গেটেড <script> ট্যাগের মধ্যে মুড়ে দেওয়া যা CMP শুধুমাত্র ব্যবহারকারী অ্যানালিটিক্স বা প্রোডাক্ট-রিসার্চ বিভাগে অপ্ট ইন করার পরে ইনজেক্ট করে। যদি স্ক্রিপ্ট একটি ট্যাগ ম্যানেজারের মাধ্যমে লোড করা হয় তাহলে সমতুল্য হল ট্রিগারটিকে All Pages-এর পরিবর্তে একটি সম্মতি-প্রদত্ত ইভেন্টে সেট করা। Hotjar-এর নিজস্ব ডকুমেন্টেশন এখন স্পষ্টভাবে এই প্যাটার্নের সুপারিশ করে এবং প্ল্যাটফর্ম hj('consent', 'grant') API প্রকাশ করে এমন ক্ষেত্রে যেখানে স্ক্রিপ্ট উপস্থিত থাকতে হবে কিন্তু সম্মতি রেকর্ড না হওয়া পর্যন্ত নিষ্ক্রিয় থাকতে হবে।

Hotjar যে কুকি এবং স্টোরেজ লেখে

Hotjar Tracking Code 6.x নিম্নলিখিত শনাক্তকারীগুলি লেখে, যার সবগুলিই অ-অপরিহার্য এবং সম্মতি প্রয়োজন: ব্যবহারকারী শনাক্তকারী সম্বলিত ৩৬৫ দিনের মেয়াদে _hjSessionUser_{siteId}, সেশন শনাক্তকারী সম্বলিত ৩০ মিনিটের মেয়াদে _hjSession_{siteId}, _hjFirstSeen, _hjIncludedInSessionSample_{siteId}, _hjAbsoluteSessionInProgress এবং সার্ভে বা ফিডব্যাক উইজেট সক্রিয় থাকলে বেশ কয়েকটি ক্যাম্পেইন-অ্যাট্রিবিউশন কুকি। সেশন রেকর্ডিংগুলি নিজে Hotjar-এর সার্ভারে সংরক্ষিত এবং সেশন শনাক্তকারীর সাথে কীড — তাই সম্মতি প্রত্যাহার করতে হলে Hotjar-এর API বা প্রোডাক্টের মধ্যে ব্যবহারকারী-মুছে ফেলা ফ্লোর মাধ্যমে একটি মুছে ফেলার অনুরোধও সংকেত দিতে হবে।

Hotjar-কে সম্মতি ফ্রেমওয়ার্কে ম্যাপ করা

Hotjar IAB TCF বা IAB Global Privacy Platform-এর সাথে নেটিভভাবে ইন্টিগ্রেট করে না। এটি কোনো বিজ্ঞাপন-প্রযুক্তি বিক্রেতা নয় এবং কখনও তা হওয়ার উদ্দেশ্যে তৈরি হয়নি। তবে এটি analytics_storage সিগন্যালের মাধ্যমে Google Consent Mode v2-এর সাথে ইন্টিগ্রেট করে এবং নিজস্ব নেটিভ সম্মতি API প্রকাশ করে যার সাথে যেকোনো CMP বাইন্ড করতে পারে। নিয়ন্ত্রকের পর্যালোচনা টিকে থাকা প্যাটার্নটি প্রতিটি Hotjar ক্ষমতাকে আলাদা সম্মতি গেট হিসেবে বিবেচনা করে।

যে ইন্টিগ্রেশন প্যাটার্ন কাজ করে

রেফারেন্স ডিপ্লয়মেন্টের চারটি অংশ রয়েছে: একটি CMP যা রিয়েল-টাইম সম্মতি পরিবর্তন ইভেন্ট প্রকাশ করে, একটি ডিফার্ড স্ক্রিপ্ট লোডার যা অ্যানালিটিক্স সম্মতি ফায়ার হওয়ার পরেই Hotjar স্নিপেট ইনজেক্ট করে, একটি সেশন-রেকর্ডিং সাপ্রেশন লেয়ার যা একটি পৃথক গেট খোলা না হওয়া পর্যন্ত রেকর্ডিং ডিফল্টরূপে অফে সেট করে এবং একটি ইনপুট-মাস্কিং কনফিগারেশন যা সম্মতি দেওয়া হলেও নিয়ন্ত্রক সংবেদনশীল বিবেচনা করবে এমন যেকোনো ফিল্ড হার্ড-সাপ্রেস করে। চতুর্থ পয়েন্টটি প্রায়ই উপেক্ষিত হয়: ইনপুট মাস্কিং সম্মতির বিকল্প নয়, তবে এটি বিপর্যয়ের বিকল্প যখন বৈধ গবেষণার জন্য সম্মতি দেওয়া হয় এবং একজন ব্যবহারকারী ঘটনাক্রমে একটি ফ্রি-টেক্সট ফিল্ডে সংবেদনশীল ডেটা পেস্ট করেন।

ওয়েব ইম্প্লিমেন্টেশন

ওয়েবে সবচেয়ে পরিষ্কার প্যাটার্ন হল CMP-এর সম্মতি পরিবর্তন ইভেন্টে সাবস্ক্রাইব করা, তারপর অ্যানালিটিক্স উদ্দেশ্য false থেকে true-তে পরিবর্তিত হলে শর্তসাপেক্ষে Hotjar স্নিপেট ইনজেক্ট করা। async অ্যাট্রিবিউট সেট করে ট্র্যাকিং কোড ইনজেক্ট করতে document.createElement('script') ব্যবহার করুন এবং একটি onload হ্যান্ডলার সংযুক্ত করুন যা hj('identify', userId, properties) কল করে শুধুমাত্র যদি একটি সার্ভার-যাচাইকৃত ব্যবহারকারী শনাক্তকারী বিদ্যমান থাকে। সম্মতি প্রত্যাহার করা হলে, hj('consent', 'revoke') কল করুন, document.cookie-এর মাধ্যমে সমস্ত _hj কুকি মেয়াদোত্তীর্ণ করুন এবং ব্যবহারকারীর পূর্ববর্তী সেশন রেকর্ডিংয়ের জন্য Hotjar Data API-এর মাধ্যমে একটি মুছে ফেলার অনুরোধ পাঠান। ব্যানারের মতো একই রেন্ডার পাসে Hotjar-কে অলসভাবে ইনিশিয়ালাইজ করবেন না — স্ক্রিপ্টকে একটি স্পষ্ট অনুমতির জন্য অপেক্ষা করতে হবে এবং স্ক্রিপ্ট ফায়ার হওয়ার আগে একটি টাইমস্ট্যাম্প এবং সম্মতি স্ট্রিং সহ অনুমতি রেকর্ড করতে হবে।

ইনপুট মাস্কিং এবং সংবেদনশীল-ডেটা সাপ্রেশন

Hotjar-এর সেশন রেকর্ডার তিনটি মাস্কিং মোড সহ আসে: Suppress mode, যা পাসওয়ার্ড ফিল্ড এবং data-hj-suppress অ্যাট্রিবিউট দিয়ে চিহ্নিত যেকোনো উপাদানের জন্য ডিফল্ট; Whitelist mode, যেখানে শুধুমাত্র স্পষ্টভাবে অপ্ট-ইন করা ইনপুট রেকর্ড করা হয়; এবং Mask mode, যেখানে কীস্ট্রোক অ্যাস্টেরিস্ক হিসেবে রেকর্ড করা হয়। GDPR-এর বিশেষ-বিভাগ নিয়ম এবং CCPA-এর সংবেদনশীল-ব্যক্তিগত-তথ্য সংজ্ঞার অধীনে, যেকোনো ফিল্ড যা স্বাস্থ্য তথ্য, আর্থিক বিবরণ, সরকারি শনাক্তকারী, বায়োমেট্রিক ডেটা, সুনির্দিষ্ট ভূ-অবস্থান বা ব্যক্তিগত যোগাযোগের বিষয়বস্তু ক্যাপচার করতে পারে সেটিকে ব্যবহারকারীর সম্মতি অবস্থা নির্বিশেষে Suppress mode ব্যবহার করতে হবে। ফিল্ড স্তরের পরিবর্তে ফর্ম স্তরে data-hj-suppress সেট করা সবচেয়ে নিরাপদ প্যাটার্ন — এটি পুরো ফর্মকে সাপ্রেস করে এমনকি যদি একজন ডেভেলপার পরে একটি নতুন ফিল্ড যোগ করেন যা তারা পৃথকভাবে চিহ্নিত করতে ভুলে যান।

সিঙ্গেল-পেজ অ্যাপ্লিকেশন এবং রুট পরিবর্তন

SPAs (React, Vue, Angular, Svelte)-এর জন্য Hotjar স্নিপেট ডিফল্টরূপে শুধুমাত্র প্রাথমিক পৃষ্ঠা লোডে বাইন্ড করে। ভার্চুয়াল পৃষ্ঠা ট্রানজিশন ট্র্যাক করতে বুটস্ট্র্যাপকে প্রতিটি রুট পরিবর্তনে hj('stateChange', newPath) কল করতে হবে। এই কলটি সেই সময়ে Hotjar যে সম্মতির অবস্থা ধারণ করে তা সম্মান করে, তাই CMP গেটিং লজিক ডুপ্লিকেট করার প্রয়োজন নেই — কিন্তু পৃষ্ঠা ভিউয়ের মধ্যে সম্মতি প্রত্যাহার করা হলে রুট পরিবর্তন নিজেই একটি তাজা স্ক্রিপ্ট লোড ট্রিগার করা উচিত নয়।

ইন্টিগ্রেশন যাচাই করা

যাচাইকরণ পদক্ষেপ হল নিয়ন্ত্রকরা যা পরীক্ষা করে এবং প্রকাশকরা প্রায়ই যা এড়িয়ে যায়। একটি সঠিকভাবে ইন্টিগ্রেটেড Hotjar ডিপ্লয়মেন্ট ক্রমানুসারে চারটি পরীক্ষায় উত্তীর্ণ হতে হবে। প্রথমত, ব্যানার দেখানো কিন্তু কোনো পছন্দ না করা একটি তাজা ব্রাউজার সেশন static.hotjar.com, script.hotjar.com বা vars.hotjar.com-এ শূন্য অনুরোধ এবং document.cookie-এ শূন্য _hj কুকি তৈরি করবে। দ্বিতীয়ত, অ্যানালিটিক্স প্রত্যাখ্যান করলে সেই অবস্থা বজায় থাকবে — কোনো স্ক্রিপ্ট লোড নেই, কোনো রেকর্ডিং নেই, কোনো কুকি নেই। তৃতীয়ত, অ্যানালিটিক্স গ্রহণ করলে সঠিক SameSite অ্যাট্রিবিউট সহ একটি স্ক্রিপ্ট লোড এবং প্রত্যাশিত _hjSessionUser_hjSession কুকি তৈরি হওয়া উচিত এবং পাঁচ মিনিটের মধ্যে Hotjar ড্যাশবোর্ডে একটি হিটম্যাপ রেকর্ডিং উপস্থিত হওয়া উচিত। চতুর্থত, পরবর্তীতে সম্মতি প্রত্যাহার করলে অবিলম্বে আরও রেকর্ডিং বন্ধ হওয়া, কুকি মেয়াদোত্তীর্ণ হওয়া এবং একটি মুছে ফেলার অনুরোধ ট্রিগার হওয়া উচিত — বিলম্বিত পরিষ্কার একটি অনুসন্ধান।

অডিট ট্রেইল আলাদাভাবে গুরুত্বপূর্ণ। নিয়ন্ত্রকরা প্রকাশকের কাছ থেকে Hotjar অ্যাকাউন্টের যেকোনো রেকর্ডিংয়ের জন্য প্রমাণ করতে সক্ষম হওয়ার প্রত্যাশা করেন যে যে ব্যবহারকারী এটি তৈরি করেছেন তিনি ক্যাপচারের মুহূর্তে বৈধ সম্মতি দিয়েছিলেন। স্ট্যান্ডার্ড প্যাটার্ন হল hj('identify', userId, { consent_version: 'v3', consent_ts: ts })-এর মাধ্যমে Hotjar ব্যবহারকারী রেকর্ডে সম্মতির সংস্করণ এবং টাইমস্ট্যাম্প একটি কাস্টম অ্যাট্রিবিউট হিসেবে এম্বেড করা। এটি যেকোনো নির্দিষ্ট রেকর্ডিংকে একটি নির্দিষ্ট সম্মতি লগ এন্ট্রিতে ট্রেস করার যোগ্য করে তোলে — এটি EDPB নির্ধারিত মান এবং প্রকাশকরা যেখানেই কাজ করুন না কেন যে মান গ্রহণ করা উচিত। একটি সঠিকভাবে গেটেড ডিপ্লয়মেন্ট, ডিফল্টরূপে সাপ্রেস করা ইনপুট মাস্কিং এবং প্রত্যাহারে সক্রিয় হওয়া একটি মুছে ফেলার পথের সাথে মিলিত, হল যা Hotjar-কে একটি গবেষণা স্ট্যাকের রক্ষাযোগ্য অংশ করে তোলে বরং একটি সম্মতি দায় নয়।

← ব্লaderegistrdelays delays সবগুলো পড়ুন →