অ্যাকাউন্ট ঝুঁকিতে না ফেলে VPN-এ AdMob বিজ্ঞাপন পরীক্ষা করুন
ডিভাইস VPN-এ থাকা অবস্থায় AdMob পরীক্ষা করার রানবুক: টেস্ট ডিভাইস নিবন্ধন করুন, একটি রিকোয়েস্ট ক্যাপচার করুন, লেবেল যাচাই করুন এবং রিলিজের আগে পরিষ্কার করুন।
আপনি জানতে চান আপনার বিজ্ঞাপন ইন্টিগ্রেশন ব্যবহারকারীদের প্রকৃত নেটওয়ার্কে টিকে থাকে কি না। দূরের এক্সিট পুনরুৎপাদন করার সবচেয়ে সহজ উপায় VPN। ভুলটা হলো সেই পরীক্ষাকে আয়ের পরীক্ষা হিসেবে ধরা।
এক্সিট দেশ বদলালে নতুন দর্শক তৈরি হয় না, আর আপনার নিজের ট্যাপগুলো যোগ্য ট্র্যাফিকেও পরিণত হয় না। এটি শুধু একটি রিকোয়েস্টের পথ বদলায়।
তাই নথিভুক্ত ক্রমসহ এটিকে কানেক্টিভিটি পরীক্ষা হিসেবে চালান, এবং লাইভ ইনভেন্টরি সম্পূর্ণ এর বাইরে রাখুন। নিচের ধাপগুলো প্রতিটি বিল্ডে পুনরাবৃত্তি করার মতো।
পরীক্ষাটি কীসের জন্য তা ঠিক করুন
দুটি প্রশ্ন মিশে যায়। প্রথমটি হলো কোনো নির্দিষ্ট নেটওয়ার্ক পথ থেকে একটি রিকোয়েস্ট আদৌ সার্ভ হয় কি না, যা একটি ইন্টিগ্রেশন ও কানেক্টিভিটি প্রশ্ন। দ্বিতীয়টি হলো ওই দেশের প্রকৃত ব্যবহারকারীরা কী আয় করতেন, যা একটি রিপোর্টিং ও ব্যবসায়িক প্রশ্ন এবং SDK আপনার হয়ে তার উত্তর দিতে পারে না।
কেবল প্রথমটিই ডেভেলপমেন্ট ডিভাইস থেকে পরীক্ষা করা যায়। আনুমানিক আয় রিপোর্টিং সময়কাল শেষ হওয়ার আগেও বদলাতে পারে, তাই নিজে তৈরি করা পরীক্ষায় দেখা কোনো সংখ্যা যোগ্য আয়ের প্রমাণও নয়, অন্য কারও জন্য পূর্বাভাসও নয়।
সংযোগ করার আগেই প্রশ্নটি লিখে ফেলুন: যেমন, এই বিল্ডে ডিভাইস জার্মানি দিয়ে এক্সিট করলে একটি ব্যানার রিকোয়েস্ট কি ফিল দেয়। আপনি যদি আয়ের সংখ্যা চান, এখানেই থামুন, কারণ কোনো VPN কনফিগারেশনই এমন সংখ্যা তৈরি করে না।
উড়ানের আগে: ঠিকানাটি নয়, ডিভাইসটি নিবন্ধন করুন
Google-এর টেস্ট-বিজ্ঞাপন ডকুমেন্টেশন দুটি সমর্থিত পথ দেয়। যে ফরম্যাট ইন্টিগ্রেট করছেন তার জন্য ডেমো বিজ্ঞাপন ইউনিট ব্যবহার করুন, অথবা ভৌত ডিভাইসটিকে টেস্ট ডিভাইস হিসেবে নিবন্ধন করে নিজের ইউনিট ব্যবহার করুন। দুটোই প্রতি প্ল্যাটফর্ম ও প্রতি SDK প্রজন্মে নথিভুক্ত, আর Next-Gen ও Legacy গাইড পরস্পর বিনিময়যোগ্য নয়।
নিবন্ধন হলো একটি ডিভাইস শনাক্তকারী, আর এর সঙ্গে নেটওয়ার্ক ঠিকানার কোনো সম্পর্ক নেই। ফোনের ট্র্যাফিক কোথা থেকে বের হয় তা বদলালে কিছুই নিবন্ধিত হয় না। Android-এ শনাক্তকারীটি SDK লগ করে, এবং আপনি এটি কোডে প্রয়োগ করেন:
RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("YOUR_TEST_DEVICE_ID"))
নেটওয়ার্ক বদলানোর আগে নিবন্ধন নিশ্চিত করুন, নইলে ব্যর্থ ফিল আর কখনো নিবন্ধিত হয়নি এমন ডিভাইসে দেখানো লাইভ বিজ্ঞাপনের পার্থক্য আপনি বুঝতে পারবেন না। বিজ্ঞাপনটি Test Ad লেবেল দেখালে রিকোয়েস্টটি টেস্ট ইনভেন্টরি দিয়ে গেছে; না দেখালে আপনি অন্য কিছু দেখছেন এবং তাতে ট্যাপ করা উচিত নয়।
নির্দিষ্ট ক্রমে ধারাবাহিকতাটি চালান
নেটওয়ার্ক ছাড়া সবকিছু অপরিবর্তিত রাখুন। একই বিল্ড, একই বিজ্ঞাপন ইউনিট, একই প্লেসমেন্ট, একই অ্যাপ অবস্থা। দুটি ভেরিয়েবল বদলালে আপনি কিছুই শিখবেন না।
প্রথমে বেসলাইন। VPN বিচ্ছিন্ন রেখে প্লেসমেন্ট লোড করুন এবং একটি টেস্ট বিজ্ঞাপন দেখা যাচ্ছে কি না নিশ্চিত করুন। logcat-এ adb logcat | grep -i ads দিয়ে রিকোয়েস্টটি ধরে নিন এবং রেসপন্স কোডটি লিখে রাখুন। বেসলাইনে ফিল না পাওয়া VPN-এর সমস্যা নয়।
তারপর সংযোগ করে পুনরাবৃত্তি করুন। একই বিল্ড, একই ইউনিট, একই প্লেসমেন্ট, VPN চালু। একই লগ লাইনগুলো ধরে নিন। আপনি খুঁজছেন একটি পার্থক্য: ফিল হয়ে যাওয়া একটি টাইমআউট, কখনো বের না হওয়া একটি রিকোয়েস্ট, বদলে যাওয়া একটি এরর কোড। ফিল থেকে যাওয়া ফিল আপনাকে বলে ওই পথে ইন্টিগ্রেশন ঠিক আছে এবং পরীক্ষা শেষ।
পরিবেশটি লিখে রাখুন। SDK সংস্করণ, অ্যাডাপ্টার সংস্করণ, বিল্ডের ধরন, বিজ্ঞাপনের ফরম্যাট, এক্সিট দেশ এবং পর্যবেক্ষণ করা ফলাফল। সেই রেকর্ড ছাড়া পরের ব্যক্তি পরীক্ষাটি শূন্য থেকে পুনরাবৃত্তি করে একই প্রমাণ থেকে ভিন্ন সিদ্ধান্তে পৌঁছায়।
মিডিয়েশন আলাদা পরীক্ষা
মিডিয়েটেড বিজ্ঞাপনে Google-এর Test Ad লেবেল থাকে না, যা এগুলোকে এমন কিছুতে ক্লিক করার সবচেয়ে সহজ জায়গা করে তোলে যা করা উচিত নয়। মিডিয়েশন স্ট্যাকের প্রতিটি নেটওয়ার্কের নিজস্ব টেস্ট মোড ও নিজস্ব সেটআপ আছে, এবং Google-এর টেস্ট কনফিগারেশন তাদের পর্যন্ত বিস্তৃত নয়।
অ্যাডাপ্টারগুলো একবারে একটি করে পরীক্ষা করুন, অ্যাডাপ্টারের নিজস্ব টেস্ট মোড চালু রেখে, এবং লগ থেকে নিশ্চিত করুন কোন নেটওয়ার্ক বিজ্ঞাপনটি সার্ভ করেছে। কোন অ্যাডাপ্টার ফিল করেছে এবং এটি টেস্ট ক্রিয়েটিভ ছিল কি না তা আপনি বলতে না পারলে ইম্প্রেশনটিকে লাইভ ইনভেন্টরি ধরে নিন এবং হাত দেবেন না।
এখানেই ইনভ্যালিড-ট্র্যাফিক নীতি গুরুত্বপূর্ণ। স্ব-ক্লিক, পুনরাবৃত্ত ইম্প্রেশন, স্বয়ংক্রিয় ইন্টারঅ্যাকশন এবং প্রতারণামূলক ট্র্যাফিক সবই এর আওতায় পড়ে, আর কী হয় দেখার জন্য একটি অনিশ্চিত ক্লিক ঠিক সেই ধরনটাই, যা ওই নিয়মগুলো বর্ণনা করে।
রোলব্যাক ও রিলিজ গেট
টেস্ট কনফিগারেশন শিপ করা যাবে না। রিলিজ বিল্ডের আগে ডেমো বিজ্ঞাপন ইউনিটগুলো প্রোডাকশন ইউনিট দিয়ে বদলান, টেস্ট ডিভাইসের তালিকা সরান এবং শুধু ডেভেলপমেন্টের জন্য থাকা সব ফ্ল্যাগ মুছে ফেলুন। স্মৃতির উপর ভরসা না করে রিলিজ ভ্যারিয়েন্টে টেস্ট শনাক্তকারীগুলো grep করুন; একটি অনাথ এন্ট্রি নীরব ব্যর্থতা, যা কেবল হারানো আয় হিসেবে দেখা যায়।
তারপর উল্টো দিকটি যাচাই করুন: একটি নিবন্ধিত টেস্ট ডিভাইসে রিলিজ বিল্ড ইনস্টল করুন এবং নিশ্চিত করুন রিকোয়েস্টটি আর টেস্ট ট্র্যাফিক হিসেবে বিবেচিত হচ্ছে না। যদি এটি এখনো লেবেল দেখায়, তাহলে কনফিগারেশনে কিছু টিকে আছে।
এরপর একটি নথিভুক্ত টেস্ট পথ রেখে দিন, যাতে পরের নেটওয়ার্ক প্রশ্নটির উত্তর লাইভ ইনভেন্টরিতে হাত না দিয়েই দেওয়া যায়। টেস্ট বিজ্ঞাপন কখনোই অ্যাকাউন্ট রিপোর্টে দেখা যায় না, তাই পরিষ্কার বিচ্ছেদ রিপোর্টের নির্ভুলতায় কোনো খরচ করে না এবং আপনাকে একটি পুনরাবৃত্তিযোগ্য ডায়াগনস্টিক দেয়।