ব্লগে ফিরে যান

ব্লগ

TYPO3-এর জন্য SignalHost: এক্সটেনশন ইনস্টল করুন, প্রতিটি সাইট সংযুক্ত করুন, আর সার্ভার-সাইড ট্র্যাকিং চালু

প্রকাশিত · পড়তে 6 মিনিট

TYPO3 Extension Repository-এ পান

SignalHost এক্সটেনশন এক লাইন কোডও পেস্ট না করে আপনার TYPO3 সাইটগুলোতে সার্ভার-সাইড Google Tag Manager বসিয়ে দেয়। এটি একটি সংযুক্ত সাইটের প্রতিটি ফ্রন্টএন্ড পেজে ট্র্যাকিং লোডার যোগ করে, আমাদের দিকে কিছু বদলালে সেটি হালনাগাদ রাখে, আর আপনি সংযোগ বিচ্ছিন্ন করলে আবার সরিয়ে দেয়। মাল্টি-সাইট ইনস্টলেশনের প্রতিটি সাইট আলাদাভাবে সংযুক্ত করা হয়, আর এই গাইড একটি সাইটকে ইনস্টল থেকে পরীক্ষা পর্যন্ত অনুসরণ করে।

শুরু করার আগে

  • sodium এক্সটেনশনসহ PHP 8.2 বা তার নতুন সংস্করণে চলা TYPO3 13.4 LTS বা 14.3 LTS।
  • একটি SignalHost অ্যাকাউন্ট। চেষ্টা করে দেখতে ফ্রি প্ল্যানই যথেষ্ট: মাসে ১০,০০০টি রিকোয়েস্ট আর একটি কনটেইনার। সংযুক্ত করার সময়েই অ্যাকাউন্ট তৈরি করে নিতে পারেন।
  • একটি ব্যাকএন্ড অ্যাডমিনিস্ট্রেটর অ্যাকাউন্ট। SignalHost মডিউল শুধু অ্যাডমিনিস্ট্রেটরদের জন্য।
  • এমন একটি সাইট, যার site configuration-এ base-এ একটি ডোমেইন আছে, যেমন https://www.example.com/।

১. এক্সটেনশন ইনস্টল করুন

Composer-ভিত্তিক ইনস্টলেশনে এটি Packagist থেকে require করুন:

composer require signalhost/server-side-tagging

ক্লাসিক মোডে এর বদলে Extension Manager থেকে ইনস্টল করুন; এটি TYPO3 Extension Repository-তে signalhost_server_side_tagging কী-এর অধীনে আছে। কোনো সাইট সংযুক্ত না হওয়া পর্যন্ত এটি সেই সাইটে কিছুই যোগ করে না।

২. একটি সাইটকে একটি কনটেইনারের সঙ্গে সংযুক্ত করুন

TYPO3 ব্যাকএন্ডে Sites › SignalHost খুলুন (TYPO3 13-এ Site Management › SignalHost), যেখানে প্রতিটি সাইটের নিজস্ব কার্ড আছে। সংযুক্ত করার পর SignalHost আপনাকে সাইটের নিজস্ব ঠিকানায় ফেরত পাঠায়, তাই ব্যাকএন্ডটি সেই সাইটের ডোমেইনের অধীনে খুলুন; অন্য কোথাও খুললে কার্ডে একটি বোতাম থাকে, যা পেজটি সেখানে খোলে, আর সেখানে আপনাকে হয়তো একবার লগ ইন করতে হবে।

সাইটের কার্ডে “Connect with SignalHost” চাপুন, অথবা এখনো অ্যাকাউন্ট না থাকলে “Create a free account”। আপনি “Connect” চাপার আগে SignalHost-এ কিছুই পাঠানো হয় না। signalhost.io-তে সাইন ইন করুন। পরের স্ক্রিন জানায় এক্সটেনশন কী করতে পারবে আর কী পারবে না, এবং জানতে চায় সাইটটি কোন কনটেইনার ব্যবহার করবে। কনটেইনার হলো আপনার নিজস্ব ট্যাগিং সার্ভার: একটি Tag Manager ওয়েব কনটেইনার ও সার্ভার কনটেইনার, যা আপনার নিজের Google অ্যাকাউন্টে তৈরি হয়, তাই এগুলো আপনারই থাকে।

