সংক্ষেপে: সার্ভার সাইড ট্র্যাকিং মানে হলো, কাস্টমারের ব্রাউজার থেকে সরাসরি Facebook বা Google-এ ডেটা না পাঠিয়ে আগে আপনার নিজের ডোমেইনের একটা সার্ভারে পাঠানো, তারপর সেখান থেকে Meta, GA4 আর TikTok-এ। এতে যেসব অ্যাড ব্লকার ডোমেইন ধরে ব্লক করে, সেগুলো কম ডেটা আটকায়, পেমেন্টের পর কেউ ট্যাব বন্ধ করলেও আপনার সার্ভার পারচেজ পাঠাতে পারে, আর COD অর্ডারে কোন পারচেজ কখন যাবে সেটা আপনি ঠিক করেন। তবে এটা সব সমস্যার সমাধান না: আমরা জনপ্রিয় EasyPrivacy ব্লক লিস্ট খুলে দেখেছি, এর কিছু রুল পাথ ধরে ব্লক করে, তাই নিজের ডোমেইনেও সব ইভেন্ট পৌঁছাবে না। পিক্সেল বাদ দেবেন না, দুটো একসাথে চালান।
বাংলাদেশে যারা Facebook-এ অ্যাড চালান, তাদের অনেকেই একটা কথা শুনেছেন: "পিক্সেলে ডেটা কম আসছে, সার্ভার সাইড ট্র্যাকিং করেন।" কিন্তু জিনিসটা আসলে কী, কীভাবে কাজ করে, আর আপনার দোকানের জন্য দরকার কি না, সেটা সহজ বাংলায় খুব কম জায়গায় লেখা আছে। এই লেখায় সেটাই করার চেষ্টা করেছি।
শুধু থিওরি না, কিছু জিনিস আমরা নিজেরা টেস্ট করে দেখেছি: অ্যাড ব্লকারের লিস্টে আসলে কী আছে, একই পারচেজ পিক্সেল আর সার্ভার দুই দিক থেকে গেলে Meta কী করে, আর দেরিতে পাঠানো পারচেজ Meta কত দিন পর্যন্ত নেয়। ফলাফল নিচে আছে।
ব্রাউজার ট্র্যাকিং কীভাবে কাজ করে, আর ডেটা কোথায় হারায়
আপনার সাইটে Facebook পিক্সেল বা GA4 বসালে কাস্টমারের ব্রাউজার একটা স্ক্রিপ্ট লোড করে। তারপর প্রতিটা পেজ ভিউ, অ্যাড টু কার্ট বা পারচেজ ব্রাউজার নিজেই Facebook আর Google-এর সার্ভারে পাঠায়। পুরো কাজটা হয় কাস্টমারের ফোন বা কম্পিউটারে। তাই সেখানে যা কিছু বাধা দেয়, সেটাই আপনার ডেটা কমায়:
- অ্যাড ব্লকার। অনেকের ফোন বা ব্রাউজারে ব্লকার থাকে। এগুলো পিক্সেলের স্ক্রিপ্ট বা Facebook-এ যাওয়া রিকোয়েস্ট আটকে দেয়। কী কী আটকায়, সেটা নিচে আলাদা করে দেখিয়েছি।
- Safari আর iPhone। Apple-এর WebKit জাভাস্ক্রিপ্ট দিয়ে সেট করা কুকি সর্বোচ্চ ৭ দিন রাখে। তাই এক সপ্তাহ পরে ফিরে আসা কাস্টমারকে Meta বা GA4 নতুন মানুষ ভাবতে পারে, আর কোন অ্যাড থেকে সে এসেছিল সেটা হারিয়ে যায়।
- পেমেন্টের পর ফিরে না আসা। বিকাশ বা কার্ডে পেমেন্টের পর কেউ যদি থ্যাংক-ইউ পেজ লোড হওয়ার আগেই ট্যাব বন্ধ করে দেয়, ব্রাউজার পারচেজটা পাঠায়ই না। অথচ আপনার শপ জানে অর্ডারটা পেইড।
- COD-এর উল্টো সমস্যা। থ্যাংক-ইউ পেজ লোড হলো, পিক্সেল পারচেজ পাঠাল, কিন্তু অর্ডারটা ফেক, অথবা কাস্টমার পরে রিসিভ করল না। Meta তখন এমন মানুষদের দিকেই আরও অ্যাড দেখায়, যারা অর্ডার করে কিন্তু টাকা দেয় না।
প্রথম তিনটায় ডেটা কম আসে, শেষটায় ভুল ডেটা আসে। সার্ভার সাইড ট্র্যাকিং দুই ধরনের সমস্যাতেই কাজে লাগে, তবে পুরোপুরি না। কেন, সেটা একটু পরেই দেখাচ্ছি।
সার্ভার সাইড ট্র্যাকিং কীভাবে কাজ করে
এখানে কাস্টমারের ব্রাউজার আর Facebook-Google-এর মাঝখানে একটা সার্ভার বসে। সাধারণত এটা Google Tag Manager-এর সার্ভার কন্টেইনার। কাজটা হয় তিন ধাপে:
- আপনার সাইটের ওয়েব GTM ইভেন্টগুলো পাঠায় আপনার নিজের একটা সাবডোমেইনে, যেমন
track.yourshop.com.bd। - সেই সাবডোমেইনে চলে সার্ভার কন্টেইনার। এটা ইভেন্ট পড়ে, দরকার হলে ঠিকঠাক করে, আর আপনার ডোমেইনের নামে কুকি সেট করে।
- সার্ভার কন্টেইনারের ট্যাগগুলো ইভেন্ট পাঠায় Meta Conversions API, GA4, Google Ads আর TikTok-এ। এই শেষ ধাপটা সার্ভার থেকে সার্ভারে হয়, কাস্টমারের ব্রাউজার দিয়ে যায় না।
সাবডোমেইনটা আপনার নিজের ডোমেইনের অংশ, তাই কুকিগুলো ফার্স্ট-পার্টি হয়। সার্ভার থেকে সেট করা ফার্স্ট-পার্টি কুকি সাধারণত জাভাস্ক্রিপ্টের কুকির চেয়ে বেশি দিন টেকে, তবে Safari কিছু ক্ষেত্রে এগুলোও ছোট করে দেয়। বিস্তারিত আছে আমাদের ফার্স্ট-পার্টি কুকি গাইডে (ইংরেজিতে)।
অ্যাড ব্লকার আসলে কী আটকায়: আমরা লিস্ট খুলে দেখেছি
"সার্ভার সাইড করলে অ্যাড ব্লকার আর কিছু করতে পারবে না", এমন কথা অনেক জায়গায় শোনা যায়। আমরা যাচাই করতে চেয়েছি। uBlock Origin-এর মতো ব্লকার ডিফল্টভাবে EasyPrivacy নামের একটা পাবলিক লিস্ট ব্যবহার করে। ৫ নভেম্বর ২০২৬-এর ভার্সনটা (202611050140) ডাউনলোড করে আমরা খুঁজে দেখেছি কোন রুল কী ধরে। রুলগুলো মোটামুটি দুই ধরনের।
১. ডোমেইন ধরে ব্লক। যেমন ||googletagmanager.com^, ||analytics.tiktok.com^, আর ||analytics.google.com^$third-party। এগুলো শুধু ওই ডোমেইনে যাওয়া রিকোয়েস্ট আটকায়। আপনার নিজের সাবডোমেইন এই লিস্টে নেই। আর সার্ভার থেকে Meta বা Google-এ যে রিকোয়েস্ট যায়, কাস্টমারের ব্রাউজারের ব্লকার সেটা দেখতেই পায় না। এখানে সার্ভার সাইড ট্র্যাকিং সত্যিই কাজে লাগে।
২. পাথ ধরে ব্লক। যেমন /gtm.js, /fbevents.js আর /g/collect?। এগুলো যেকোনো ডোমেইনে কাজ করে, আপনার নিজেরটাতেও। মানে track.yourshop.com.bd/gtm.js-ও ব্লক হতে পারে। আর GA4 ডিফল্টভাবে যে /g/collect পাথে হিট পাঠায়, সেটাও।
তাহলে কী করবেন? GTM স্ক্রিপ্টের জন্য FlyNode-এ Custom Loader আছে, সব প্ল্যানে। এটা gtm.js-কে আপনার পছন্দের অন্য একটা পাথ থেকে সার্ভ করে, যেমন abc123.js, তাই /gtm.js রুলটা আর লাগে না। কিন্তু Custom Loader GA4-এর /g/collect পাথ বদলায় না। তাই কিছু ব্লকার এখনো সেই হিট আটকাতে পারে, আর ব্রাউজার থেকে হিট সার্ভারে না পৌঁছালে সার্ভারও সেটা সামনে পাঠাতে পারে না।
এটা আমরা লুকাতে চাই না। সার্ভার সাইড ট্র্যাকিং ডেটার ফাঁক কমায়, পুরোটা বন্ধ করে না। আপনার নিজের সাইটে কতটা ফাঁক, সেটা মাপার উপায় আছে আমাদের অ্যাড ব্লকার গাইডে (ইংরেজিতে)।
আরেকটা কথা: সার্ভার সাইড মানে কনসেন্ট এড়ানো না। কাস্টমার যদি ট্র্যাকিংয়ে রাজি না হয়, সেটা মানতে হবে, ইভেন্ট ব্রাউজার থেকে যাক বা সার্ভার থেকে।
পিক্সেল কি বাদ দেব? না, দুটো একসাথে চালান
ব্রাউজারের পিক্সেল এমন কিছু তথ্য দেখে যা সার্ভার একা পায় না, আর সার্ভার এমন কিছু পাঠাতে পারে যা ব্রাউজার হারায়। তাই Meta নিজেই বলে দুটো একসাথে চালাতে, আর প্রতিটা ইভেন্টে একই event ID দিতে। একই ID দেখলে Meta একটা রেখে অন্যটা বাদ দেয়, তাই ডাবল কাউন্ট হয় না।
আমরা এটা ৪ নভেম্বর ২০২৬-এ FlyNode-এর নিজের Meta ডেটাসেটে টেস্ট করেছি। ৳১,৫০০-এর একটা পারচেজ ব্রাউজারের পিক্সেল থেকে পাঠিয়েছি dedup_match_3 ID দিয়ে, তারপর ১১ সেকেন্ড পরে একই পারচেজ সার্ভার থেকে, একই ID দিয়ে। প্রথমে Events Manager-এর Test events-এ দুটো আলাদা লাইন দেখাচ্ছিল। প্রায় ১৫ মিনিট পরে Meta দুটোকে এক করে ফেলে: সার্ভারেরটা "Processed", আর ব্রাউজারেরটা "Deduplicated"। মানে পারচেজ একবারই গোনা হয়েছে।
তাই টেস্টের সাথে সাথে দুটো পারচেজ দেখলে ঘাবড়াবেন না, একটু অপেক্ষা করে আবার দেখুন। পুরো সেটআপ আর টেস্টের বিস্তারিত আছে আমাদের বাংলাদেশি স্টোরের জন্য Meta Conversions API লেখায় (ইংরেজিতে)।
COD অর্ডারে কী করবেন
ক্যাশ অন ডেলিভারিতে চেকআউটের পারচেজ মানেই বিক্রি না। কিছু অর্ডার ফেক, কিছু কনফার্মেশন কলে বাতিল হয়, কিছু কুরিয়ার থেকে ফেরত আসে। এখানে দুটো উপায় আছে:
- চেকআউটেই পারচেজ পাঠানো। সহজ, কিন্তু ফেক আর ফেরত অর্ডারও Meta-তে যায়।
- অর্ডার কনফার্ম বা ডেলিভারি হলে সার্ভার থেকে পাঠানো। Meta শুধু আসল বিক্রি থেকে শেখে। সমস্যা একটাই: Meta পুরনো ইভেন্ট নেয় না।
কত পুরনো? আমরা এটাও টেস্ট করেছি। সার্ভার থেকে পারচেজ পাঠিয়েছি এমন সময় দিয়ে, যেন অর্ডারটা ২, ৬, ৬.৯, ৭.১ আর ৮ দিন আগের। ৬.৯ দিন পর্যন্ত Meta নিয়েছে। ৭.১ দিন আর ৮ দিনেরটা ফিরিয়ে দিয়েছে এই এরর দিয়ে: "Event timestamp too old"। তাই নিয়ম সোজা: অর্ডার হওয়ার ৭ দিনের মধ্যে পারচেজ পাঠাতে হবে, এর বেশি দেরি করলে Meta আর নেবে না।
FlyNode-এ এর জন্য আছে COD Order Protection, সব প্ল্যানে। চালু করলে ক্যাশ অন ডেলিভারি পারচেজ চেকআউটে সরাসরি Meta, GA4, Google Ads বা TikTok-এ যায় না, FlyNode-এ অপেক্ষা করে। আপনি অর্ডার কনফার্ম করলে সেটা পারচেজ হিসেবে যায়, অর্ডারের আসল সময় আর অ্যাড ক্লিকসহ। রিজেক্ট করা অর্ডার কখনো যায় না। প্রতিটা অর্ডারে কাস্টমারের নাম, ফোন আর শহর দেখা যায়, আর একই ফোন নম্বর থেকে আরও অর্ডার এলে সেটাও দেখায়। WooCommerce হলে কোনো প্লাগইন ছাড়াই শপ নিজে অর্ডার কনফার্ম করাতে পারে। সেট আপের নিয়ম আছে COD Order Protection গাইডে (ইংরেজিতে)।
কী কী লাগবে
- একটা ওয়েব GTM কন্টেইনার, আপনার সাইটে বসানো। অনেকের এটা আগেই আছে।
- একটা সার্ভার GTM কন্টেইনার, Google Tag Manager-এ বানানো।
- সার্ভার কন্টেইনার চালানোর জায়গা। তিনটা উপায়: Google Cloud Run (নিজে সেট আপ, বিল আসে Google থেকে ডলারে), ম্যানেজড হোস্টিং (যেমন FlyNode বা Stape, যারা আপনার হয়ে চালায়), অথবা নিজের সার্ভারে Docker দিয়ে।
- একটা সাবডোমেইন, যেমন
track.yourshop.com.bd, আর DNS-এ একটা CNAME রেকর্ড। - ট্যাগ: Meta Conversions API, GA4, আর দরকার হলে TikTok ও Google Ads।
তিন উপায়ের খরচের তুলনা আছে আমাদের সার্ভার সাইড ট্র্যাকিংয়ের খরচ লেখায় (ইংরেজিতে)।
খরচ কত
FlyNode-এ প্রতিটা কন্টেইনারের নিজের প্ল্যান। ৫ নভেম্বর ২০২৬-এর দাম, ১ ডলার = ১২৫ টাকা ধরে:
| প্ল্যান | মাসিক দাম | মাসে রিকোয়েস্ট |
|---|---|---|
| Free | ৳০ | ১৫ হাজার |
| Pro | ৳১,৮৭৫ ($15) | ৫ লাখ |
| Business | ৳৫,৬২৫ ($45) | ২০ লাখ |
| Enterprise | ৳৯,৩৭৫ ($75) | ৫০ লাখ |
পেমেন্ট করা যায় বিকাশে বা কার্ডে। একটা রিকোয়েস্ট মানে আপনার সার্ভারে পৌঁছানো একটা কল। আপনার দোকানে মাসে কত রিকোয়েস্ট হবে, সেটা আন্দাজ না করে ফ্রি প্ল্যানে কয়েক দিন চালিয়ে ড্যাশবোর্ডের রিকোয়েস্ট মিটারে দেখে নিন। তারপর প্ল্যান বাছুন।
কখন দরকার নেই
- অ্যাডে খুব কম খরচ করেন, বা মাসে হাতে গোনা কয়েকটা অর্ডার আসে। তখন পিক্সেল আর GA4 ঠিকমতো বসানোই যথেষ্ট।
- সেট আপ বা দেখাশোনার মতো সময় বা লোক নেই। ভুল সেট আপে ডাবল কাউন্ট হয়, যা না করার চেয়ে খারাপ।
- আসল সমস্যা অন্য জায়গায়। যেমন থ্যাংক-ইউ পেজে পিক্সেলই নেই, বা ইভেন্টের নাম ভুল। আগে সেটা ঠিক করুন। আমাদের GA4 ই-কমার্স চেকলিস্ট (ইংরেজিতে) কাজে লাগবে।
FlyNode-এ শুরু করবেন যেভাবে
- কার্ড ছাড়াই ফ্রি অ্যাকাউন্ট খুলুন। প্রথম কন্টেইনার মাসে ১৫ হাজার রিকোয়েস্ট পর্যন্ত ফ্রি, আর ফ্রি কন্টেইনার চলে ঢাকার BDIX সার্ভারে।
- Google অ্যাকাউন্ট কানেক্ট করে আপনার সার্ভার কন্টেইনার বেছে নিন, অথবা FlyNode দিয়ে নতুন একটা বানিয়ে নিন।
- আপনার সাবডোমেইনের জন্য CNAME রেকর্ড যোগ করুন। SSL FlyNode নিজেই সেট করে দেয়।
- ওয়েব GTM-এর ট্যাগগুলো নতুন সাবডোমেইনের মধ্য দিয়ে পাঠান, আর সার্ভার কন্টেইনারে Meta, GA4, TikTok-এর ট্যাগ বসান।
- COD নিলে COD Order Protection চালু করুন।
টাকায় দাম আর বিকাশ পেমেন্টসহ সব কিছু এক জায়গায় দেখতে পড়ুন বাংলাদেশে সার্ভার সাইড ট্র্যাকিং পেজটা। ধাপে ধাপে গাইড আছে প্রথম Server GTM কন্টেইনার চালু করার ডকসে (ইংরেজিতে)।
প্রশ্নোত্তর
সার্ভার সাইড ট্র্যাকিং কি অ্যাড ব্লকার পুরোপুরি এড়িয়ে যায়?
না। ডোমেইন ধরে ব্লক করা রুলগুলো এড়ায়, কিন্তু /gtm.js বা /g/collect?-এর মতো পাথ ধরে ব্লক করা রুল আপনার নিজের ডোমেইনেও কাজ করে। Custom Loader দিয়ে gtm.js-এর পাথ বদলানো যায়, কিন্তু সব ফাঁক বন্ধ হয় না।
এটা কি প্রাইভেসির নিয়ম ভাঙে?
সার্ভার সাইড ট্র্যাকিং নিজে নিয়ম ভাঙে না, কিন্তু কনসেন্টের নিয়ম এখানেও খাটে। কাস্টমার রাজি না থাকলে ইভেন্ট পাঠাবেন না। বরং সার্ভারে আপনি ঠিক করতে পারেন কোন ডেটা বাইরে যাবে আর কোনটা যাবে না।
WooCommerce বা Shopify-তে চলে?
যে সাইটে Google Tag Manager বসানো যায়, সেখানেই চলে। সার্ভার কন্টেইনার শুধু দেখে কোন ইভেন্ট আসছে, সাইটটা কিসে বানানো সেটা দেখে না। COD Order Protection-এ WooCommerce নিজে অর্ডার কনফার্ম করাতে পারে, অন্য শপের জন্য আছে webhook URL।
সার্ভার বাংলাদেশে হলে কী লাভ?
ভিজিটরের কাছের সার্ভারে রিকোয়েস্ট কম পথ পাড়ি দেয়। FlyNode-এর ফ্রি কন্টেইনার চলে ঢাকার BDIX সার্ভারে, আর পেইড কন্টেইনার ঢাকা, উত্তর আমেরিকা বা ইউরোপে চালানো যায়। এছাড়া দাম টাকায় আর পেমেন্ট বিকাশে, ডলার কার্ড লাগে না।
Meta-তে পারচেজ দুবার গুনছে, কী করব?
প্রথমে দেখুন ব্রাউজার আর সার্ভার দুই দিকের ইভেন্টে একই event ID যাচ্ছে কি না। আমাদের টেস্টে Meta দুটো এক করতে প্রায় ১৫ মিনিট নিয়েছিল, তাই সাথে সাথে দুটো দেখলে একটু অপেক্ষা করুন।
আমরা কীভাবে টেস্ট করেছি
অ্যাড ব্লকারের অংশ: ৫ নভেম্বর ২০২৬-এ easylist.to থেকে EasyPrivacy লিস্টের ভার্সন 202611050140 ডাউনলোড করে রুলগুলো খুঁজে দেখেছি। লেখায় যত রুল দেখানো হয়েছে, সব হুবহু ওই লিস্ট থেকে নেওয়া। Meta-র অংশ: ৪ নভেম্বর ২০২৬-এ FlyNode-এর নিজের Meta ডেটাসেটে Test event কোড দিয়ে, Graph API v21.0 ব্যবহার করে। দাম flynode.io থেকে, ৫ নভেম্বর ২০২৬-এর।
সূত্র
- EasyPrivacy, easyprivacy.txt (ভার্সন 202611050140, পড়া হয়েছে নভেম্বর ২০২৬)
- WebKit, Tracking Prevention in WebKit (পড়া হয়েছে নভেম্বর ২০২৬)
- Meta, Handling duplicate pixel and Conversions API events (পড়া হয়েছে নভেম্বর ২০২৬)
- FlyNode, Power-Ups explained (Custom Loader)
- FlyNode, COD Order Protection
Get new articles in your inbox
New guides on WordPress, tracking and automation, once or twice a month. No spam, unsubscribe any time.


