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

ব্লগ

আপনার সার্ভার কনটেইনার যে প্রতিটি GA4 ইভেন্ট দেখে, আর প্রতিটি কোথা থেকে আসে

প্রকাশিত · আপডেট করা হয়েছে · পড়তে 5 মিনিট

GA4-কে সার্ভার কনটেইনারের মধ্য দিয়ে পাঠালে কোন কোন ইভেন্ট আছে, তা বদলায় না। বদলায় এটুকু যে, কোনগুলো পৌঁছায় তা আপনি অবশেষে দেখতে পান — কনটেইনার পেজ যে প্রতিটি ইভেন্ট নাম ফরোয়ার্ড করে, তা গোনে। এই তালিকা মানুষকে দুই দিক থেকেই অবাক করে: যে ইভেন্ট তাঁরা কখনো কনফিগার করেননি সেগুলো দেখা দেয়, আর যেগুলো আশা করেছিলেন সেগুলো আসে না। প্রতিটি ইভেন্ট কোথা থেকে আসে তা জানলে দুটোরই সহজ ব্যাখ্যা আছে।

যে চারটি ইভেন্ট Google ট্যাগ প্রতিটি প্রপার্টিতে পাঠায়

আপনার মেজারমেন্ট ID দিয়ে Google ট্যাগ লোড হওয়ামাত্রই চারটি ইভেন্ট আসতে শুরু করে, পেছনে কোনো সেটিং ছাড়াই। Analytics-এ এমন কিছু নেই যা এগুলো বন্ধ করে, আর আপনার কনটেইনারকেও এগুলো চাইতে হয় না।

  • page_view — প্রতিটি পেজ লোডে একটি, অথবা সিঙ্গেল-পেজ অ্যাপে প্রতিটি রুট পরিবর্তনে একটি, যদি স্ট্রিমের “page changes” অপশন চালু থাকে।
  • session_start — নতুন সেশনের প্রথম হিট। ত্রিশ মিনিট নিষ্ক্রিয় থাকলে সেশন শেষ হয়, তাই দুই ঘণ্টা পরে ফিরে আসা ভিজিটর আরেকটি সেশন শুরু করেন।
  • first_visit — প্রতি ব্রাউজারে একবার, সেই ব্রাউজার থেকে GA4-এর দেখা একেবারে প্রথম সেশনে। কুকি মুছে ফেললে আরেকটি তৈরি হয়।
  • user_engagement — পেজটি দশ সেকেন্ড সামনে (ফোরগ্রাউন্ডে) থাকলে, অথবা এনগেজ করার পরে ভিজিটর চলে গেলে পাঠানো হয়। GA4-এর এনগেজমেন্ট টাইম এখান থেকেই আসে।

আপনি যদি page_view দেখেন আর কিছুই না দেখেন, তাহলে ট্যাগ কাজ করছে। এটি কোনো ত্রুটি নয়; এটি এমন একটি সাইট, যার নিচ পর্যন্ত এখনো কেউ স্ক্রল করেননি।

Enhanced Measurement থেকে নয়টি ইভেন্ট — আর সেই সুইচ, যা ঠিক করে এর কোনোটি আপনি পাবেন কি না

GA4-এর Enhanced Measurement ব্রাউজারে আরও নয়টি ইভেন্ট সংগ্রহ করে, এর কোনোটির জন্যই ট্যাগ লাগে না। এগুলো কনফিগার করা হয় ডেটা স্ট্রিমে, Tag Manager-এ নয় — সে কারণেই একটি সার্ভার কনটেইনার এগুলোর অস্তিত্ব না জেনেই ফরোয়ার্ড করে।

প্রতিটির একটি শর্ত আছে, যা নাম শুনে যতটা মনে হয় তার চেয়ে কড়া।

  • scroll — প্রতি পেজে একবার, এবং শুধু তখনই যখন পেজের উচ্চতার ৯০% দৃশ্যমান হয়েছে। যেকোনো স্ক্রলে নয়: একেবারে নিচে পৌঁছালে। ভিউপোর্টের চেয়ে ছোট পেজে এটি কখনোই ফায়ার হয় না।
  • click — একটি আউটবাউন্ড ক্লিক, বর্তমান ডোমেইন ছাড়া অন্য কোনো ডোমেইনে। ইন্টারনাল লিংক গোনা হয় না। ইভেন্টটির নাম click, সঙ্গে একটি outbound প্যারামিটার; outbound_click বলে কিছু নেই।
  • view_search_results — এমন একটি পেজ লোড, যার URL-এ একটি সার্চ কোয়েরি প্যারামিটার থাকে (ডিফল্টভাবে q, s, search, query বা keyword)।
  • file_download — এমন একটি লিংকে ক্লিক, যার শেষে ডকুমেন্ট, আর্কাইভ, অডিও, ভিডিও বা স্প্রেডশিটের এক্সটেনশন আছে।
  • form_start এবং form_submit — পেজের কোনো ফর্মের সঙ্গে প্রথম ইন্টারঅ্যাকশন, এবং তার সাবমিশন।
  • video_start, video_progress এবং video_complete — শুধু এমবেড করা YouTube প্লেয়ারের জন্য, এবং শুধু তখনই যখন এমবেডে JS API সাপোর্ট চালু থাকে।