একটি বিদ্যমান কনটেইনার বেছে নিন, অথবা “আপনার সাইটের জন্য নতুন কনটেইনার” চেপে সংক্ষিপ্ত উইজার্ডটি শেষ করুন। নতুন একটি তৈরি হতে কয়েক মিনিট লাগে; আপনি এখনই সংযুক্ত করতে পারেন, আর এটি প্রস্তুত হওয়ামাত্রই কোড যোগ হয়। “সংযুক্ত করুন” চাপুন, আর আপনি “Connected” বার্তাসহ কার্ডে ফিরে আসেন। SignalHost-এর কোড এখন এই সাইটের প্রতিটি পেজে যোগ হয়েছে। যে সাইটগুলো ট্র্যাক করতে চান, প্রতিটির জন্য এটি আবার করুন।

৩. কোডটি আপনার সাইটে আছে কি না যাচাই করুন

সাইটের কার্ডে এখন লেখা থাকে “Tracking is live”, অথবা নতুন কনটেইনার তখনও তৈরি হতে থাকলে “Tracking starts as soon as your container is ready”। এরপর “On your home page” লাইনটি পড়ুন: সংযুক্ত করার ঠিক পরেই এক্সটেনশন একজন ভিজিটরের মতো করে আপনার হোম পেজ এনে তার কোড খোঁজে। আপনি যে উত্তর চান তা হলো “Code found”। “Check again” যেকোনো সময় যাচাইটি আবার করে, আর অন্য উত্তরগুলো আছে “যখন কিছু কাজ করে না” অংশে।

৪. পরীক্ষা করুন

একটি প্রাইভেট উইন্ডোতে আপনার সাইট খুলে কয়েকটি পেজে ক্লিক করে ঘুরুন; যে ভিজিটর আপনার কুকি ব্যানার প্রত্যাখ্যান করেন, তাঁকেও গোনা হয় Google-এর কুকিবিহীন পিং হিসেবে। তারপর signalhost.io-তে আপনার কনটেইনার পেজ খুলতে “Open statistics & settings” চাপুন।

“উন্নত অ্যানালিটিক্স”-এর অধীনে “সাম্প্রতিক” ট্যাব গত ৩০ মিনিটের পেজ ভিউ দেখায়, আপনারগুলোসহ। পেজের নিচে “সমস্যা সমাধান”-এর অধীনে থাকা “যাচাই চালান” আপনার ট্যাগিং সার্ভার যা পেয়েছে তার সঙ্গে একই ৩০ মিনিটের জন্য Google Analytics যা রিপোর্ট করে তা মিলিয়ে দেখে। Analytics-এ কম দেখানো স্বাভাবিক: যে ভিজিটররা কুকি প্রত্যাখ্যান করেছেন, এটি তাঁদের বাদ দেয়। Growth প্ল্যান ও তার ওপরে “লাইভ ইভেন্ট পর্যবেক্ষণ” প্রতিটি ইভেন্ট আসার সঙ্গে সঙ্গে দেখায়।

এক্সটেনশন আপনার সাইটে যা যোগ করে

প্রতিটি সংযুক্ত সাইটের জন্য একটি ছোট স্ক্রিপ্ট, আর প্রতি ঘণ্টায় একবার যোগাযোগ:

  • Google Tag Manager লোডার, প্রতিটি ফ্রন্টএন্ড পেজের head শেষ হওয়ার ঠিক আগে, googletagmanager.com-এর বদলে সাইটের নিজস্ব ট্যাগিং ঠিকানার দিকে নির্দেশিত। এটি সেখান থেকে আপনার Tag Manager কনটেইনার লোড করে। এটি বসে TYPO3-এর পেজ ক্যাশের পরে, তৈরি হয়ে যাওয়া পেজে, তাই কোনো ক্যাশ পরিষ্কার করতে হয় না। সাইটটি TYPO3-এর Content Security Policy প্রয়োগ করলে এক্সটেনশন তাতে ট্যাগিং ঠিকানা যোগ করে এবং লোডারটিকে তার হ্যাশ দিয়ে অনুমতি দেয়, যদি না পলিসি আগে থেকেই ইনলাইন স্ক্রিপ্টের অনুমতি দেয়।
  • প্রতি ঘণ্টায় একবার, একটি রেসপন্স পাঠানো হয়ে যাওয়ার পর, এক্সটেনশন হালনাগাদ থাকতে signalhost.io-র সঙ্গে যোগাযোগ করে। এটি পাঠায় শুধু এক্সটেনশন, TYPO3 ও PHP-এর সংস্করণ, সাইটের ঠিকানা আর হোম পেজে কোডটি পাওয়া গেছে কি না: কোনো ভিজিটর ডেটা নয়, কোনো কনটেন্ট নয়, কোনো ইউজার অ্যাকাউন্ট নয়। signalhost.io-তে পৌঁছানো না গেলে সাইট সর্বশেষ সঠিক কনফিগারেশন রেখে দেয়।

