সার্ভার-সাইড ট্যাগিংয়ের একটি ভূমিকা

সার্ভার-সাইড ট্যাগিং হল Google ট্যাগ ম্যানেজার ব্যবহার করার একটি নতুন উপায় যা ডিভাইস জুড়ে আপনার অ্যাপ্লিকেশনকে ইনস্ট্রুমেন্ট করতে পারে৷ সার্ভার কন্টেইনারগুলি একই ট্যাগ, ট্রিগার এবং পরিবর্তনশীল মডেল ব্যবহার করে যা আপনি ব্যবহার করেছেন, পাশাপাশি নতুন সরঞ্জামগুলিও সরবরাহ করে যা আপনাকে ব্যবহারকারীর কার্যকলাপ যেখানেই ঘটবে তা পরিমাপ করতে দেয়৷

সার্ভার-সাইড ট্যাগিং ছাড়া একটি সাধারণ ট্যাগিং কনফিগারেশন বিভিন্ন সংগ্রহ সার্ভারে পরিমাপ ডেটা পাঠাতে পৃষ্ঠার একটি পাত্রের উপর নির্ভর করে। চিত্র 1 কিভাবে একটি ওয়েব ব্রাউজারে চলমান একটি ট্যাগ ম্যানেজার ওয়েব কন্টেইনার একাধিক সার্ভারে ডেটা পাঠায় তার একটি উদাহরণ তুলে ধরে।

একটি Google ট্যাগ ম্যানেজার ওয়েব কন্টেইনার ব্যবহার করার জন্য একটি সাইটের চিত্র

চিত্র 1: গুগল ট্যাগ ম্যানেজার ওয়েব কন্টেইনার ব্যবহার করার জন্য একটি সাইটের একটি চিত্র।

বিপরীতে, একটি সার্ভার কন্টেইনার ব্যবহারকারীর ব্রাউজারে বা তাদের ফোনে চলে না। পরিবর্তে, এটি এমন একটি সার্ভারে চলে যা আপনি নিয়ন্ত্রণ করেন।

সার্ভার-সাইড ট্যাগিং কন্টেইনার ব্যবহার করে একটি সাইটের চিত্র।

চিত্র 2: একটি ট্যাগিং কনফিগারেশনের একটি উদাহরণ যা একটি সার্ভার কন্টেইনার ব্যবহার করে।

সার্ভারটি আপনার নিজস্ব Google ক্লাউড প্ল্যাটফর্ম প্রজেক্টে চলে—অথবা আপনার পছন্দের ভিন্ন পরিবেশে —এবং আপনি এটিকে অন্য কোথাও পাঠানোর সিদ্ধান্ত না নেওয়া পর্যন্ত সার্ভারের ডেটাতে শুধুমাত্র আপনারই অ্যাক্সেস থাকবে৷ সেই ডেটা কীভাবে আকৃতির হয় এবং সার্ভার থেকে কোথায় পাঠানো হয় তার উপর আপনার সম্পূর্ণ নিয়ন্ত্রণ আছে। ট্যাগগুলি স্যান্ডবক্সযুক্ত জাভাস্ক্রিপ্ট প্রযুক্তি ব্যবহার করে তৈরি করা হয়। অনুমতিগুলি আপনাকে ট্যাগটি কী করতে পারে তার দৃশ্যমানতা দেয় এবং নীতিগুলি আপনাকে কন্টেইনারের চারপাশে সীমানা নির্ধারণ করতে দেয়৷

সার্ভার ব্যবহারকারীর ডিভাইস থেকে ওয়েব অনুরোধ গ্রহণ করে এবং সেই অনুরোধগুলিকে ইভেন্টে রূপান্তরিত করে। প্রতিটি ইভেন্ট কন্টেইনারের ট্যাগ, ট্রিগার এবং ভেরিয়েবল দ্বারা প্রক্রিয়া করা হয়। একটি সার্ভার কন্টেইনারে ট্যাগ, ট্রিগার এবং ভেরিয়েবল ঠিক তেমনই কাজ করে যেমন তারা অন্যান্য ধরনের কন্টেইনারে করে: ট্রিগারগুলি নির্দিষ্ট শর্তগুলি খোঁজার জন্য প্রতিটি ইভেন্ট পরীক্ষা করে এবং উপযুক্ত হলে, ফায়ার ট্যাগগুলি প্রক্রিয়া করার জন্য ইভেন্ট ডেটা পাঠায়।

