আপনি যদি এমন একটি অ্যাপ্লিকেশন তৈরি করেন যা অফলাইনে কাজ করে, তাহলে ব্যবহারকারীরা আপনার অ্যাপের সাথে কীভাবে ইন্টারঅ্যাক্ট করছেন তা বোঝা যখন তাদের সংযোগ নেই তখন সেই অভিজ্ঞতাটি অপ্টিমাইজ করার জন্য গুরুত্বপূর্ণ।
গুগল অ্যানালিটিক্সের মতো অ্যানালিটিক্স প্রদানকারীদের তাদের সার্ভারে ডেটা পাঠাতে একটি নেটওয়ার্ক সংযোগ প্রয়োজন, যার অর্থ সংযোগ অনুপলব্ধ হলে, সেই অনুরোধগুলি ব্যর্থ হবে এবং সেই মিথস্ক্রিয়াগুলি আপনার বিশ্লেষণ প্রতিবেদন থেকে অনুপস্থিত থাকবে। এটা হবে যে তারা কখনও হয়নি.
ওয়ার্কবক্স গুগল অ্যানালিটিক্স ব্যর্থ অনুরোধ শনাক্ত করার জন্য সার্ভিস ওয়ার্কারের ক্ষমতা ব্যবহার করে গুগল অ্যানালিটিক্স ব্যবহারকারীদের জন্য এই সমস্যার সমাধান করে।
Google Analytics পরিমাপ প্রোটোকলে HTTP অনুরোধের মাধ্যমে সমস্ত ডেটা গ্রহণ করে, যার অর্থ পরিমাপ প্রোটোকলে পাঠানো ব্যর্থ অনুরোধগুলি সনাক্ত করতে একটি পরিষেবা কর্মী স্ক্রিপ্ট একটি ফেচ হ্যান্ডলার যোগ করতে পারে৷ এটি এই অনুরোধগুলিকে IndexedDB-এ সঞ্চয় করতে পারে এবং সংযোগ পুনরুদ্ধার করা হলে পরে আবার চেষ্টা করতে পারে।
ওয়ার্কবক্স গুগল অ্যানালিটিক্স ঠিক এই কাজ করে। এটি analytics.js এবং gtag.js স্ক্রিপ্টগুলিকে ক্যাশে করার জন্য হ্যান্ডলারগুলিকে যুক্ত করে, যাতে সেগুলি অফলাইনেও চালানো যেতে পারে। অবশেষে, যখন ব্যর্থ অনুরোধগুলি পুনরায় চেষ্টা করা হয়, তখন ওয়ার্কবক্স Google Analytics স্বয়ংক্রিয়ভাবে অনুরোধ পেলোডে qt
সেট করে (বা আপডেট করে) যাতে নিশ্চিত করা যায় যে Google Analytics-এ টাইমস্ট্যাম্পগুলি আসল ব্যবহারকারীর ইন্টারঅ্যাকশনের সময় প্রতিফলিত করে।
ওয়ার্কবক্স Google Analytics সক্ষম করা হচ্ছে
ওয়ার্কবক্স গুগল অ্যানালিটিক্স সক্ষম করতে, initialize()
পদ্ধতিতে কল করুন:
import * as googleAnalytics from 'workbox-google-analytics';
googleAnalytics.initialize();
Google Analytics-এ ব্যর্থ অনুরোধগুলি সারিবদ্ধ করতে এবং পুনরায় চেষ্টা করার জন্য এটিই একমাত্র কোড, এবং এটি Google Analytics অফলাইনে কাজ করার সবচেয়ে সহজ উপায়।
যাইহোক, শুধুমাত্র উপরের কোডটি ব্যবহার করলে, পুনঃপ্রচেষ্টার অনুরোধগুলি প্রথম চেষ্টায় সফল হওয়া অনুরোধগুলি থেকে আলাদা করা যায় না। এর মানে হল আপনি অফলাইন ব্যবহারকারীদের কাছ থেকে সমস্ত ইন্টারঅ্যাকশন ডেটা পাবেন, কিন্তু ব্যবহারকারী অফলাইনে থাকাকালীন কোন ইন্টারঅ্যাকশন হয়েছে তা আপনি বলতে পারবেন না।
এই উদ্বেগ মোকাবেলা করার জন্য, আপনি নীচে বর্ণিত কনফিগারেশন বিকল্পগুলির একটি ব্যবহার করতে পারেন যা পুনঃপ্রচেষ্টার অনুরোধে পাঠানো হয় তা পরিবর্তন বা টীকা করতে।
কি ডেটা পাঠানো হয় তা পরিবর্তন করা হচ্ছে
আপনি যদি পুনঃপ্রচেষ্টা না করা অনুরোধগুলি থেকে পুনরায় চেষ্টা করা অনুরোধগুলিকে আলাদা করতে সক্ষম হতে চান তবে আপনি parameterOverrides
বা hitFilter
কনফিগারেশন বিকল্পগুলি নির্দিষ্ট করতে পারেন।
এই বিকল্পগুলি আপনাকে পরিমাপ প্রোটোকল পরামিতিগুলি সংশোধন করতে দেয় যা পুনরায় চেষ্টা করা অনুরোধে পাঠানো হয়। parameterOverrides
বিকল্পটি ব্যবহার করা উচিত যখন আপনি প্রতিটি পুনঃপ্রচেষ্ট অনুরোধের জন্য একটি নির্দিষ্ট প্যারামিটারের জন্য একই মান সেট করতে চান। hitFilter
বিকল্পটি এমন ক্ষেত্রে ব্যবহার করা উচিত যেখানে একটি নির্দিষ্ট প্যারামিটারের মান রানটাইমে গণনা করা প্রয়োজন বা অন্য প্যারামিটারের মান থেকে প্রাপ্ত করা প্রয়োজন।
নীচের উদাহরণগুলি দেখায় যে আপনি কীভাবে উভয় বিকল্প ব্যবহার করবেন।
উদাহরণ
অনলাইন বনাম অফলাইন ইন্টারঅ্যাকশন ট্র্যাক করতে একটি কাস্টম মাত্রা ব্যবহার করা
অনলাইন বনাম অফলাইন ইন্টারঅ্যাকশনের জন্য Google Analytics-এর কোনো অন্তর্নির্মিত মাত্রা নেই। যাইহোক, আপনি কাস্টম মাত্রা নামক একটি বৈশিষ্ট্য ব্যবহার করে ঠিক এই উদ্দেশ্যে আপনার নিজস্ব মাত্রা তৈরি করতে পারেন।
ওয়ার্কবক্স গুগল অ্যানালিটিক্সের সাথে একটি কাস্টম মাত্রা ব্যবহার করে পরিষেবা কর্মী দ্বারা রিপ্লে করা অনুরোধগুলি ট্র্যাক করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- Google Analytics-এ একটি নতুন কাস্টম মাত্রা তৈরি করুন । এটিকে "নেটওয়ার্ক স্ট্যাটাস" এর মতো একটি নাম দিন এবং এটির সুযোগকে "হিট" এ সেট করুন (যেহেতু কোনো মিথস্ক্রিয়া অফলাইন হতে পারে)।
নতুন তৈরি করা মাত্রার জন্য নির্ধারিত সূচীটি নোট করুন এবং আপনার ওয়ার্কবক্স Google Analytics কোডের
parameterOverrides
কনফিগারেশন বিকল্পে প্যারামিটারের নাম হিসাবে পাস করুন।উদাহরণস্বরূপ, যদি এটি আপনার প্রথম কাস্টম মাত্রা হয়, তাহলে এর সূচী হবে
1
, এবং প্যারামিটারের নাম হবেcd1
(যদি সূচকটি8
হয় তাহলেcd8
হবে):import * as googleAnalytics from 'workbox-google-analytics'; googleAnalytics.initialize({ parameterOverrides: { cd1: 'offline', }, });
(ঐচ্ছিক) যেহেতু
parameterOverrides
মানগুলি শুধুমাত্র পুনরায় চেষ্টা করা ("অফলাইন") অনুরোধগুলিতে প্রয়োগ করা হয়, আপনি অন্য সমস্ত অনুরোধের জন্য "অনলাইন" এর একটি ডিফল্ট মান সেট করতে চাইতে পারেন। যদিও এটি কঠোরভাবে প্রয়োজনীয় নয়, এটি আপনার প্রতিবেদনগুলিকে পড়া সহজ করে তুলবে৷
উদাহরণস্বরূপ, আপনি যদি Google Analytics ইনস্টল করার জন্য ডিফল্ট analytics.js ট্র্যাকিং স্নিপেট ব্যবহার করেন, তাহলে আপনি আপনার "নেটওয়ার্কের জন্য'online'
এর একটি ডিফল্ট মান ব্যবহার করতেga('set', 'dimension1', 'online')
লাইন যোগ করতে পারেন। স্থিতি" পরিষেবা কর্মী দ্বারা রিপ্লে না করা সমস্ত অনুরোধের জন্য কাস্টম মাত্রা।<script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-XXXXX-Y', 'auto'); // Set default value of custom dimension 1 to 'online' ga('set', 'dimension1', 'online'); ga('send', 'pageview'); </script>
সারিতে কাটানো সময়ের অনুরোধগুলি ট্র্যাক করতে একটি কাস্টম মেট্রিক ব্যবহার করে৷
অফলাইন ইন্টারঅ্যাকশন হওয়ার সময় এবং কানেক্টিভিটি পুনরুদ্ধার করার সময় এবং অনুরোধটি সফলভাবে পুনঃপ্রচেষ্ট করার মধ্যে কতটা সময় অতিবাহিত হয়েছে তা আপনি জানতে আগ্রহী হলে, আপনি একটি কাস্টম মেট্রিক এবং hitFilter
কনফিগারেশন বিকল্প ব্যবহার করে এটি ট্র্যাক করতে পারেন:
- Google Analytics-এ একটি নতুন কাস্টম মেট্রিক তৈরি করুন । এটিকে "অফলাইন কিউ টাইম" এর মতো একটি নাম দিন, এর সুযোগকে "হিট" এ সেট করুন এবং এটির বিন্যাসের ধরনটি "সময়" (সেকেন্ডে) সেট করুন।
qt
প্যারামের মান পেতেhitFilter
বিকল্পটি ব্যবহার করুন এবং এটিকে 1000 দ্বারা ভাগ করুন (সেকেন্ডে রূপান্তর করতে)। তারপর নতুন তৈরি মেট্রিকের সূচকের সাথে একটি প্যারাম হিসাবে সেই মানটি সেট করুন। এটি আপনার প্রথম কাস্টম মেট্রিক হলে, প্যারামিটারের নাম হবে'cm1'
:import * as googleAnalytics from 'workbox-google-analytics'; googleAnalytics.initialize({ hitFilter: (params) => { const queueTimeInSeconds = Math.round(params.get('qt') / 1000); params.set('cm1', queueTimeInSeconds); }, });
ওয়ার্কবক্স গুগল অ্যানালিটিক্স পরীক্ষা করা হচ্ছে
যেহেতু ওয়ার্কবক্স গুগল অ্যানালিটিক্স ইভেন্টগুলি রিপ্লে করতে ব্যাকগ্রাউন্ড সিঙ্ক ব্যবহার করে, এটি পরীক্ষা করার জন্য অজ্ঞাত হতে পারে। ওয়ার্কবক্স ব্যাকগ্রাউন্ড সিঙ্ক টেস্টিং এ আরও পড়ুন।
প্রকারভেদ
GoogleAnalyticsInitializeOptions
বৈশিষ্ট্য
- cacheName
স্ট্রিং ঐচ্ছিক
- প্যারামিটার ওভাররাইড করে
বস্তু ঐচ্ছিক
- ফিল্টার হিট করুন
অকার্যকর ঐচ্ছিক
hitFilter
ফাংশন এর মত দেখাচ্ছে:(params: URLSearchParams) => {...}
- params
URLSearchParams
পদ্ধতি
পরামিতি
- বিকল্প