প্রতিটি রিকোয়েস্ট ব্রাউজার থেকে এমন রূপে বের হয় যা অ্যাড ব্লকার চিনতে পারে না, আর আপনার ট্যাগিং সার্ভার সেটি Google Analytics 4-এ এবং কনটেইনার পেজে আপনার সেট আপ করা বিজ্ঞাপন প্ল্যাটফর্মগুলোতে ফরোয়ার্ড করে: Google Ads, Meta, TikTok ও অন্যান্য। ট্র্যাকিং Google Consent Mode-এর মাধ্যমে আপনার কুকি ব্যানারকে অনুসরণ করে। head-এ থাকা ব্যানারের পরে লোডার আসে; পরে লোড হওয়া ব্যানারকে লোডারের আগেই Consent Mode-এর ডিফল্ট মান সেট করতে হবে।

এক্সটেনশন ফর্ম বা অর্ডার পড়ে না। পেজ ভিউ নিজে থেকেই আসে; একটি পারচেজ বা লিড আপনার কনটেইনারে পৌঁছায় যখন আপনার সাইট সেটি ডেটা লেয়ারে পুশ করে।

আপনার নিজের ট্র্যাকিং ডোমেইন

আপনার কনটেইনার শুরু হয় signalhost.io-র অধীনের একটি ঠিকানায়। পেইড প্ল্যানে কনটেইনার পেজের “আপনার নিজের ডোমেইন সেট আপ করুন” আপনার প্রোভাইডারে একটি DNS রেকর্ড দিয়ে এটিকে আপনার নিজের সাইটের একটি সাবডোমেইনে, যেমন sgtm.yoursite.com-এ, সরিয়ে নেয়। সেই ঠিকানা ফিল্টার তালিকা এড়িয়ে টিকে থাকে এবং ক্লিক কুকিগুলোকে ফার্স্ট-পার্টি রাখে। এটি লাইভ হলে এক্সটেনশন তার পরবর্তী যোগাযোগে, সাধারণত এক ঘণ্টার মধ্যে, সেই সাইটটিকে সেটিতে বদলে নেয়, আর এর Content Security Policy-ও সেই অনুযায়ী বদলায়। হাতে কিছুই বদলাতে হয় না, আর ততক্ষণ পুরোনো ঠিকানা কাজ করতে থাকে।

হাতে SignalHost যোগ করা

কোডটি আপনি নিজেও পেস্ট করতে পারেন। কনটেইনার পেজে “আপনার সাইটে ইনস্টল করুন” কার্ডে আপনার স্নিপেটটি খুঁজে নিয়ে “কপি করুন” চাপুন। এটি প্রতিটি পেজের head-এ (TYPO3-এ, আপনার টেমপ্লেট বা TypoScript-এর মাধ্যমে) পেস্ট করুন, আপনার কুকি ব্যানারের স্ক্রিপ্টের ঠিক পরে, এবং “আমি এটি করেছি” চাপুন। “AI এজেন্টের জন্য কপি করুন” একই কাজটি একটি কোডিং এজেন্টের হাতে তুলে দেয়।

হাতে পেস্ট করলে এক্সটেনশন যা করে তা ছেড়ে দিতে হয়: কেউ আপনার হোম পেজ যাচাই করে না, সংযোগ বিচ্ছিন্ন করলে কেউ কোডটি সরায় না, TYPO3-এর Content Security Policy প্রয়োগ করে এমন সাইটে স্ক্রিপ্ট ও ট্যাগিং ঠিকানার অনুমতি হাতে দিতে হয়, আর আপনার নিজের ডোমেইন লাইভ হলে কোডটি আপনাকে নিজেই বদলাতে হয় — কার্ডের “আপনার ওয়েবসাইটের স্নিপেট আপডেট করুন” থেকে, অথবা ডোমেইনের খবর জানানো ইমেইল থেকে। কখনো দুটি পথ একসঙ্গে ব্যবহার করবেন না: দুটি কপি প্রতিটি ভিজিট দুবার গোনে।

আপডেট, পরিচালনা ও সংযোগ বিচ্ছিন্ন করা

যেভাবে ইনস্টল করেছিলেন সেভাবেই আপডেট করুন: Composer দিয়ে, অথবা ক্লাসিক মোডে Extension Manager থেকে।