এই মডেলটি সার্ভার পাত্রে দুটি গুরুত্বপূর্ণ প্রশ্ন উপস্থাপন করে:

  • কিভাবে পরিমাপ ডেটা ব্যবহারকারীর ডিভাইস থেকে সার্ভার কন্টেইনারে যায়?
  • কিভাবে একটি সার্ভার কন্টেইনারে পাঠানো পরিমাপ ডেটা একটি ইভেন্টে পরিণত হয়?

উভয় প্রশ্নের উত্তর সার্ভার পাত্রে ব্যবহারের জন্য একটি নতুন ধরনের সত্তা: একটি ক্লায়েন্ট

কিভাবে ক্লায়েন্ট কাজ

ক্লায়েন্টরা ব্যবহারকারীর ডিভাইস এবং আপনার সার্ভার কন্টেইনারে চলমান সফ্টওয়্যারের মধ্যে অ্যাডাপ্টার। ক্লায়েন্ট একটি ডিভাইস থেকে পরিমাপ ডেটা গ্রহণ করে, সেই ডেটাটিকে এক বা একাধিক ইভেন্টে রূপান্তরিত করে, কন্টেইনারে ডেটা প্রক্রিয়া করার জন্য রুট করে এবং অনুরোধকারীকে ফেরত পাঠানোর জন্য ফলাফলগুলি প্যাকেজ করে।

এটা অনেক মাল! আসুন পৃথকভাবে প্রতিটি অংশে ঘনিষ্ঠভাবে নজর দেওয়া যাক। চিত্র 3 ব্যবহারকারীর ওয়েব ব্রাউজার থেকে সার্ভার কন্টেইনারে এবং আপনার ওয়েব সার্ভার থেকে সার্ভার কন্টেইনারে প্রবাহিত ডেটা দেখায়।

সার্ভার-সাইড ট্যাগিং কন্টেইনার ব্যবহার করে একটি সাইটের চিত্র।

চিত্র 3: একটি ভিন্ন ক্লায়েন্ট ডেটার প্রতিটি স্ট্রিম পরিচালনা করে।

ক্লায়েন্টরা একটি ডিভাইস থেকে পরিমাপ ডেটা গ্রহণ করে। ধরা যাক যে আপনি তিনটি জায়গায় ব্যবহারকারীর কার্যকলাপ পরিমাপ করতে চান: একটি ওয়েবসাইট, একটি ফোন অ্যাপ এবং একটি স্মার্ট টোস্টার৷ আপনার ওয়েবসাইট Google Analytics ব্যবহার করে, আপনার ফোন অ্যাপ ফায়ারবেস অ্যানালিটিক্স ব্যবহার করে এবং আপনার টোস্টার "ToastMeasure" নামে একটি মালিকানাধীন প্রোটোকল ব্যবহার করে।

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

এই তিনটি পাত্রের জায়গায়, আপনার সার্ভার কন্টেইনারে তিনটি ক্লায়েন্ট রয়েছে। কন্টেইনারে আসা প্রতিটি অনুরোধ প্রতিটি ক্লায়েন্ট দ্বারা অগ্রাধিকার ক্রমে প্রক্রিয়া করা হবে, প্রথমে সর্বোচ্চ অগ্রাধিকার ক্লায়েন্ট। প্রতিটি ক্লায়েন্ট প্রথম যে কাজটি করবে তা হল এই ধরনের অনুরোধ কীভাবে প্রক্রিয়া করতে হয় তা জানে কিনা। যদি এটি সম্ভব হয়, ক্লায়েন্ট অনুরোধটি "দাবি" করে এবং প্রক্রিয়াকরণের পরবর্তী পর্যায়ে চলতে থাকে। অনুরোধ দাবি করার কাজটি পরবর্তী ক্লায়েন্টদের চলতে বাধা দেয়। যদি ক্লায়েন্ট অনুরোধটি প্রক্রিয়া করতে না পারে তবে এটি কিছুই করে না এবং অন্য ক্লায়েন্টদের অনুরোধটি পরিচালনা করতে হবে কিনা তা সিদ্ধান্ত নিতে দেয়।

ক্লায়েন্টরা অনুরোধের ডেটাকে এক বা একাধিক ইভেন্টে রূপান্তর করে। একবার ToastMeasure ক্লায়েন্ট একটি অনুরোধ দাবি করলে, তাকে অনুরোধটিকে এমন কিছুতে রূপান্তর করতে হবে যা বাকি কন্টেইনার বুঝতে পারে। যে কিছু ঘটনা একটি সেট.

