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

ব্লগ

CookiePass আর Google Consent Mode: কুকি সম্মতির ব্যানার আপনার ট্রাফিকে কী করে

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

আমরা এই সাইটে CookiePass চালাই। এটি একটি কুকি সম্মতি সেবা, যা Google Consent Mode v2 ঠিক Google-এর নির্দেশনা অনুযায়ী প্রয়োগ করে, আর দেখা গেছে এই বৈশিষ্ট্যটি ব্যানারের রঙের চেয়ে বেশি গুরুত্বপূর্ণ: এটিই ঠিক করে প্রতিটি পেজ ভিউতে আপনার Google ট্যাগ কী পাঠাবে — ভিজিটর উত্তর দেওয়ার আগে, হ্যাঁ বলার পরে, আর না বলার পরে। সার্ভার-সাইড থেকে, যেখানে এই প্রতিটি হিট আপনার কনটেইনারের মধ্য দিয়ে যায়, ব্যাপারটা কেমন দেখায়, এখানে তা-ই বলা হলো।

Consent Mode আসলে কী বদলায়

Consent Mode আপনার ট্যাগের জন্য কোনো অন/অফ সুইচ নয়। এটি থাকলে Google ট্যাগ প্রতিটি পেজে ফায়ার হতেই থাকে; বদলায় প্রতিটি হিটের একটি ফ্ল্যাগ, আর সেই কারণে হিটটি নিয়ে Google কী করে। analytics_storage denied হলে ট্যাগটি কোনো কুকি সেট করে না, পেজ থেকে পেজে কোনো client id রাখে না, এবং Google যাকে cookieless ping (কুকিহীন পিং) বলে তা পাঠায় — এমন একটি হিট, যা GA4 আপনার পড়া রিপোর্টের জন্য নয়, মডেলিংয়ের জন্য ব্যবহার করে।

ফ্ল্যাগটি gcs নামের একটি কুয়েরি প্যারামিটার। এতে দুটি অক্ষর আর দুটি অঙ্ক থাকে: প্রথম অঙ্কটি ad_storage, দ্বিতীয়টি analytics_storage; granted হলে 1, denied হলে 0।

gcs=G100   ad_storage denied,  analytics_storage denied
gcs=G101   ad_storage denied,  analytics_storage granted
gcs=G110   ad_storage granted, analytics_storage denied
gcs=G111   both granted
(no gcs)   no Consent Mode on the page — treated as granted

শেষ লাইনটিই বেশিরভাগ মানুষ খেয়াল করেন না। যে পেজে Consent Mode একেবারেই নেই, সেটি কোনো gcs পাঠায় না, আর Google সেখান থেকে আসা প্রতিটি হিটকে সম্মতিপ্রাপ্ত হিসেবে ধরে। তাই Consent Mode প্রয়োগ করে এমন একটি ব্যানার যোগ করলে যা পাঠানো হয় তা কমে না — বরং তখন থেকে সে বিষয়ে সত্যি কথা বলা শুরু হয়।

CookiePass কীভাবে এটি সাজায়

Consent Mode v2-এর জন্য দরকার একটি ক্রম, কোনো একক সেটিং নয়। ডিফল্ট অবস্থা Google ট্যাগ লোড হওয়ার আগেই ঘোষণা করতে হবে — যিনি এখনও বেছে নেননি তার জন্য denied — আর ভিজিটর সিদ্ধান্ত নেওয়ার মুহূর্তেই একটি update আসতে হবে, তারপর প্রতিবার ফিরে আসার সময় তা পুনরুদ্ধার করতে হবে। ক্রম ভুল হলে প্রতিটি সেশনের প্রথম পেজ ভিউ ব্যানার দেখা দেওয়ার আগেই সম্মতিপ্রাপ্ত হিসেবে চলে যায়।

CookiePass নিজের স্ক্রিপ্ট থেকেই এই ক্রমটি তৈরি করে, তাই এর কিছুই আপনার Tag Manager কনটেইনারে যায় না:

gtag('consent', 'default', {
  ad_storage: 'denied',
  analytics_storage: 'denied',
  ad_user_data: 'denied',
  ad_personalization: 'denied',
  wait_for_update: 500
});

// …the visitor accepts…
gtag('consent', 'update', {
  ad_storage: 'granted',
  analytics_storage: 'granted',
  ad_user_data: 'granted',
  ad_personalization: 'granted'
});

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