একটি সাইটের কার্ডের “Disconnect” একবার নিশ্চিত হতে চায়, তারপর সঙ্গে সঙ্গে সেই সাইটের প্রতিটি পেজ থেকে SignalHost-এর কোড সরিয়ে দেয় এবং এর প্রবেশাধিকার বাতিল করে। অন্য সাইটগুলো সংযুক্ত থাকে, আর আপনার কনটেইনার ও তার ডেটা আপনার SignalHost অ্যাকাউন্টে থেকে যায়।

signalhost.io-তে কনটেইনার পেজে লেখা থাকে “আপনার সাইটের TYPO3 এক্সটেনশন দিয়ে ইনস্টল করা”। এর “পরিচালনা করুন” বোতাম নিয়ে যায় সেটিংস › সংযুক্ত সাইট-এ, যেখানে “সংযোগ বিচ্ছিন্ন করুন”-ও কাজ করে: এক্সটেনশন তার পরবর্তী যোগাযোগে, সাধারণত এক ঘণ্টার মধ্যে, SignalHost লোড করা বন্ধ করে।

ক্লাসিক মোডে Extension Manager-এ এক্সটেনশনটি নিষ্ক্রিয় করলে প্রতিটি সাইটের প্রবেশাধিকার বাতিল হয় এবং এর সংরক্ষিত সবকিছু মুছে যায়। composer remove কোনো TYPO3 কোড চালায় না, তাই আগে প্রতিটি সাইটের সংযোগ বিচ্ছিন্ন করুন; নইলে সেগুলো সেটিংস › সংযুক্ত সাইট-এ তালিকাভুক্ত থেকে যায়, আর সেখান থেকেই সেগুলোর সংযোগ বিচ্ছিন্ন করতে হয়।

যখন কিছু কাজ করে না

  • কার্ডে লেখা “SignalHost sends you back to the site's own address after connecting”: আপনি অন্য একটি ডোমেইনের অধীনে ব্যাকএন্ড খুলেছেন। সাইটের ডোমেইনে পেজটি খুলতে এর নিচের বোতামটি ব্যবহার করুন।
  • “Could not check (your server refused a request to itself)”: আপনার হোস্ট তার নিজের ঠিকানায় যাওয়া রিকোয়েস্ট আটকায়। এতে আপনার ভিজিটরদের সম্পর্কে কিছুই বোঝা যায় না; আপনার হোম পেজের সোর্সে আপনার ট্যাগিং ঠিকানাটি খুঁজুন।
  • “An older copy is on the page”, অথবা “The code is on the page twice”: কোনো টেমপ্লেটে, TypoScript-এ বা অন্য কোনো এক্সটেনশনে হাতে একটি কপি পেস্ট করা হয়েছিল। সেটি সরিয়ে দিন; এক্সটেনশন বর্তমান কপিটি যোগ করে, আর দুটি কপি প্রতিটি ভিজিট দুবার গোনে।
  • একটি নোটিশ যে আপনার সাইট আগে থেকেই Google-এর নিজস্ব স্নিপেট দিয়ে একটি Tag Manager কনটেইনার লোড করে: সেই স্নিপেটটি সরিয়ে দিন, কারণ এখন SignalHost কনটেইনারটি লোড করে, আর দুটো একসঙ্গে প্রতিটি ভিজিট দুবার গোনে।
  • “This site's address has changed since it was connected”: কোনো কপিতে, যেমন স্টেজিংয়ে, কিছুই পাঠানো হয় না। লাইভ সাইটটি সরে গিয়ে থাকলে সংযোগ বিচ্ছিন্ন করে আবার সংযুক্ত করুন।
  • অন্য যেকোনো সমস্যা: আপনার সাইটের ঠিকানাসহ hello@signalhost.io-তে লিখুন।

ট্রেডমার্ক

SignalHost হলো Algorithmo GmbH-এর একটি স্বাধীন প্রোডাক্ট, এবং এটি TYPO3 Association, Google, Meta বা TikTok-এর সঙ্গে সম্পৃক্ত নয় বা তাদের দ্বারা অনুমোদিত নয়। Google Analytics, Google Ads ও Google Tag Manager হলো Google LLC-এর ট্রেডমার্ক; Meta হলো Meta Platforms, Inc.-এর ট্রেডমার্ক; TikTok হলো ByteDance Ltd.-এর ট্রেডমার্ক; TYPO3 হলো TYPO3 Association-এর রেজিস্টার্ড ট্রেডমার্ক।

অ্যাড ব্লকারের কারণে আর ডেটা হারাবেন না

বিনামূল্যে শুরু করুন। কয়েক মিনিটে প্রথম কনটেইনার চালু করুন।