ব্লগ
WordPress-এর জন্য SignalHost: একটি প্লাগইন থেকেই সার্ভার-সাইড Google Tag Manager আর WooCommerce ইভেন্ট
প্রকাশিত · পড়তে 7 মিনিট
SignalHost প্লাগইন কোনো কোড পেস্ট না করেই একটি WordPress সাইটে সার্ভার-সাইড Google Tag Manager বসিয়ে দেয়। এটি প্রতিটি পেজে ট্র্যাকিং যোগ করে, WooCommerce, ফর্ম ও সাইন-আপ ইভেন্ট আপনার কনটেইনার যে কাঠামোয় আশা করে সেভাবেই পাঠায়, আপনার নিজের ট্র্যাকিং ডোমেইন লাইভ হলে নিজে থেকেই সেটিতে চলে যায়, আর যা কিছু দুবার গোনা হতে পারে সে বিষয়ে আপনাকে সতর্ক করে। এই গাইড সেই ক্রমেই এগোয়, যে ক্রমে আপনি এর মুখোমুখি হন: ইনস্টল করা, সংযুক্ত করা, যাচাই করা, আর যা কাজ করে না তা ঠিক করা।
শুরু করার আগে
- PHP 7.4 বা তার পরের সংস্করণে WordPress 6.6 বা তার পরের সংস্করণ, আর একটি অ্যাডমিনিস্ট্রেটর অ্যাকাউন্ট।
- https:// দিয়ে শুরু হওয়া একটি সাইট ঠিকানা, যা সংযুক্ত করার জন্য লাগে। অন্য সাইটগুলোও পেস্ট করা স্নিপেট দিয়ে প্লাগইনটি ব্যবহার করতে পারে, যা নিচে বর্ণনা করা হয়েছে।
- একটি SignalHost অ্যাকাউন্ট। চেষ্টা করে দেখতে ফ্রি প্ল্যানই যথেষ্ট: মাসে ১০,০০০টি রিকোয়েস্ট আর একটি কনটেইনার। সংযুক্ত করার সময়েই অ্যাকাউন্ট তৈরি করে নিতে পারেন।
- শপ ইভেন্ট চাইলে WooCommerce। ফর্ম ও সাইন-আপ ইভেন্ট এটি ছাড়াই কাজ করে।
১. প্লাগইন ইনস্টল করুন
WordPress-এ Plugins → Add New-এ যান, SignalHost খুঁজুন, তারপর SignalHost – Server-Side Tag Hosting for Google Tag Manager ইনস্টল ও অ্যাক্টিভেট করুন। এটি আপনার অ্যাডমিন মেনুতে একটি SignalHost এন্ট্রি যোগ করে, আর আপনি সাইটটি সংযুক্ত না করা পর্যন্ত বাইরের কোনো সার্ভিসের সঙ্গে যোগাযোগ করে না।
২. সাইটটিকে একটি কনটেইনারের সঙ্গে সংযুক্ত করুন
মেনুতে SignalHost খুলুন এবং “Connect with SignalHost” চাপুন, অথবা আপনি নতুন হলে “Create a free account”। আপনার ব্রাউজার signalhost.io-তে যায়, আর কাজ শেষ হলে ফিরে আসে।
সেখানে “একটি ওয়েবসাইট সংযুক্ত করুন” স্ক্রিন জানায় প্লাগইন কী করতে পারবে — প্রতিটি পেজে আপনার ট্র্যাকিং কোড যোগ করা, সেটি হালনাগাদ রাখা আর কনটেইনারের স্ট্যাটাস পড়া — আর কী পারবে না: আপনার Google অ্যাকাউন্ট, আপনার বিজ্ঞাপন প্ল্যাটফর্মের টোকেন বা আপনার বিলিং ব্যবহার করা। তারপর এটি জানতে চায় সাইটটি কোন কনটেইনার ব্যবহার করবে। কনটেইনার হলো আপনার নিজস্ব ট্যাগিং সার্ভার: একটি Tag Manager ওয়েব কনটেইনার ও সার্ভার কনটেইনার, যা আপনার নিজের Google অ্যাকাউন্টে তৈরি হয়, তাই এগুলো আপনারই থাকে।
একটি বেছে নিয়ে “সংযুক্ত করুন” চাপুন, অথবা “আপনার সাইটের জন্য নতুন কনটেইনার” বেছে নিয়ে সংক্ষিপ্ত উইজার্ডের জন্য “কনটেইনার তৈরি করুন” চাপুন; উইজার্ডটি বিল্ড শেষ হওয়ার আগেই সাইটটি সংযুক্ত করার প্রস্তাব দেয়, আর কনটেইনার প্রস্তুত হওয়ার মুহূর্তেই প্লাগইন কোড যোগ করে। WordPress-এ ফিরে এলে একটি নোটিশ জানায় যে সাইটটি সংযুক্ত হয়েছে।
৩. এটি কাজ করছে কি না যাচাই করুন
“Status” ট্যাবটি একটি চেকলিস্ট, যা ওপর থেকে নিচে সবুজ হতে থাকে: “Connected to SignalHost”, “Tracking code on your site”, “SignalHost served the code to a visitor” এবং “Data arriving”। দ্বিতীয় ধাপটি আসে প্লাগইনের আপনার হোম পেজ আনা থেকে, ঠিক যেভাবে লগ-আউট করা একজন ভিজিটর পেজটি পান; “Check again” এটি আবার করে।
একটি ব্রাউজারে আপনার সাইট খুলুন, কার্টে একটি প্রোডাক্ট যোগ করুন, একটি ফর্ম পাঠান। প্রথম ভিজিটের এক মিনিটের মধ্যে তৃতীয় ধাপটি সবুজ হয়, আর তারপর “Data arriving” গত ৭ দিনের পেজ ভিউ গোনে। “Advanced”-এর অধীনে “Log events in the browser console” প্রতিটি ইভেন্ট পেজ ছেড়ে যাওয়ার মুহূর্তে ব্রাউজার কনসোলে দেখায়, আর Growth প্ল্যান ও তার ওপরে signalhost.io-র কনটেইনার পেজ সেগুলো “লাইভ ইভেন্ট পর্যবেক্ষণ”-এ তালিকাভুক্ত করে।
প্লাগইন আপনার সাইটে যা যোগ করে
Google Tag Manager লোডার, প্রতিটি পেজের head-এ, googletagmanager.com-এর বদলে আপনার নিজের ট্যাগিং ঠিকানার দিকে নির্দেশিত, আপনার কুকি ব্যানারের পরে বসানো, এবং প্রচলিত পারফরম্যান্স প্লাগইনগুলোর “delay JavaScript” ফিচার থেকে বাদ রাখা। আপনার কনটেইনার যে পেজ ভিউ পাঠায় তার পাশাপাশি প্লাগইন এই ইভেন্টগুলো পুশ করে, প্রতিটি তার নিজস্ব event_id সহ, যাতে Meta, TikTok ও অন্যান্য প্ল্যাটফর্ম একটি ব্রাউজার পিক্সেল ইভেন্ট আর তার সার্ভার-যমজকে একবারই গোনে:
- WooCommerce: view_item_list, view_item, add_to_cart, remove_from_cart, view_cart, begin_checkout, add_shipping_info, add_payment_info ও purchase, ক্লাসিক এবং ব্লক-ভিত্তিক — দুই ধরনের কার্ট ও চেকআউটেই। থ্যাংক-ইউ পেজ যতবারই খোলা হোক, প্রতিটি অর্ডার একবারই পাঠানো হয়, আর সেটি চিহ্নিত থাকে অর্ডারের ওপরেই।
- ফর্ম: Contact Form 7, WPForms, Gravity Forms, Elementor Pro forms ও Fluent Forms থেকে সফল সাবমিশন, প্রতিটি ফর্মের জন্য আলাদাভাবে বেছে নেওয়া লিড (generate_lead), যোগাযোগ (contact), বুকিং (schedule), আবেদন (submit_application) বা সাবস্ক্রিপশন (subscribe) হিসেবে।
- সাইন-আপ: কোনো ভিজিটর অ্যাকাউন্ট তৈরি করলে sign_up — রেজিস্ট্রেশন পেজে, My Account-এ বা চেকআউটে।
প্রতিটি ধরন “What is tracked”-এর অধীনে একটি সুইচ। কার্ট, চেকআউট, ফর্ম ও সাইন-আপ ইভেন্ট আসে ভিজিটরের নিজের সেশন থেকে, কখনো পেজের HTML থেকে নয়, তাই পেজ ক্যাশ একজন ভিজিটরের ইভেন্ট পরের জনের হাতে তুলে দিতে পারে না।
“Send customer details for better ad matching” আপনি চালু না করা পর্যন্ত বন্ধ থাকে। চালু করলে ইমেইল, ফোন ও ঠিকানা কনভার্সনের সঙ্গে যায় শুধু তখনই, যখন ভিজিটর বিজ্ঞাপন কুকির অনুমতি দিয়েছেন, আর বিজ্ঞাপন প্ল্যাটফর্মে পৌঁছানোর আগেই সেগুলো হ্যাশ করা হয়। সম্মতি Google Consent Mode-এর মাধ্যমে আপনার কুকি ব্যানারকে অনুসরণ করে; আপনার ব্যানার যদি এটি সেট না করে, তাহলে “Consent & privacy”-এর অধীনে ‘Set “denied until consent” here’ বেছে নিন।
আপনি যদি আগে থেকেই GTM4WP বা অন্য কোনো Google ট্যাগ ব্যবহার করেন
প্লাগইন আপনার হোম পেজ পড়ে এবং আপনার অন্যান্য প্লাগইন পরীক্ষা করে, আর যা কিছু দুবার গোনা হতে পারে তা “Double-counting check”-এর অধীনে তালিকাভুক্ত করে: আগে পেস্ট করা কোনো SignalHost স্নিপেট, একই প্রপার্টির জন্য Google-এর নিজস্ব Tag Manager স্নিপেট বা Google ট্যাগ, Site Kit, MonsterInsights, ExactMetrics অথবা Google Analytics for WooCommerce।
GTM4WP-এর জন্য আছে এক ক্লিকের সমাধান। “Turn off GTM4WP’s container code” এটিকে একই কনটেইনার সরাসরি Google থেকে লোড করা থেকে বিরত রাখে, অথচ এর ডেটা লেয়ার কাজ করতে থাকে; “Turn off GTM4WP’s shop tracking” শপ ইভেন্টগুলো SignalHost-এর হাতে ছেড়ে দেয়। “Undo” যেকোনোটিকে আগের অবস্থায় ফিরিয়ে আনে।
আপনার নিজের ট্র্যাকিং ডোমেইন
আপনার কনটেইনার শুরু হয় signalhost.io-র অধীনের একটি ঠিকানায়। পেইড প্ল্যানে কনটেইনার পেজের “আপনার নিজের ডোমেইন সেট আপ করুন” আপনাকে একটি DNS রেকর্ড দিয়ে আপনার নিজের সাইটের একটি সাবডোমেইন, যেমন metrics.yoursite.com, সেট আপ করার পুরো পথ দেখায়। ব্রাউজার এটিকে ফার্স্ট-পার্টি হিসেবে গণ্য করে, তাই এর কুকিগুলো আপনার নিজের কুকি হিসেবে গণ্য হয় এবং বিজ্ঞাপনের ক্লিকের কৃতিত্ব বজায় থাকে। এটি লাইভ হলে প্লাগইন তার পরবর্তী যোগাযোগে, সাধারণত এক ঘণ্টার মধ্যে, আপনার সাইটকে সেটিতে বদলে নেয় এবং আপনার পেজ ক্যাশ পরিষ্কার করে। হাতে কিছুই বদলাতে হয় না।
হাতে SignalHost যোগ করা
প্লাগইন ছাড়াও WordPress-এ SignalHost চালাতে পারেন। signalhost.io-তে আপনার কনটেইনার খুলুন, “আপনার সাইটে ইনস্টল করুন” কার্ডে স্নিপেটটি খুঁজে নিয়ে “কপি করুন” চাপুন। এটি প্রতিটি পেজের head-এ পেস্ট করুন, যত ওপরে সম্ভব, তবে আপনার কুকি ব্যানারের স্ক্রিপ্টের পরে: WPCode-এর মতো একটি হেডার প্লাগইন (এর Header বক্স) কাজ করে, অথবা আপনার থিমের header.php। সাইটটি যদি একই Analytics প্রপার্টির জন্য আগে থেকেই Google Tag Manager বা কোনো Google ট্যাগ লোড করে, তাহলে দ্বিতীয়টি যোগ না করে সেই স্নিপেটটি বদলে দিন। তারপর “আমি এটি করেছি” চাপুন।
এতে আপনার Tag Manager কনটেইনার প্রতিটি পেজে আসে, সঙ্গে পেজ ভিউ আর আপনার সাইট নিজে ডেটা লেয়ারে যা পুশ করে তা। প্লাগইন যা যোগ করে তার সবই হারায়: WooCommerce, ফর্ম ও সাইন-আপ ইভেন্ট, অর্ডার-প্রতি-একবারের purchase আর দুটি যাচাই। আপনার নিজের ডোমেইন লাইভ হলে স্নিপেটটি আপনাকে নিজেই বদলাতে হবে।
যে সাইট সংযুক্ত হতে পারে না, যেমন https:// ছাড়া কোনো সাইট, তার জন্য একটি মাঝামাঝি পথ আছে: প্লাগইনে “I already have a snippet from SignalHost” বেছে নিন, কোডটি পেস্ট করুন এবং “Use this snippet” চাপুন। ইভেন্টগুলো তখনও আসে, কিন্তু প্লাগইন আপনার নিজের ডোমেইনে বদলে নিতে পারে না, ডেটা আসছে কি না তা-ও দেখাতে পারে না।
পরিচালনা ও সংযোগ বিচ্ছিন্ন করা
“Status” ট্যাবের “Disconnect” একবার নিশ্চিত হতে চায়, তারপর সঙ্গে সঙ্গে প্রতিটি পেজ থেকে ট্র্যাকিং কোড সরিয়ে দেয়। আপনার কনটেইনার ও তার ডেটা থেকে যায়, আর “Connect with SignalHost” যেকোনো সময় সাইটটি ফিরিয়ে আনে। signalhost.io-র সেটিংস › সংযুক্ত সাইট-এও সাইটটি তালিকাভুক্ত থাকে; সেখানকার “সংযোগ বিচ্ছিন্ন করুন” প্লাগইনের পরবর্তী যোগাযোগে, সাধারণত এক ঘণ্টার মধ্যে, কোডটি সরিয়ে দেয়।
প্লাগইন ডিলিট করলে সাইটের সংযোগ বিচ্ছিন্ন হয় এবং প্লাগইনের সংরক্ষিত সবকিছু মুছে যায়। স্টেজিং কপিতে প্লাগইন বদলে যাওয়া ঠিকানা টের পায় এবং ট্র্যাকিং থামিয়ে রাখে, তাই টেস্ট ট্রাফিক আপনার লাইভ ডেটার বাইরে থাকে।
যখন কিছু কাজ করে না
- কোনো “Connect” বোতাম নেই: সাইটের ঠিকানা https:// দিয়ে শুরু হয় না। এর বদলে “I already have a snippet from SignalHost” ব্যবহার করুন।
- সংযোগ একটি ফায়ারওয়াল-সংক্রান্ত বার্তা দেখিয়ে থেমে যায়: কোনো সিকিউরিটি প্লাগইন বা সার্ভার signalhost.io-তে যাওয়া রিকোয়েস্ট আটকাচ্ছে। সেগুলোর অনুমতি দিন এবং আবার “Connect” চাপুন।
- আপনার হোম পেজে কোডটি পাওয়া যায়নি: wp_head() ছাড়া কোনো থিম, একটি পেজ ক্যাশ বা কোনো অপটিমাইজেশন প্লাগইন এটি সরিয়ে দিচ্ছে। “Advanced”-এর অধীনে “Clear page caches” চাপুন, তারপর “Check again”।
- আপনার হোম পেজে কোডটি দুবার আছে, অথবা একটি পুরোনো কপি আছে: আগে আপনার থিমে বা কোনো হেডার প্লাগইনে যে স্নিপেট পেস্ট করেছিলেন, সেটি সরিয়ে দিন।
- এই সার্ভার থেকে হোম পেজ খোলা যায়নি: পাসওয়ার্ড সুরক্ষা, মেইনটেন্যান্স মোড বা কোনো ফায়ারওয়াল বাধা দিচ্ছে। সাইটটি একটি ব্রাউজারে খুলে সেখানে যাচাই করুন।
- আপনার নিজের ভিজিট দেখা যাচ্ছে না: “Do not track administrators” চালু আছে। সাইন আউট অবস্থায় সাইটটি ভিজিট করুন।
- অন্য যেকোনো সমস্যা: আপনার সাইটের ঠিকানাসহ hello@signalhost.io-তে লিখুন।
ট্রেডমার্ক
SignalHost হলো Algorithmo GmbH-এর একটি স্বাধীন প্রোডাক্ট, এবং এটি WordPress Foundation, WooCommerce, Google, Meta বা TikTok-এর সঙ্গে সম্পৃক্ত নয় বা তাদের দ্বারা অনুমোদিত নয়। Google Analytics, Google Ads ও Google Tag Manager হলো Google LLC-এর ট্রেডমার্ক; Meta হলো Meta Platforms, Inc.-এর ট্রেডমার্ক; TikTok হলো ByteDance Ltd.-এর ট্রেডমার্ক; WordPress হলো WordPress Foundation-এর ট্রেডমার্ক। WooCommerce ও এখানে উল্লেখিত অন্যান্য প্লাগইনের নাম তাদের নিজ নিজ মালিকের ট্রেডমার্ক।