সিদ্ধান্তের আগে ও পরে আপনার সার্ভার কনটেইনার কী দেখে

প্রতিটি হিট এখনও একই পথে যায়: ব্রাউজার এটি আপনার নিজের হোস্টনেমে পোস্ট করে, এজ এটি আপনার সার্ভার কনটেইনারে ফরোয়ার্ড করে, আর কনটেইনার এটি GA4-এ পাঠিয়ে দেয়। পার্থক্য পুরোটাই পেলোডে।

  • সিদ্ধান্তের আগে: প্রতিটি হিটে gcs=G100, কোনো _ga কুকি নেই, আর প্রতিটি পেজে নতুন একটি client id। GA4 পায় একটি কুকিহীন পিং; আপনার কনটেইনার একটি রিকোয়েস্ট গোনে।
  • সম্মতি দেওয়ার পর: gcs=G111, কুকি সেট হয়, আর সেশন জোড়া লাগে। এখান থেকে যে হিটগুলো আসে, সেগুলো দিয়েই আপনার রিপোর্ট তৈরি।
  • প্রত্যাখ্যানের পর: যতদিন সিদ্ধান্ত বহাল থাকে, প্রতিটি পেজে gcs=G100। Enhanced measurement ইভেন্টগুলো — scroll, file_download, বাকিগুলো — page_view-এর মতো একই নিয়ম মানে।

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

আপনার ট্রাফিকের সংখ্যার জন্য এর অর্থ কী

দুই কলামের সংখ্যা না মেলারই কথা, আর এই ফারাকটিই হবে পেজের সবচেয়ে কাজের সংখ্যা।

  • আপনার কনটেইনার যত রিকোয়েস্ট গোনে, Analytics তার চেয়ে কম ইউজার আর সেশন রিপোর্ট করে। পার্থক্যটা হলো সেই ভিজিটরদের অংশ যারা প্রত্যাখ্যান করেছেন বা কখনো উত্তর দেননি — আপনার সম্মতির হার, অনুমান করে নয়, মেপে পাওয়া।
  • প্রপার্টি Google-এর নির্ধারিত ন্যূনতম শর্ত পূরণ করলে GA4 আচরণগত মডেলিং দিয়ে এই ফারাকের কিছু অংশ পূরণ করতে পারে। মডেল করা ডেটা রিপোর্টে দেখা যায়; আপনার কনটেইনারে কখনো দেখা যায় না, কারণ তা কখনো পাঠানোই হয় না।
  • ad_storage denied থাকলে Google Ads কনভার্সন ট্র্যাকিংয়ের কৃতিত্ব দেওয়ার মতো কিছু থাকে না, আর কনভার্সন লিংকারেরও লিংক করার মতো কিছু থাকে না। সার্ভার কনটেইনার তা বদলায় না, আর বদলানো উচিতও নয়: ফার্স্ট-পার্টি মানে সম্মতি ছাড়াই চলবে, এমন নয়।
  • ব্যানারের ডিজাইন এখন একটি মেজারমেন্ট-সংক্রান্ত সিদ্ধান্ত। ৬০% সম্মতির হার আর ৮৫% সম্মতির হার একই সাইট, শুধু বাটন আলাদা — আর আপনার কোনটি, তা দেখা যাবে দুই কলামের ফারাকে।

একটি চেকলিস্ট

  • Google ট্যাগের আগে সম্মতির স্ক্রিপ্ট লোড করুন। প্রথম হিটের আগেই ডিফল্ট অবস্থা থাকতে হবে।
  • ব্যানারে উত্তর না দিয়ে একটি পেজ খুলুন, আর ব্রাউজারের নেটওয়ার্ক প্যানেলে একটি /g/collect রিকোয়েস্টে gcs দেখুন। সেখানে G100 থাকার কথা।
  • সম্মতি দিন, আর পরের পেজে আবার দেখুন। সেখানে G111 থাকার কথা।
  • সার্ভার কনটেইনারের কোনো কিছুতে সম্মতির ট্রিগার যোগ করবেন না। ওয়েব ট্যাগ আগে থেকেই অবস্থাটি বহন করে।
  • এক দিন পর কনটেইনার পেজে ফিরে এসে page_view-এর দুটি সংখ্যা দেখুন। সবুজটিকে দুটির যোগফল দিয়ে ভাগ করলে পাবেন আপনার সম্মতির হার।

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

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

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