Google Analytics 4 থেকে ইমপোর্ট
GA4-এর সংখ্যা এখানে আনার দুটি উপায়: MousePlayer মোট কতটা দেখতে পায় তার জন্য দৈনিক মোট সংখ্যা, এবং আমরা রেকর্ড করতে পারিনি এমন ভিজিটের জন্য BigQuery এক্সপোর্ট থেকে একক GA4 সেশন।
1. কী আসে, কী আসে না
দুটি পথই পড়ে আপনার Google অ্যাকাউন্ট থেকে এবং আলাদাভাবে চালু হয়। আলাদা প্রশ্নের উত্তর দেয়, দুটিই দরকার নেই।
| পথ | যা আনে | উদ্দেশ্য |
|---|---|---|
| Data API | দৈনিক মোট সংখ্যা: সেশন, ব্যবহারকারী, পৃষ্ঠা দেখা, সম্পৃক্ত সেশন | কতটা ধরা পড়ছে সেই প্রশ্ন। GA4 গুনেছে 3,000টি সেশন, MousePlayer রেকর্ড করেছে 40টি — তুলনার সংখ্যা ছাড়া পার্থক্য টেরই পাওয়া যায় না। |
| BigQuery ইমপোর্ট | ইভেন্টসহ একক GA4 সেশন | MousePlayer রেকর্ড করতে পারেনি এমন ভিজিটে কী ঘটেছে। |
ইমপোর্ট করা সেশন রিপ্লে করা যায় না। GA4 পৃষ্ঠার স্ন্যাপশট বা মাউসের নড়াচড়া রাখে না, তাই রিপ্লে তৈরির উপাদান নেই। রেকর্ডিংয়ের পাশে সংখ্যা ও ইভেন্ট পান — তার বেশি নয়, এবং বেশি বলে দেখাই না।
ইমপোর্ট আলাদা টেবিলে থাকে এবং কখনো আপনার রেকর্ডিংয়ের সঙ্গে মেশে না। অন্যথায় সব গণনা করা সংখ্যার অর্থ নীরবে বদলে যেত — আচরণের প্রোফাইল, দর্শকের মূল্যায়ন, বাধার বিশ্লেষণ — এবং পরে কোন সারি মাপা আর কোনটি আনা তা কেউ বলতে পারত না।
2. পথ 1: Data API
দুটি জিনিস দরকার: ওয়েব প্রপার্টি ID ও Service Account কী।
ওয়েব প্রপার্টি ID মেজারমেন্ট ID নয়
সবচেয়ে বেশি ব্যর্থ চেষ্টার কারণ এটি, এবং Google-এর নিজের ত্রুটির বার্তায় কারণটি বলা হয় না। এই মেজারমেন্ট ID দেখতে এমন: G-ABC123XYZ, আপনার ট্র্যাকিং কোডে থাকে এবং সব জায়গায় দেখা যায়। অন্যদিকে ওয়েব প্রপার্টি ID শুধু সংখ্যা, অ্যাডমিন বিভাগে Admin, Property settings-এ দেখা যায়। দ্বিতীয়টিই দরকার; 400 ত্রুটিতে যেতে না দিয়ে আমরা নোটসহ প্রথমটি প্রত্যাখ্যান করি।
Service Account তৈরি ও অনুমতি দেওয়া
- Google Cloud Console-এ Service Account তৈরি করে JSON কী তৈরি করুন।
- একই প্রকল্পে চালু করুন Google Analytics Data API।
- GA4-এর Admin, Property access management-এ Service Account-এর ইমেইল ঠিকানা যোগ করুন এই ভূমিকা দিয়ে: Viewer। Service Account নিজেই আলাদা ব্যবহারকারী; এই ধাপ ছাড়া Google 403 দেয়, কারণ না বলেই।
JSON ফাইলের বিষয়বস্তু ঘরে পেস্ট করুন। এনক্রিপ্ট করে সংরক্ষিত হয় এবং পরে শুধু সংক্ষিপ্ত রূপে দেখায়।
3. পথ 2: BigQuery ইমপোর্ট
এই পথ GA4-এর অপরিশোধিত এক্সপোর্ট পড়ে। GA4-এ একবার সেট আপ করতে হবে: Admin, BigQuery links। পরের দিন থেকে শুধু টেবিল দেখা যায় — তার আগে ইমপোর্ট কিছু পায় না, এবং তা ত্রুটি নয়।
যা দিতে হবে
- এই GCP প্রকল্প ID যেখানে এক্সপোর্ট আছে। MousePlayer ডেটা যে প্রকল্পে এক্সপোর্ট করেন সেটিই হতে হবে এমন নয়।
- এই ডেটাসেট ID। GA4 এর নাম দেয়
analytics_<propertyId>। - Service Account কী, যার অনুমতি আছে BigQuery Data Viewer ডেটাসেটে এবং BigQuery Job User প্রকল্পে। পড়ার অনুমতিই যথেষ্ট; এর বেশি দেবেন না।
খরচ কত, কে দেয়
BigQuery বিল করে পড়া বাইটের ভিত্তিতে, এবং সেই বিল আপনার। তাই ইমপোর্ট প্রতিবার শুধু কয়েক দিন পড়ে ও একটিই কোয়েরি চালায় — দ্বিতীয়টি একই টেবিল আবার পড়ত। তার ওপর নির্দিষ্ট সর্বোচ্চ সীমা কোয়েরি থামায় আগেই , খরচ বেশি হওয়ার আগেই; তখন ডেলিভারি লগের বার্তা বলে সময়সীমা অনেক বড়।
ব্যবধান
ডিফল্টভাবে প্রতি ছয় ঘণ্টায়, এবং প্রতিবার শেষ তিন দিনের তথ্য আবার আনে। এটি ইচ্ছেমতো নয়: GA4 সর্বোচ্চ 48 ঘণ্টা পর্যন্ত আগের তথ্য পূরণ করে, এবং দৈনিক এক্সপোর্ট পরের দিন আসে। বেশি বার চাইলেও নতুন সংখ্যা পাবেন না, একইগুলোই পাবেন।
4. দুই দিককে যুক্ত করার কী
আপনি আরও সেট করলে এই অ্যানালিটিক্স ব্রিজ GA4-এ, MousePlayer প্রতিটি সেশনে ক্লায়েন্ট ID রেকর্ড করে এই _ga কুকি থেকে। BigQuery এক্সপোর্টে ঠিক একই মান থাকে এই নামে: user_pseudo_id।
এটি দিয়ে GA4 সেশন আপনার কোনো রেকর্ডিংয়ের সঙ্গে মেলানো যায় — উল্টো দিকে একই ভিজিটে GA4 কী গুনেছে তাও দেখতে পারেন। ব্রিজ ছাড়া দুই দিক শুধু পাশাপাশি থাকে, সংযোগহীন।
নিজের গ্রাহক পরিচয়চিহ্নও একই ঘরে থাকে, যদি ব্যবহার করেন setUserId()। দুটো একসঙ্গে রাখা যায় না: হয় Google ক্লায়েন্ট ID, নয়তো আপনার নিজের নম্বর থাকবে।
5. সম্মতি, ধরে রাখার মেয়াদ, মুছে ফেলা
যা এসেছে তাতে কুকি ছিল
শুধু সেই সারি ইমপোর্ট হয় যাতে আছে একটি user_pseudo_id । দর্শক প্রত্যাখ্যান করলে GA4 Consent Mode-এ কুকিবিহীন হিট পাঠায়, তাতে এটি থাকে না — তাই কাউকে আশ্বাস দিতে না হয়েই বাদ যায়। মডেল করা, অর্থাৎ অনুমান করা সারিও একই কারণে বাদ থাকে: অনুমানকে সেশন হিসেবে রাখলে কখনো না ঘটা ভিজিট রাখা হতো।
কত দিন থাকে
ডিফল্টভাবে 180 দিন, সারিটি যে দিনের কথা বলে সে দিন থেকে — ইমপোর্টের মুহূর্ত থেকে নয়। অন্যথায় মেয়াদ কখনো শেষ হতো না, কারণ প্রতিবার একই দিনগুলো আবার আনা হয়।
মুছে ফেলা
দর্শক তাঁর ডেটা মোছার অনুরোধ করলে ইমপোর্ট করা GA4 সেশনও মোছে — উপরের পরিচয়চিহ্ন দিয়ে যতটুকু তাঁর বলে চেনা যায়। প্রকল্প মুছলে সব ক্ষেত্রেই মুছে যায়, আপনার কোনো রেকর্ডিংয়ের অংশ ছিল না এমন সারিও। দৈনিক ধরে রাখার মেয়াদের প্রক্রিয়া ইচ্ছাকৃতভাবে এগুলো ছোঁয় না: GA4 ডেটা নিজস্ব মেয়াদে চলে, আপনার রেকর্ডিং আগে শেষ হয়।
6. কিছু না এলে
প্রতিবার ইন্টিগ্রেশনের পৃষ্ঠার ডেলিভারি লগে ফল লেখা হয় — ব্যর্থতাও, সহজ ভাষায়। সাধারণত তাতেই কী নেই বোঝা যায়।
| বার্তা | করণীয় |
|---|---|
| ওয়েব প্রপার্টি ID শুধু সংখ্যা হতে হবে | মেজারমেন্ট ID দিয়েছেন। সঠিক নম্বর GA4-এর Property settings-এ আছে। |
| Data API থেকে HTTP 403 | Service Account GA4 ওয়েব প্রপার্টিতে Viewer নয় অথবা GCP প্রকল্পে Data API চালু নেই। |
| ডেটাসেট বা এক্সপোর্ট টেবিল পাওয়া যায়নি | BigQuery লিংক নেই, ডেটাসেটের নাম আলাদা অথবা এখনও এক দিন পেরোয়নি। |
| প্রবেশের অনুমতি নেই (BigQuery) | Service Account-এর ডেটাসেটে BigQuery Data Viewer বা প্রকল্পে BigQuery Job User অনুমতি নেই। |
| কোয়েরি অনেক বেশি ডেটা পড়ত | খরচের সীমা বিল হওয়ার আগেই থামিয়েছে। ছোট সময়সীমা বেছে নিন। |
| সময়সীমায় সেশন নেই | ত্রুটি নয়। আনা দিনগুলোয় সম্মতিসহ সেশন ছিল না। |