অ্যানালিটিক্স ট্র্যাকিং: গোপনীয়তাকে অগ্রাধিকার দিয়ে ইভেন্ট সংগ্রহ
এই নিবন্ধে ব্যাখ্যা করা হয়েছে কিভাবে আমরা ব্যবহারকারীর আচরণ ট্র্যাক করি, গোপনীয়তা রক্ষা করে এবং বট ট্রাফিক এড়িয়ে।
সমস্যা: ব্যবহারকারীর আচরণ বোঝা
আমাদের জানা দরকার:
-
ব্যবহারকারীরা কোন পৃষ্ঠাগুলো দেখছে
-
তারা কোন পণ্যগুলো দেখছে
-
ট্রাফিক কোথা থেকে আসছে (গুগল অ্যাডস, অর্গানিক, সোশ্যাল)
-
কোন প্রচারণা রূপান্তর ঘটাচ্ছে
কিন্তু আমাদের অবশ্যই এড়াতে হবে:
-
বট এবং ক্রলার ট্র্যাক করা
-
ব্যক্তিগতভাবে সনাক্তযোগ্য তথ্য (PII) সংরক্ষণ করা
-
গোপনীয়তা নীতিমালা লঙ্ঘন করা
সমাধান: ক্লায়েন্ট-সাইড + সার্ভার-সাইড ট্র্যাকিং
ক্লায়েন্ট-সাইড: জাভাস্ক্রিপ্ট ট্র্যাকিং
ভিজিটর আইডি: কুকিতে সংরক্ষিত এলোমেলো আইডি (৩৬৫ দিন)
সেশন আইডি: সেশনস্টোরেজে সংরক্ষিত এলোমেলো আইডি (ব্রাউজার বন্ধ না হওয়া পর্যন্ত)
ক্যাম্পেইন প্যারামিটার: URL থেকে বের করে সেশনস্টোরেজে সংরক্ষণ করা
ট্র্যাক করা প্যারামিটারসমূহ:
-
gclid- গুগল ক্লিক আইডি (সার্চ অ্যাডস) -
gbraid- গুগল অ্যাডস ক্লিক আইডি (শপিং অ্যাডস) -
wbraid- গুগল অ্যাডস ক্লিক আইডি (iOS) -
fbclid- ফেসবুক ক্লিক আইডি -
srsltid- গুগল অর্গানিক সার্চ রেজাল্ট আইডি -
utm_source,utm_medium,utm_campaign,utm_term,utm_content
সংরক্ষণ: হোয়াটসঅ্যাপ/ফোন ক্লিক অ্যাট্রিবিউশনের জন্য প্যারামিটারগুলো কুকিতে সংরক্ষণ করা হয় (৩০ মিনিট)
সার্ভার-সাইড: সমৃদ্ধকরণ
সার্ভার ইভেন্টগুলোকে নিম্নলিখিত তথ্য দিয়ে সমৃদ্ধ করে:
জিওআইপি ডেটা: আইপি ঠিকানা থেকে দেশ, অঞ্চল, শহর
ইউজার-এজেন্ট পার্সিং: ব্রাউজার, অপারেটিং সিস্টেম, ডিভাইসের ধরন
টাইমস্ট্যাম্প: সার্ভার সময় (UTC)
বট শনাক্তকরণ: পরিচিত বট ইউজার-এজেন্ট ফিল্টার করা
ইভেন্টের ধরন
পৃষ্ঠা প্রদর্শন: ব্যবহারকারী একটি পৃষ্ঠা দেখছে
পণ্য প্রদর্শন: ব্যবহারকারী পণ্যের পৃষ্ঠা দেখছে
কার্টে যোগ করা: ব্যবহারকারী কার্টে পণ্য যোগ করছে
চেকআউট: ব্যবহারকারী চেকআউট শুরু করছে
ক্রয়: ব্যবহারকারী ক্রয় সম্পন্ন করছে
হোয়াটসঅ্যাপ ক্লিক: ব্যবহারকারী হোয়াটসঅ্যাপ বাটনে ক্লিক করছে
ফোন ক্লিক: ব্যবহারকারী ফোন নম্বরে ক্লিক করছে
ডেটা প্রবাহ
sequenceDiagram
participant User
participant JS as JavaScript
participant API as /api/analytics
participant Firehose as Kinesis Firehose
participant S3
User->>JS: Visit page
JS->>JS: Extract URL params
(gclid, utm_*, etc.)
JS->>JS: Store in sessionStorage
JS->>API: POST event + params
API->>API: Enrich with GeoIP
API->>API: Parse User-Agent
API->>API: Filter bots
API->>Firehose: Send enriched event
Firehose->>S3: Store in analytics bucketবট শনাক্তকরণ
আমরা একাধিক সংকেত ব্যবহার করে বট ট্রাফিক ফিল্টার করি:
ইউজার-এজেন্ট প্যাটার্ন: পরিচিত বট স্ট্রিং (Googlebot, Bingbot ইত্যাদি)
আচরণগত প্যাটার্ন: খুব দ্রুত, অনেক বেশি অনুরোধ
জাভাস্ক্রিপ্টের অনুপস্থিতি: বটরা প্রায়ই JS এক্সিকিউট করে না
বর্জন কুকি: tv_exclude=true সব ধরনের ট্র্যাকিং বন্ধ করে দেয়
গোপনীয়তা সুরক্ষা
কোনো PII নেই: আমরা কখনো নাম, ইমেল, ফোন নম্বর সংরক্ষণ করি না
বেনামী আইপি: সংরক্ষণের আগে আইপির শেষ অকটেট সরানো হয়
ক্রস-সাইট ট্র্যাকিং নেই: কুকি শুধুমাত্র ফার্স্ট-পার্টি
অপ্ট-আউট: ব্যবহারকারীরা বর্জন কুকি সেট করতে পারে
ডেটা ধরে রাখা: ইভেন্টগুলো ৯০ দিন পর মুছে ফেলা হয়
শর্তসাপেক্ষ পিক্সেল লোডিং
আমরা শুধুমাত্র প্রাসঙ্গিক হলে ট্র্যাকিং পিক্সেল লোড করি:
গুগল অ্যাডস পিক্সেল: শুধুমাত্র যদি gclid, gbraid, অথবা wbraid উপস্থিত থাকে
লিংকডইন পিক্সেল: শুধুমাত্র যদি msclkid উপস্থিত থাকে
ফেসবুক পিক্সেল: শুধুমাত্র যদি fbclid উপস্থিত থাকে
সুবিধা: দ্রুত পৃষ্ঠা লোড, কম ট্র্যাকিং ওভারহেড
ট্রাফিক উৎস শনাক্তকরণ
আমরা URL প্যারামিটার থেকে ট্রাফিকের উৎস শনাক্ত করি:
গুগল অ্যাডস: gclid, gbraid, wbraid → utm_source=google_ads
গুগল অর্গানিক: srsltid → utm_source=google_search
ফেসবুক: fbclid → utm_source=facebook
লিংকডইন: msclkid → utm_source=linkedin
ডাইরেক্ট: কোন প্যারামিটার নেই → utm_source=direct
রূপান্তর ট্র্যাকিং
আমরা ফানেলের মাধ্যমে রূপান্তর ট্র্যাক করি:
পণ্য প্রদর্শন → কার্টে যোগ করা → চেকআউট → ক্রয়
প্রতিটি ধাপে অন্তর্ভুক্ত থাকে:
-
ভিজিটর আইডি (অ্যাট্রিবিউশনের জন্য)
-
সেশন আইডি (সেশন বিশ্লেষণের জন্য)
-
ক্যাম্পেইন প্যারামিটার (ROI হিসাবের জন্য)
-
পণ্য SKU (পণ্য বিশ্লেষণের জন্য)
লিড টাচ ট্র্যাকিং
যখন ব্যবহারকারীরা আমাদের সাথে যোগাযোগ করে (হোয়াটসঅ্যাপ, ফোন, ইমেল), আমরা ধারণ করি:
যোগাযোগের পদ্ধতি: হোয়াটসঅ্যাপ, ফোন, ইমেল
ক্যাম্পেইন প্যারামিটার: কুকি থেকে (৩০-মিনিটের উইন্ডো)
পণ্যের প্রসঙ্গ: তারা কোন পণ্যের পৃষ্ঠায় ছিল
সুবিধা: অফলাইন রূপান্তরকে অনলাইন প্রচারণার সাথে অ্যাট্রিবিউট করা
রেট লিমিটিং
অ্যানালিটিক্স এন্ডপয়েন্ট রেট-লিমিটেড:
সীমা: প্রতি আইপির জন্য প্রতি ১০ মিনিটে ১০০ অনুরোধ
সুবিধা: অপব্যবহার এবং বট ফ্লাড প্রতিরোধ করে
সংরক্ষণ
ইভেন্টগুলো কাইনেসিস ফায়ারহোসের মাধ্যমে S3 তে সংরক্ষিত হয়:
ফরম্যাট: JSON লাইন (প্রতি লাইনে একটি ইভেন্ট)
পার্টিশনিং: তারিখ অনুযায়ী (বছর/মাস/দিন/ঘন্টা)
কম্প্রেশন: Gzip
ধরে রাখা: ৯০ দিন
প্রশ্ন করা
ইভেন্টগুলো AWS অ্যাথেনার মাধ্যমে প্রশ্ন করা হয়:
স্কিমা: গ্লু ডেটা ক্যাটালগে সংজ্ঞায়িত
প্রশ্ন: S3 ডেটার উপর SQL
ব্যবহারের ক্ষেত্র: ক্যাম্পেইন ROI, পণ্যের জনপ্রিয়তা, ট্রাফিকের উৎস
তথ্যসূত্র
প্রযুক্তিগত ধারণা
-
ওয়েব বিশ্লেষণ - উইকিপিডিয়া
-
নকশা দ্বারা গোপনীয়তা - উইকিপিডিয়া
AWS পরিষেবা
-
কাইনেসিস ফায়ারহোস - AWS ডকুমেন্টেশন
-
অ্যাথেনা - AWS ডকুমেন্টেশন
সম্পর্কিত নিবন্ধ
- মাল্টি-সার্ভার আর্কিটেকচার - যেখানে অ্যানালিটিক্স চলে
সারসংক্ষেপ
আমাদের অ্যানালিটিক্স সিস্টেম গোপনীয়তা রক্ষা করে ব্যবহারকারীর আচরণ ট্র্যাক করে:
ক্লায়েন্ট-সাইড:
-
✅ URL থেকে ক্যাম্পেইন প্যারামিটার বের করা
-
✅ সেশনস্টোরেজে সংরক্ষণ করা (সেশন-স্কোপড)
-
✅ কুকিতে সংরক্ষণ করা (অ্যাট্রিবিউশনের জন্য ৩০ মিনিট)
-
✅ API তে ইভেন্ট পাঠানো
সার্ভার-সাইড:
-
✅ জিওআইপি এবং ইউজার-এজেন্ট দিয়ে সমৃদ্ধ করা
-
✅ বট ট্রাফিক ফিল্টার করা
-
✅ কাইনেসিস ফায়ারহোসে পাঠানো
-
✅ S3 তে সংরক্ষণ করা (তারিখ অনুযায়ী পার্টিশন করা)
গোপনীয়তা:
-
✅ কোনো PII সংরক্ষণ করা হয় না
-
✅ বেনামী আইপি
-
✅ শুধুমাত্র ফার্স্ট-পার্টি কুকি
-
✅ অপ্ট-আউট উপলব্ধ
-
✅ ৯০-দিনের ধরে রাখা
শর্তসাপেক্ষ লোডিং:
-
✅ গুগল অ্যাডস পিক্সেল শুধুমাত্র যদি gclid উপস্থিত থাকে
-
✅ লিংকডইন পিক্সেল শুধুমাত্র যদি msclkid উপস্থিত থাকে
-
✅ ফেসবুক পিক্সেল শুধুমাত্র যদি fbclid উপস্থিত থাকে
এই পদ্ধতিটি অন্তর্দৃষ্টি, গোপনীয়তা এবং কর্মক্ষমতার মধ্যে ভারসাম্য বজায় রাখে।