শুধু কল্পনা করুন: আপনি আপনার অ্যান্ড্রয়েড ব্যবহারকারীদের লক্ষ্য করে একটি পুশ ক্যাম্পেইন চালু করেছেন। ড্যাশবোর্ড বলছে “পাঠানো হয়েছে”। কিন্তু খোলার হার আপনার প্রত্যাশার অর্ধেক — এবং আপনি বলতে পারছেন না যে সমস্যাটি খারাপ ক্রিয়েটিভ নাকি ভাঙা ডেলিভারির।
অ্যান্ড্রয়েডে, উত্তরটি প্রায়শই এর কোনোটিই নয়। নোটিফিকেশন চ্যানেল, প্রায়োরিটি সেটিংস এবং আক্রমণাত্মক OEM ব্যাটারি পলিসি ব্যবহারকারীদের দেখার আগেই আপনার বার্তাগুলোকে নিঃশব্দে মেরে ফেলতে পারে। ড্যাশবোর্ড এটি ফ্ল্যাগ করবে না। আপনার অ্যানালিটিক্স এটি ব্যাখ্যা করবে না। বার্তাগুলো শুধু অদৃশ্য হয়ে যায়।
এটি একটি ডায়াগনস্টিক প্লেবুক: অ্যান্ড্রয়েড ডেলিভারি ফানেল আসলে কোথায় ভাঙে, এবং আপনি এটি সম্পর্কে কী করতে পারেন — সপ্তাহের পর সপ্তাহ ডেভেলপারদের তদন্ত ছাড়াই।
আপনার পুশ নোটিফিকেশনগুলো আসলে কোথায় হারিয়ে যায়?
বেশিরভাগ মোবাইল অ্যাপ টিম ২টি সংখ্যা ট্র্যাক করে: পাঠানো এবং খোলা। কিন্তু অ্যান্ড্রয়েডে, ৪টি পর্যায় রয়েছে — এবং সবচেয়ে বড় ক্ষতি হয় মাঝখানে, যেখানে কেউ দেখছে না।
প্রতিটি ট্রানজিশনের নিজস্ব ব্যর্থতার মোড রয়েছে:
পাঠানো → ডেলিভারি। বার্তাটি আপনার সার্ভার থেকে বেরিয়েছে কিন্তু ডিভাইসে পৌঁছায়নি। সাধারণ কারণ: মেয়াদোত্তীর্ণ FCM টোকেন, দীর্ঘ সময়ের জন্য ডিভাইস অফলাইন থাকা, আপনার ডাটাবেসে এখনও পুরনো টোকেন সহ আনইনস্টল করা অ্যাপ।
ডেলিভারি → প্রদর্শিত। বার্তাটি ডিভাইসে পৌঁছেছে কিন্তু ব্যবহারকারীকে কখনও দেখানো হয়নি। এখানেই অ্যান্ড্রয়েড-নির্দিষ্ট সমস্যাগুলো থাকে: OEM ব্যাটারি অপটিমাইজেশন নোটিফিকেশনকে মেরে ফেলে, নোটিফিকেশন চ্যানেল মিউট বা নিষ্ক্রিয় করা থাকে, প্রায়োরিটি সেটিংস সাইলেন্ট ডেলিভারির কারণ হয়।
প্রদর্শিত → খোলা। ব্যবহারকারী নোটিফিকেশনটি দেখেছেন কিন্তু ট্যাপ করেননি। এখানেই ক্রিয়েটিভ, সময় এবং প্রাসঙ্গিকতা আসলে গুরুত্বপূর্ণ — কিন্তু শুধুমাত্র প্রথম ২টি পর্যায় কাজ করছে তা নিশ্চিত করার পরেই।
মূল অন্তর্দৃষ্টি: যদি আপনার ডেলিভারি-টু-ডিসপ্লেড অনুপাত কম হয়, তাহলে কপির উপর কোনো পরিমাণ A/B টেস্টিং সাহায্য করবে না। আপনি এমন একটি বার্তা অপ্টিমাইজ করছেন যা কেউ দেখে না। এখানে ৩টি ধাপে আসল সমস্যা খুঁজে বের করার এবং সমাধান করার উপায় রয়েছে।
অ্যান্ড্রয়েড পুশ ডেলিভারির শীর্ষ ৩টি নীরব ঘাতক
নোটিফিকেশন চ্যানেল: ১টি ডিফল্ট চ্যানেল ≠ কৌশল
অ্যান্ড্রয়েড ৮.০ থেকে, প্রতিটি নোটিফিকেশনকে একটি চ্যানেলে বরাদ্দ করতে হবে। ব্যবহারকারীরা প্রতিটি চ্যানেল স্বাধীনভাবে নিয়ন্ত্রণ করতে পারেন — এটিকে মিউট করতে, এর আচরণ পরিবর্তন করতে বা সম্পূর্ণরূপে নিষ্ক্রিয় করতে পারেন।
সমস্যা: যখন সমস্ত বার্তা — প্রচার, লেনদেন সংক্রান্ত সতর্কতা, অনুস্মারক — ১টি ডিফল্ট চ্যানেলের মাধ্যমে যায়, তখন একজন বিরক্ত ব্যবহারকারী সবকিছু মিউট করে দেন। তারা কম প্রচার চেয়েছিলেন; পরিবর্তে, তারা অর্ডার কনফার্মেশন, পেমেন্ট রসিদ এবং নিরাপত্তা সতর্কতাও হারিয়ে ফেলেন।
কী করতে হবে: ব্যবহারের ক্ষেত্র অনুযায়ী চ্যানেল গঠন করুন। ন্যূনতম, লেনদেন সংক্রান্ত বার্তা (অর্ডারের স্থিতি, পেমেন্ট কনফার্মেশন) এবং প্রচারমূলক বার্তা (অফার, রি-এনগেজমেন্ট) আলাদা করুন। প্রতিটি চ্যানেলের নিজস্ব গুরুত্বের স্তর থাকে।
ডায়াগনস্টিক সংকেত: যদি সমস্ত ধরনের বার্তা — প্রচারমূলক এবং লেনদেন সংক্রান্ত — জুড়ে ড্রপ-অফ হার একই রকম হয়, তাহলে সম্ভবত আপনার চ্যানেল কাঠামোই সমস্যা। ব্যবহারকারীরা সেই ১টি চ্যানেল মিউট করছেন যা সবকিছু বহন করে।
প্রায়োরিটি এবং ইম্পরট্যান্স: কেন আপনার বার্তা নিঃশব্দে পৌঁছায়
২টি স্তর রয়েছে যা একটি নোটিফিকেশনের আচরণ নিয়ন্ত্রণ করে, এবং সেগুলোকে গুলিয়ে ফেলা সবচেয়ে সাধারণ ভুলগুলোর মধ্যে একটি।
FCM প্রায়োরিটি নির্ধারণ করে যে সিস্টেমটি কত দ্রুত ডিভাইসে বার্তাটি ডেলিভার করবে। HIGH প্রায়োরিটি ডিভাইসটিকে অবিলম্বে জাগিয়ে তোলে; NORMAL ব্যাচ করে পাঠানো হতে পারে এবং বিলম্বিত হতে পারে।
চ্যানেল ইম্পরট্যান্স নির্ধারণ করে যে নোটিফিকেশনটি ডিভাইসে আসার পর ব্যবহারকারীর কাছে কীভাবে প্রদর্শিত হবে। HIGH ইম্পরট্যান্স একটি হেডস-আপ ব্যানার এবং শব্দ ট্রিগার করে। DEFAULT নোটিফিকেশন শেডে নিঃশব্দে দেখায়।
ফাঁদ: HIGH FCM প্রায়োরিটি + DEFAULT চ্যানেল ইম্পরট্যান্স = বার্তাটি অবিলম্বে ডিভাইসে পৌঁছায়, তারপর নোটিফিকেশন ট্রে-তে অদৃশ্যভাবে বসে থাকে। অ্যানালিটিক্স বলে “ডেলিভারি হয়েছে”। ব্যবহারকারী কখনও লক্ষ্য করেননি।
OEM ব্যাটারি পলিসি
স্টক অ্যান্ড্রয়েড গল্পের একটি অংশ মাত্র। Samsung, Xiaomi, Huawei, Oppo, এবং Vivo প্রত্যেকেই অ্যান্ড্রয়েডের ডিফল্টের উপরে তাদের নিজস্ব আক্রমণাত্মক ব্যাটারি অপটিমাইজেশন প্রয়োগ করে। এই পলিসিগুলো আপনার অ্যাপকে পুশ নোটিফিকেশন গ্রহণ করা থেকে সম্পূর্ণরূপে আটকাতে পারে — এমনকি যখন FCM টোকেন বৈধ এবং ডেলিভারি “সফল” হয়।
এখানে প্রস্তুতকারক অনুযায়ী এটি কীভাবে ভাঙে:
- Xiaomi (MIUI): অটostার্ট ডিফল্টরূপে নিষ্ক্রিয় থাকে। একটি ডিভাইস রিবুট করার পরে, আপনার অ্যাপ পুশ নোটিফিকেশন গ্রহণ করতে পারে না যতক্ষণ না ব্যবহারকারী ম্যানুয়ালি এটি খোলে — যদি না তারা অটostার্ট অনুমতি দিয়ে থাকে।
- Huawei (EMUI/HarmonyOS): আক্রমণাত্মক অ্যাপ কিলিং ব্যাকগ্রাউন্ড প্রসেস বন্ধ করে দেয়। একটি নির্দিষ্ট সময় নিষ্ক্রিয় থাকার পর পুশ আসা বন্ধ হয়ে যায়, এমনকি যদি অ্যাপটি সম্প্রতি ব্যবহার করা হয়ে থাকে।
- Samsung (One UI): “স্লিপিং অ্যাপস” এবং “ডিপ স্লিপিং অ্যাপস” তালিকাগুলো ব্যবহারকারীর সম্প্রতি না খোলা অ্যাপগুলোর জন্য নোটিফিকেশন বিলম্বিত বা ব্লক করে।
- Oppo/Vivo (ColorOS/Funtouch): ব্যাকগ্রাউন্ড অ্যাক্টিভিটি সীমাবদ্ধতা নিঃশব্দে নোটিফিকেশন দমন করে। অ্যাপটি খোলা অবস্থায় স্বাভাবিকভাবে কাজ করে বলে মনে হয়, কিন্তু ব্যাকগ্রাউন্ড ডেলিভারি ব্যর্থ হয়।
সাধারণ সূত্র: এই সমস্ত OEM-গুলিতে, ব্যবহারকারীকে অবশ্যই আপনার অ্যাপকে ব্যাকগ্রাউন্ডে চালানোর জন্য স্পষ্টভাবে অনুমতি দিতে হবে। সেই অনুমতি ছাড়া, ডেলিভারি কাগজে-কলমে “সফল” হয়, কিন্তু নোটিফিকেশন কখনও দেখায় না।
ডায়াগনস্টিক সংকেত: যদি একই ক্যাম্পেইনের মধ্যে ডিভাইস প্রস্তুতকারক অনুযায়ী ডেলিভারি বা ওপেন রেট নাটকীয়ভাবে পরিবর্তিত হয়, তাহলে OEM সীমাবদ্ধতাই প্রায় নিশ্চিতভাবে কারণ।
কোথায় ভাঙছে তা খুঁজুন এবং সমাধান করুন
আপনি বুঝতে পারছেন কী ভুল হতে পারে। এখানে আপনার নির্দিষ্ট সমস্যা খুঁজে বের করার এবং সমাধান করার উপায় রয়েছে।
১. আপনার ডায়াগনস্টিক সরঞ্জাম সেট আপ করুন
ডিভাইস দ্বারা সেগমেন্ট করুন। OS সংস্করণ এবং ডিভাইস প্রস্তুতকারক দ্বারা অ্যান্ড্রয়েড-নির্দিষ্ট সেগমেন্ট তৈরি করুন। এটি আপনার সবচেয়ে গুরুত্বপূর্ণ ডায়াগনস্টিক টুল। এটি আপনাকে দেখতে দেয় যে ডেলিভারি সমস্যাগুলো সার্বজনীন নাকি কোনো নির্দিষ্ট OEM-এর মধ্যে সীমাবদ্ধ।
সম্পূর্ণ ফানেল ট্র্যাক করুন। নিশ্চিত করুন যে আপনার SDK শুধুমাত্র “পাঠানো” নয়, বরং “ডেলিভারি” এবং “খোলা” কে স্বতন্ত্র ইভেন্ট হিসেবে রিপোর্ট করার জন্য সেট আপ করা আছে। এটি ছাড়া, আপনি ফানেলের মাঝখানে অন্ধ।
ব্যবহারের ক্ষেত্র অনুযায়ী নোটিফিকেশন চ্যানেল গঠন করুন। ন্যূনতম, লেনদেন সংক্রান্ত (অর্ডারের স্থিতি, নিরাপত্তা সতর্কতা) এবং প্রচারমূলক (অফার, রি-এনগেজমেন্ট) বার্তা আলাদা করুন। প্রতিটি চ্যানেলের নিজস্ব গুরুত্বের স্তর থাকা উচিত।
ডেভেলপারদের জন্য করণীয় (এককালীন সেটআপ):
- ডিভাইস প্রস্তুতকারক, OS সংস্করণ এবং মডেলকে সেগমেন্টেশনের জন্য ব্যবহারকারী অ্যাট্রিবিউট হিসেবে পাস করুন
- ডেলিভারি ট্র্যাকিং SDK-তে সঠিকভাবে কনফিগার করা আছে কিনা তা যাচাই করুন
- উপযুক্ত গুরুত্বের স্তর সহ কোডে নোটিফিকেশন চ্যানেল সংজ্ঞায়িত করুন
২. একটি ডায়াগনস্টিক জার্নি চালান
একই ক্যাম্পেইন আপনার অ্যান্ড্রয়েড সেগমেন্টে (প্রস্তুতকারক দ্বারা বিভক্ত) এবং আপনার iOS দর্শকদের কাছে পাঠান। জার্নির ড্রপ-অফ এবং ওপেন ধাপে ধাপে তুলনা করুন।
এই উদ্দেশ্যে, আমরা একজন বিপণনকারী-বান্ধব Pushwoosh Customer Journey Builder ব্যবহার করার সুপারিশ করছি (আপনি বিনামূল্যে সাইন আপ করে এটি পরীক্ষা করতে পারেন):
- ⚠️ অ্যান্ড্রয়েড সেগমেন্টগুলো ডেলিভারি ধাপে ড্রপ করে, iOS স্থির থাকে → সমস্যাটি পরিকাঠামোগত: OEM সীমাবদ্ধতা, টোকেন সমস্যা, বা চ্যানেল ভুল কনফিগারেশন।
- ⚠️ উভয় প্ল্যাটফর্মই ওপেন ধাপে সমানভাবে ড্রপ করে → সমস্যাটি আপনার বার্তায়: ক্রিয়েটিভ, সময়, বা প্রাসঙ্গিকতা।
- ⚠️ একজন প্রস্তুতকারক অসামঞ্জস্যপূর্ণভাবে ড্রপ করে → আপনি একটি OEM-নির্দিষ্ট সমস্যা খুঁজে পেয়েছেন।
- ⚠️ ডেলিভারি ঠিক আছে, কিন্তু সমস্ত ডিভাইসে ওপেন কম → আপনার প্রায়োরিটি/ইম্পরট্যান্স সেটিংস পরীক্ষা করুন। আপনি হয়তো একটি DEFAULT-ইম্পরট্যান্স চ্যানেলে HIGH-প্রায়োরিটি বার্তা পাঠাচ্ছেন, যার মানে হল সেগুলো দ্রুত পৌঁছায় কিন্তু নিঃশব্দে প্রদর্শিত হয়।
৩. ভবিষ্যতের ক্ষতি প্রতিরোধ করুন
প্রায়োরিটির সাথে ইম্পরট্যান্স মেলান। সময়-সংবেদনশীল বার্তা (ফ্ল্যাশ সেল, নিরাপত্তা সতর্কতা) → HIGH প্রায়োরিটি, HIGH ইম্পরট্যান্স। অ-জরুরী বিষয়বস্তু (ডাইজেস্ট, টিপস) → NORMAL/DEFAULT।
সবকিছু HIGH সেট করবেন না — এটি ব্যবহারকারীদের আপনার চ্যানেলগুলো সম্পূর্ণরূপে মিউট করার একটি শর্টকাট।
ফ্রিকোয়েন্সি ক্যাপ এবং সাইলেন্স আওয়ার প্রয়োগ করুন। অতিরিক্ত বার্তা পাঠানো একটি মিউটেড চ্যানেলের দ্রুততম পথ। প্রতি-চ্যানেল ফ্রিকোয়েন্সি সীমা সেট করুন এবং সাইলেন্ট আওয়ার দিয়ে স্থানীয় সময় অঞ্চলকে সম্মান করুন। এটি ডেলিভারি ঠিক করে না — এটি এটিকে রক্ষা করে।
সাইলেন্ট পুশ বুদ্ধিমানের সাথে ব্যবহার করুন। সাইলেন্ট পুশ নোটিফিকেশন আপনাকে ব্যবহারকারীর কাছে দৃশ্যমান সতর্কতা ছাড়াই ব্যাকগ্রাউন্ডে অ্যাপের বিষয়বস্তু আপডেট এবং ডেটা সিঙ্ক করতে দেয়। এটি আপনার অ্যাপকে সতেজ রাখার জন্য একটি শক্তিশালী টুল — কিন্তু ব্যাটারি-অপ্টিমাইজড OEM-গুলিতে এর নিজস্ব ডেলিভারি সীমাবদ্ধতাও রয়েছে।
একটি ফলব্যাক জার্নি তৈরি করুন। এটি আপনার সুরক্ষা জাল। যদি একটি পুশ নোটিফিকেশন N ঘণ্টার মধ্যে খোলা না হয়, তাহলে একটি ভিন্ন চ্যানেলের মাধ্যমে একটি ফলো-আপ ট্রিগার করুন — ইন-অ্যাপ বার্তা, ইমেল, বা SMS। এটি আপনাকে OEM ডেলিভারি ব্যর্থতা, মিউটেড চ্যানেল এবং কম-এনগেজমেন্ট সেগমেন্টের জন্য কভার করে।
Pushwoosh দিয়ে আপনার অ্যান্ড্রয়েড পুশ ডেলিভারি ঠিক করুন
লক্ষ্য হল একটি পুনরাবৃত্তিযোগ্য চক্র: সেগমেন্ট → পরিমাপ → ব্যর্থতার বিন্দু চিহ্নিত করুন → সঠিক স্তরটি ঠিক করুন। যখন সমস্যা ডেলিভারিতে তখন ক্রিয়েটিভ নয়। যখন সমস্যা ক্রিয়েটিভে তখন ডেলিভারি নয়।
শুরু করতে প্রস্তুত? আপনার ফানেল আসলে কোথায় ভাঙে তা পরীক্ষা করতে Pushwoosh-এ আপনার প্রথম সেগমেন্ট তৈরি করুন।