ইভেন্টগুলি এমন জিনিস যা ঘটে যা আপনি পরিমাপ করতে চান। এগুলি যেকোনও হতে পারে: start_toasting , finish_toasting , বা buy_bread । একটি ক্লায়েন্ট যে ইভেন্টগুলি তৈরি করে তার গঠন সম্পর্কে কিছু সুপারিশ রয়েছে, তবে একমাত্র প্রয়োজন হল বাকি ধারকটি সেগুলি বোঝে।

ক্লায়েন্টরা কন্টেইনার চালায়। ক্লায়েন্ট অনুরোধটি দাবি করেছে এবং এটিকে ইভেন্টে পরিণত করেছে। এখন ট্যাগ, ট্রিগার এবং ভেরিয়েবলের সময়। ক্লায়েন্ট আরও প্রক্রিয়াকরণের জন্য প্রতিটি ইভেন্ট বাকি পাত্রে পাস করে।

ক্লায়েন্টরা ডিভাইসে ফেরত পাঠানোর জন্য ফলাফল প্যাকেজ করে। একবার কন্টেইনার চলে গেলে, টোস্টারে সাড়া দেওয়ার সময় এসেছে। প্রতিক্রিয়া অনেক ফর্ম নিতে পারে. হয়তো ক্লায়েন্ট শুধু বলে "ঠিক আছে, হয়ে গেছে।" হয়তো ট্যাগগুলির একটি অন্য সংগ্রহ সার্ভারে অনুরোধটি পুনঃনির্দেশ করতে চায়। অথবা ট্যাগগুলির মধ্যে একটি টোস্টারের আলোকে রঙ পরিবর্তন করতে বলে। যাই ঘটুক না কেন, ফলাফল প্যাকেজ আপ করা এবং অনুরোধকারীর কাছে ফেরত পাঠানো ক্লায়েন্টের কাজ।

সৌভাগ্যবশত, ট্যাগ ম্যানেজার আপনার জন্য এর অনেক কিছু পরিচালনা করে। সার্ভার পাত্রে তিনটি ক্লায়েন্ট অন্তর্ভুক্ত রয়েছে: Google Analytics 4, Google Analytics: Universal Analytics, এবং Measurement Protocol। এই ক্লায়েন্টরা আপনার কন্টেইনার তৈরি করার সাথে সাথে আপনার অ্যাপ্লিকেশনকে ইনস্ট্রুমেন্ট করা শুরু করার জন্য আপনার প্রয়োজনীয় সরঞ্জামগুলি সরবরাহ করে।

একটি সংক্ষিপ্ত উদাহরণ

আসুন একটি দ্রুত উদাহরণ দিয়ে দেখি কিভাবে সমস্ত টুকরো একসাথে ফিট করে। এই উদাহরণে, আপনি নিম্নলিখিত তৈরি করবেন:

  1. একটি সাধারণ ওয়েবসাইট যা সার্ভার কন্টেইনারে একটি click ইভেন্ট পাঠাতে gtag.js ব্যবহার করে।
  2. একটি Google Analytics 4 ক্লায়েন্ট যে ইভেন্টটি গ্রহণ করে।
  3. একটি ট্রিগার যা একটি click ইভেন্টে ফায়ার করে।
  4. একটি Google Analytics 4 ট্যাগ যা প্রক্রিয়াকরণের জন্য Google Analytics-এ ইভেন্ট ডেটা পাঠায়।

এই উদাহরণের জন্য, আমরা ধরে নেব যে আপনি ইতিমধ্যেই আপনার সার্ভার কন্টেইনার তৈরি এবং স্থাপন করেছেন

gtag.js কনফিগার করুন

প্রথমে, আপনার সার্ভার কন্টেইনারে ডেটা পাঠাতে gtag.js কনফিগার করুন। gtag.js-এর মাধ্যমে, আপনার সার্ভার কন্টেইনারে ডেটা পাঠানো ঠিক Google Analytics-এ ডেটা পাঠানোর মতো কাজ করে, একটি পরিবর্তনের মাধ্যমে। নীচের উদাহরণ পৃষ্ঠার মতো, সার্ভার কন্টেইনারে নির্দেশ করতে server_container_url কনফিগার বিকল্পটি সেট করুন।

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'TAG_ID', {
    server_container_url: 'https://analytics.example.com',
  });