এবার সেই অংশ, যার জন্য মানুষের সপ্তাহের পর সপ্তাহ নষ্ট হয়। এই নয়টির প্রতিটিই স্ট্রিমের Enhanced Measurement মাস্টার সুইচের ওপর নির্ভর করে, আর Analytics ইন্টারফেসে নয়, Analytics Admin API দিয়ে তৈরি করা স্ট্রিমে সেই সুইচ বন্ধ (OFF) থাকে। API দিয়ে সেটিংস পড়লে প্রতিটি আলাদা টগল true দেখায়; মাস্টার সুইচটি রেসপন্সে থাকেই না, কারণ সেটি false, আর API false বুলিয়ান বাদ দিয়ে দেয়। ফলে সেটআপটি পুরোপুরি চালু দেখায়, অথচ পাঠায় শুধু page_view।

আমরা এটি আমাদের নিজের প্রপার্টিতে খুঁজে পেয়েছি। SignalHost আপনার জন্য প্রপার্টি তৈরি করার সময় মাস্টার সুইচটি চালু করে দেয়; আপনারটি অন্যভাবে তৈরি হয়ে থাকলে এবং scroll কখনো না এলে, Analytics-এ ডেটা স্ট্রিমটি খুলুন এবং নিচের টগলগুলো নয়, খোদ “Enhanced measurement” সুইচটি পরীক্ষা করুন।

যে ষোলোটি ইভেন্ট শুধু আপনার সাইটই পাঠাতে পারে

যে ইভেন্টগুলো টাকা আনে — একটি বিক্রি, একটি লিড, একটি সাইন-আপ — এই পেজে শুধু সেগুলোই কেউ স্বয়ংক্রিয়ভাবে পাঠায় না। GA4 এগুলোর নাম আর গঠন নির্ধারণ করে দেয়; আপনার সাইটকে প্রতিটি dataLayer-এ পুশ করতে হয়, হুবহু সেই নামে, ঠিক যে মুহূর্তে এটি ঘটে।

প্রতিটি SignalHost কনটেইনারে এর ষোলোটির জন্য একটি ট্রিগার আর একটি GA4 ইভেন্ট ট্যাগ অপেক্ষা করছে:

  • শপের ফানেলের জন্য নয়টি: view_item_list, view_item, add_to_cart, remove_from_cart, view_cart, begin_checkout, add_shipping_info, add_payment_info এবং purchase, প্রতিটির সঙ্গে একটি ecommerce অবজেক্ট যুক্ত।
  • লিডের জন্য পাঁচটি: generate_lead, contact, schedule, submit_application এবং subscribe।
  • সাইন-আপের জন্য দুটি: sign_up এবং start_trial।

সাধারণ (স্টক) Shopify থিম এর কোনোটিই পুশ করে না, WooCommerce core-ও করে না: সেটা করে একটি dataLayer অ্যাপ বা প্লাগইন, আর Shopify-তে চেকআউট ইভেন্টের জন্য একটি Custom Pixel লাগে, কারণ থিমের কনটেইনার চেকআউট পেজগুলোতে কখনো লোডই হয় না। আপনার সাইট এর যেকোনোটি পুশ করামাত্র সেটি ফরোয়ার্ড করার জন্য ট্যাগ তৈরি থাকে — পুশের ব্যবস্থা করা আপনার কাজ, আর Shopify ও WooCommerce নিয়ে আর্টিকেলটিতে ঠিক কী ইনস্টল করতে হবে তা বলা আছে।

আপনার কনটেইনারের “ইভেন্ট” কার্ডে “সমর্থিত ইভেন্ট” বাটনটি এদের সবগুলোর তালিকা দেখায় — প্রতিটির মানে কী এবং কী পুশ করতে হবে। আপনার কনটেইনার যদি নিজস্ব কোনো ট্যাগ দিয়ে এর কোনোটি ইতিমধ্যে GA4-এ পাঠায়, তবে SignalHost সেই ইভেন্টটি দুবার না গুনে আপনার ট্যাগের হাতেই ছেড়ে দেয়।

