লাইফসাইকেল (সার্ভারভিত্তিক)
সেশনে আপনার নিজস্ব গ্রাহক ID যুক্ত হওয়ার মুহূর্তে আমাদের সার্ভার থেকে ActiveCampaign, Mailchimp, Iterable বা Klaviyo-তে রিপ্লে লিংক পাঠান।
1. ব্রাউজার ব্রিজের পাশাপাশি এটি কেন আছে
MousePlayer-এর লাইফসাইকেল ব্রিজ ইতিমধ্যে আপনার পৃষ্ঠায় চলা SDK-তে লেখে — Klaviyo, Braze, Customer.io ও আরও ছয়টিতে। এটি একই কাজ ব্রাউজারের বদলে সার্ভার থেকে করে, কারণ বড় দুটি প্ল্যাটফর্মে ব্রাউজারের পথ আদৌ নেই:
- ActiveCampaign-এ ইভেন্টের জন্য ব্রাউজার API নেই। তার
vgo()অ্যাকাউন্ট ও ইমেইল ঠিকানা সেট করে ট্র্যাকিং শুরু করতে পারে — ইভেন্ট পাঠাতে পারে না। ইভেন্ট আলাদা ইভেন্ট কী দিয়ে Event Tracking API-তে যায়, শুধু সার্ভার থেকে। - Mailchimp-এ আছে, তবে নামের তালিকা সীমিত। তার সাইট ট্র্যাকিং পিক্সেল গ্রহণ করে
PAGE_VIEWED,PRODUCT_VIEWED,PURCHASEDও অল্প কিছু আগে নির্ধারিত নাম। কাস্টম ইভেন্টের জায়গা নেই, আর আমাদের ডেটা জোর করে এই নামে পাঠালে:PAGE_VIEWEDআপনার নিজের ডেটা মডেলেই ভুল তথ্য হতো।
Iterable ও Klaviyo-তে সার্ভারের পথ বেশি নির্ভরযোগ্য: অ্যাডব্লকার নেই, লোড হয়েছে কি না অনিশ্চিত SDK নেই, আগে ট্যাব বন্ধের সমস্যা নেই।
2. যা দরকার
তিনটি ঘর; কোনগুলো পূরণ করবেন তা প্ল্যাটফর্ম অনুযায়ী।
| প্ল্যাটফর্ম | অ্যাকাউন্টের ঘর | কী |
|---|---|---|
| ActiveCampaign | actid | ওয়েবসাইট → সাইট ট্র্যাকিং, ইভেন্ট কী-এর পাশে |
| Mailchimp | অডিয়েন্স ID | API কী — রাখতে হবে তার -us14 ধরনের শেষ অংশ, সেখান থেকে ডেটা সেন্টার চেনা হয় |
| Iterable | দরকার নেই — খালি রাখুন | “Allow event track calls” অনুমতিসহ কী |
| Klaviyo | দরকার নেই — খালি রাখুন | একটি ব্যক্তিগত API কী |
তৃতীয় ঘর ইভেন্টের নাম, যে নামে দেখা যাবে। ছোট রাখুন: সর্বোচ্চ 32টি অক্ষর। এটি API-এর সীমা, আমাদের নয়; পাঠানোর সময় নয়, সংরক্ষণ করার সময়ই ছোট করি — নইলে ফর্মে দেখা ও পৌঁছানো তথ্য আলাদা হতো।
Mailchimp: API কী-এর শেষ অংশ রাখুন। শেষ হাইফেনের পরের অংশ (-us14) আপনার অ্যাকাউন্টের ডেটা সেন্টারের নাম দেয়, এবং তা থেকে ঠিকানা তৈরি হয়। তা ছাড়া কী অদৃশ্য জায়গায় ব্যর্থ না হয়ে পরিষ্কার বার্তাসহ প্রত্যাখ্যাত হয়।
3. কখন পাঠায় — কখন পাঠায় না
সেশন শনাক্ত হওয়ার মুহূর্তে: আপনার সাইট কল করলে MousePlayer.setUserId(), আমাদের অ্যানালিটিক্স ব্রিজ স্বতন্ত্র ID পড়লে, অথবা আপনার সার্ভার identify এন্ডপয়েন্ট কল করলে। তার আগে রেকর্ডিং কার তা জানি না।
শুধু ইমেইল ঠিকানাসহ
চারটি প্ল্যাটফর্মই ইমেইল দিয়ে পরিচিতি চেনে। আপনার গ্রাহক ID চুক্তির নম্বর হলে কিছু পাঠানো হয় না — নিশ্চিত ব্যর্থ কাজ সারিতে রাখলে লগ শুধু অপ্রয়োজনীয় বার্তায় ভরত।
পরিচিতিটি আগে থেকেই থাকতে হবে। এই প্ল্যাটফর্মগুলোর কোনোটিই ইভেন্ট থেকে পরিচিতি তৈরি করে না; ঠিকানা না চিনলে ActiveCampaign পুরো ইভেন্টই বাদ দেয়। এই ব্রিজ বিদ্যমান পরিচিতির তথ্য বাড়ায় — আপনার তালিকা তৈরি করে না।
প্রতিটি ইভেন্টে ID থাকে
তাই কাজ আবার চেষ্টা করলেও একই সেশন দুবার গণনা হয় না।
4. অন্য দিকে যা পৌঁছায়
একটি ইভেন্ট, রিপ্লে লিংকসহ এই নামের প্রপার্টিতে: mouseplayer_session_url। খুললেই ঠিক সেই সেশনের রেকর্ডিংয়ে যাবেন।
এরপর আপনার প্ল্যাটফর্মের নিজস্ব নিয়ম: ইভেন্টকে স্বয়ংক্রিয় কাজের ট্রিগার বা সেগমেন্টের শর্ত হিসেবে ব্যবহার করুন, অথবা দলকে পরিচিতি থেকে রেকর্ডিং খুলতে দিন।
কী কখনো আমাদের সার্ভার ছাড়ে না
AES-256-GCM এনক্রিপশনে থাকে, সংরক্ষণের পরে আর দেখানো হয় না, এবং কাজ বহনকারী অভ্যন্তরীণ সারিতে ইচ্ছাকৃতভাবে রাখা হয় না — ওয়ার্কার নিজে ডেটাবেস থেকে নেয়।
HTTP 200 মানে পৌঁছানো নয়
ইভেন্ট প্রত্যাখ্যান করলে ActiveCampaign স্ট্যাটাস 200 ও {"success":0} দিয়ে উত্তর দেয়। আমরা শুধু স্ট্যাটাস নয়, রেসপন্স বডি পড়ি, তাই প্রত্যাখ্যান নীরব সাফল্যের বদলে ডেলিভারি লগে ব্যর্থতা দেখায়।
5. Braze, Customer.io ও Brevo
সার্ভারের পথে আরও তিনটি প্ল্যাটফর্ম। দুটিতে অন্যদের চেয়ে আলাদা একটি জিনিস দরকার: অবস্থান।
| আপনি দেন | যে পরিচয়ে চেনে | |
|---|---|---|
| Braze | REST এন্ডপয়েন্ট ও API কী | ইমেইল ঠিকানা |
| Customer.io | সাইট ID, API কী ও আপনার অঞ্চল | আপনার নিজস্ব গ্রাহক ID |
| Brevo | শুধু ট্র্যাকার কী, আর কিছু নয় | ইমেইল ঠিকানা |
দুটির নির্দিষ্ট অবস্থান আছে
Braze-এ ইনস্ট্যান্সভিত্তিক REST এন্ডপয়েন্ট, Customer.io-তে আলাদা হোস্টের দুটি অঞ্চল। কী থেকে কোনোটিই জানা যায় না, এবং ভুলটি বেছে নিলে 401 দেয় — তখন আপনি কী-এর সমস্যা খুঁজবেন। শুধু এ জন্যই দুটি ঘর আছে।
Customer.io-তে ইমেইল দরকার নেই
আপনি যে ID দেন সেটি দিয়েই মানুষ চেনে, তাই ইমেইল চাওয়া অকারণ বাধা হতো। অন্য ছয়টি ইমেইল মেলায়; সেগুলোয় চুক্তির নম্বর দিয়ে শনাক্ত সেশন কিছু তৈরি করে না — সঠিকভাবেই।
নতুন প্রোফাইল নয়
Braze কলে থাকে _update_existing_only। CRM ব্রিজের মতোই সিদ্ধান্ত: ব্রাউজার সেশন কারা আপনার গ্রাহক তার নির্ভরযোগ্য প্রমাণ নয়, আর প্রতিটি বেনামি দর্শকে প্রোফাইল বাড়ানো লাইফসাইকেল প্ল্যাটফর্ম ইন্টিগ্রেশন না থাকার চেয়েও খারাপ।
Brevo দেয় 204, Braze দেয় 201 — তবে শর্ত আছে
Brevo কোনো বডিই ফেরায় না — সেখানে 2xx-ই পুরো সত্য। Braze ফেরায় "message": "success" এবং পাশে থাকতে পারে একটি errors অ্যারে: গুরুতর সমস্যা message-এ, সহ্য করা ঘরের তথ্য হারানো শুধু errors-এ দেখা যায়। যেকোনো একটি পড়লে এক না এক দিকে ভুল হবে।
এখানে উল্লিখিত সব ট্রেডমার্ক নিজ নিজ মালিকের। এই সেবাদাতাদের সঙ্গে MousePlayer-এর ব্যবসায়িক সম্পর্ক নেই।