</script>

আপনার ট্যাগ আইডি দিয়ে TAG_ID প্রতিস্থাপন করুন। আপনার সার্ভার কন্টেইনার URL দিয়ে https://analytics.example.com প্রতিস্থাপন করুন।

এরপরে, click ইভেন্টগুলি পরিচালনা করতে একটি sendEvent() ফাংশন যুক্ত করুন:

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'TAG_ID', {
    server_container_url: 'https://analytics.example.com',
  });

  function sendEvent() {
    gtag('event', 'click');
  }
</script>

<button onclick="javascript:sendEvent()">Send Event</button>

আপনার ট্যাগ আইডি দিয়ে TAG_ID প্রতিস্থাপন করুন। আপনার সার্ভার কন্টেইনার URL দিয়ে https://analytics.example.com প্রতিস্থাপন করুন।

এই কনফিগারেশনের সাহায্যে, ইভেন্ট হ্যান্ডলার যেমন sendEvent() ফাংশন এই উদাহরণে অন্তর্ভুক্ত আপনার সার্ভার কন্টেইনারে একটি click ইভেন্ট পাঠাবে।

Google Analytics 4 ক্লায়েন্ট

আপনার ধারকটি সার্ভারে পৌঁছানোর পরে ইভেন্টটি গ্রহণ করার জন্য একটি ক্লায়েন্টের প্রয়োজন৷ সৌভাগ্যবশত, সার্ভার কন্টেনারগুলি একটি Google Analytics 4 ক্লায়েন্ট পূর্বে ইনস্টল করা আছে, তাই আপনি ইতিমধ্যে এই পদক্ষেপটি সম্পন্ন করেছেন।

ট্রিগার ক্লিক করুন

এরপরে, একটি ট্রিগার তৈরি করুন যা click ইভেন্টে ফায়ার করে। একটি কাস্টম ট্রিগার তৈরি করুন যা ইভেন্টের নাম বিল্ট-ইন ভেরিয়েবল "ক্লিক" এর সমান হলে ফায়ার করে।

ট্রিগার কনফিগারেশন

Google Analytics 4 ট্যাগ

অবশেষে, ট্রিগারে একটি GA4 ট্যাগ সংযুক্ত করুন। ক্লায়েন্টদের মতো, একটি সার্ভার কন্টেইনারে একটি GA4 ট্যাগ অন্তর্ভুক্ত থাকে। সহজভাবে ট্যাগ তৈরি করুন, আপনার সেটিংস কনফিগার করুন এবং এখন আপনি আপনার কন্টেইনারটি ওয়্যার আপ করেছেন৷ GA4 ক্লায়েন্ট এবং GA4 ট্যাগ একসাথে কাজ করার জন্য ডিজাইন করা হয়েছে। এর মানে হল যে আপনাকে যা করতে হবে তা হল একটি GA4 ট্যাগ তৈরি করা এবং এর কনফিগারেশনটি ক্লায়েন্ট থেকে আসা ইভেন্টগুলি থেকে স্বয়ংক্রিয়ভাবে টেনে নেওয়া হবে।

ধারক পূর্বরূপ

এখন কন্টেইনার কনফিগার করা হয়েছে, পূর্বরূপ ক্লিক করুন। একটি ভিন্ন ব্রাউজার উইন্ডোতে আপনার ওয়েবসাইট দেখুন. অনুরোধ এবং ইভেন্টগুলি আপনার সার্ভার কন্টেনারে পাঠানো হলে, আপনি পূর্বরূপ পৃষ্ঠার বাম দিকে তালিকাভুক্ত অনুরোধ এবং ইভেন্টগুলি দেখতে পাবেন।

একবার আপনি আপনার পরিবর্তনের সাথে খুশি হলে, সার্ভার ধারকটি প্রকাশ করুন।

প্রথম পক্ষের পরিবেশন সহ উত্পাদন মোডের জন্য আপনার সার্ভার কনফিগার করুন৷

আপনার সার্ভার কন্টেইনারে কোনো উৎপাদন ট্র্যাফিক পাঠানোর আগে, আমরা দৃঢ়ভাবে আপনার প্রথম পক্ষের ডোমেনে সার্ভার ইনস্টল করার এবং সার্ভারটিকে প্রোডাকশন মোডে আপগ্রেড করার সুপারিশ করি৷