কনটেইনার পেজ যা গোনে

আপনার কনটেইনারের মধ্য দিয়ে যাওয়া প্রতিটি মেজারমেন্ট রিকোয়েস্ট ইভেন্ট নাম অনুযায়ী, প্রতিদিনের হিসাবে, ৪০০ দিন ধরে গোনা হয়। শুধু নামটি রাখা হয় — URL নয়, ক্লায়েন্ট ID নয়, একটি প্যারামিটারও নয় — আর সে কারণেই এত দিন রাখা নিরাপদ। তালিকাটি হলো আপনার হোস্টনেমে যা পৌঁছেছে, তাই এটি এমন একটি প্রশ্নের উত্তর দেয় যা Analytics নিজে দিতে পারে না: ব্রাউজার আদৌ এটি পাঠিয়েছিল কি?

গণনাগুলো অসমান হবে, এটাই স্বাভাবিক। প্রতিটি পেজ লোড একটি page_view; শুধু যে পেজ লোডগুলো নিচ পর্যন্ত পৌঁছায় সেগুলো scroll; শুধু যে সেশনগুলো দশ সেকেন্ড পার করে সেগুলো user_engagement। দশটি পেজ ভিউ আর দুটি scroll-সহ একটি সাইট সম্পূর্ণ স্বাভাবিক সাইট।

দুটি কারণে দুটি তালিকা কখনো হুবহু মিলবে না। যে ভিজিটর আপনার ব্যানারে এখনো উত্তর দেননি, তিনিও প্রতিটি ইভেন্ট পাঠান, কুকিবিহীন পিং হিসেবে, আর কনটেইনার সেটি গোনে যেখানে Analytics বাদ দেয় — পেজটি দুটি সংখ্যাই দেখায়, যাতে আপনি বুঝতে পারেন কোনটি কী। আর session_start ও first_visit কনটেইনার পেজে কখনো দেখাই যায় না: ব্রাউজার এগুলো ইভেন্ট হিসেবে পাঠায় না, প্রথম page_view-এ দুটি ফ্ল্যাগ সেট করে, আর Analytics নিজের দিকে ইভেন্টগুলো তৈরি করে নেয়।

তালিকার ওপরে কার্ডটি গুনে দেখায় ওই ষোলোটি ইভেন্টের কতগুলো গত ৩০ দিনে পৌঁছেছে, যাতে আপনার সাইট যেটি পাঠাতে ভুলে গেছে সেটি চোখে পড়ে।

যখন কোনো ইভেন্ট অনুপস্থিত

দুটি ক্ষেত্র, আর কনটেইনার পেজ এদের আলাদা করে চিনিয়ে দেয়।

ইভেন্টটি যদি কনটেইনারের তালিকায় না থাকে, আপনার সাইট এটি কখনো পাঠায়নি। যা পৌঁছায়নি, কনটেইনার তা ফরোয়ার্ড করতে পারে না। স্ট্যান্ডার্ড ইভেন্টের ক্ষেত্রে স্ট্রিমের Enhanced Measurement সুইচ পরীক্ষা করুন; ষোলোটির কোনোটির ক্ষেত্রে পরীক্ষা করুন যে dataLayer পুশটি ঘটছে, সঠিক নামে, যে পেজে ঘটার কথা সেখানেই।

ইভেন্টটি যদি কনটেইনারের তালিকায় থাকে কিন্তু Analytics-এ না থাকে, তবে এটি পৌঁছেছে এবং ফরোয়ার্ড হয়েছে, আর সমস্যাটি সীমারেখার ওপারে, Google-এর দিকে: ভুল মেজারমেন্ট ID, একটি ডেটা ফিল্টার, আপনি যে অ্যাকাউন্ট দেখছেন তার বদলে অন্য অ্যাকাউন্টে থাকা প্রপার্টি, অথবা নিছক রিপোর্টিংয়ের দেরি — রিয়েলটাইম রিপোর্ট কয়েক সেকেন্ডেই দেখায়, স্ট্যান্ডার্ড রিপোর্টে এক দিন লাগতে পারে।

একদম শূন্য থেকে শুরু করছেন? সার্ভার-সাইড Google Tag Manager কীভাবে সেট আপ করবেন, ধাপে ধাপে।

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

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