Google Interactive Media Ads SDK সংক্রান্ত প্রায়শই জিজ্ঞাসিত প্রশ্ন


আমি সব ফর্ম্যাটের জন্য বিজ্ঞাপন পাচ্ছি না কেন?
পরীক্ষামূলক বিজ্ঞাপন ট্যাগ এমনভাবে সেট-আপ করা হয় যাতে বৈধ অনুরোধের জন্য সবসময় বিজ্ঞাপন দেখানো যায়। এটি ইন্টিগ্রেশনকে সহজ করতে এবং আপনার প্লেয়ার কীভাবে বিজ্ঞাপন অনুরোধ করে ও রেন্ডার করে তা পরীক্ষা করে দেখা সহজ করতে তৈরি করা হয়েছে। তবে, আপনার সাইট, অ্যাকাউন্ট বা বিজ্ঞাপন ইউনিটের জন্য সব ফর্ম্যাটে বিজ্ঞাপন সবসময় উপলভ্য থাকে না। আপনার ইন্টিগ্রেশন যদি টেস্ট ট্যাগের জন্য সঠিকভাবে কাজ করে কিন্তু আপনার নিজের ট্যাগের জন্য না করে, তাহলে নিম্নলিখিত কারণগুলির মধ্যে একটি হতে পারে:
  • আপনি নিজের এনভায়রনমেন্টে কাজ করে না এমন ফর্ম্যাটের ভিডিও পরিবেশন করছেন। যেমন, আপনি iOS বা Android-এ শুধুমাত্র HTML5 বিজ্ঞাপন পরিবেশন করছেন।
  • আপনি Ad Manager ব্যবহার করলে, আপনার প্রকাশক আইডিতে এই মুহূর্তে টার্গেট করা কোনও বিজ্ঞাপন নাও থাকতে পারে। এছাড়াও, Ad Manager-এ প্রাসঙ্গিক বিজ্ঞাপন ও ক্রিয়েটিভ অনুমোদন করেছেন কিনা তা নিশ্চিত করুন।
  • আপনি AdSense ব্যবহার করলে, আপনার সাইট বা টেস্ট পৃষ্ঠার জন্য টার্গেটিংয়ের মানদণ্ডে কোনও অ্যাক্টিভ বিজ্ঞাপন নাও থাকতে পারে। সবচেয়ে সাধারণ কারণ হল প্রাইভেট, ক্রল করা হয়নি এমন ওয়েবসাইট ব্যবহার করা।
  • আপনি যদি Ad Exchange নেটওয়ার্ক পার্টনার ম্যানেজমেন্ট ব্যবহার করেন এবং descriptionURL সেট করা না থাকে অথবা মালিকানাধীন বা পরিচালিত ডোমেন ম্যানেজমেন্ট তালিকায় না থাকে, তাহলে এখানে বিজ্ঞাপন দেখানো হয় না।
  • Ad Exchange ভিডিওতে উল্লেখ করা minCPM থ্রেশহোল্ড চেক করুন। A CPM খুব বেশি হলে ফিল রেট খুব কম হতে পারে। এটি ঠিক করতে, minCPM সরিয়ে দিন অথবা বিজ্ঞাপন অনুরোধ থেকে বিজ্ঞাপন ইউনিট প্যারামিটার (যেমন, স্লটের নাম) সরিয়ে দিয়ে দেখুন যে এটি ফিল রেটকে প্রভাবিত করছে কিনা।
একটি ভালো descriptionUrl কেমন দেখতে হয়?
সবচেয়ে বেশি কার্যকর হতে, যে পৃষ্ঠার দিকে descriptionUrl পয়েন্ট করা হচ্ছে, সেটির কন্টেন্ট যেন শব্দ বা বাক্যাংশের সংগ্রহ না হয়, বরং ১-৩টি প্যারাগ্রাফে যেন কন্টেন্ট ও সেটি প্রদান করার ব্যাপারে আপনার ভূমিকা বর্ণনা করা থাকে। অতীতে সফল হওয়া একটি পদ্ধতি হল, আগে থেকে সংজ্ঞায়িত ব্লক থেকে descriptionUrl পৃষ্ঠার কন্টেন্ট ডাইনামিক পদ্ধতিতে একত্রিত করা। যেমন, কন্টেন্ট সম্পর্কে কয়েকটি বাক্য, আপনার সাইটের অফার সম্পর্কে কয়েকটি বাক্য এবং তারপরে প্রতিটি AdSense চ্যানেলের সাথে যুক্ত কয়েকটি পূর্বনির্ধারিত স্নিপেট (যেমন, "বিনোদন" বা "খেলাধূলা")। এর ফলে, প্রতিটি কন্টেন্টের সাথে যুক্ত একটি যুক্তিসঙ্গতভাবে স্বতন্ত্র descriptionUrl থাকে যা সাধারণ তথ্য (যেমন, জনরা ডেসক্রিপ্টর) এবং নির্দিষ্ট তথ্য (সরাসরি কন্টেন্ট সম্পর্কে কন্টেন্ট) প্রদান করে।

এই মেটাডেটা HTML সহজ হতে হবে, যেমন:

<html>
  <head>
    <title>Domain.com - Your tag line here!</title>
  </head>
  <body>
    <h1>Descriptions</h1>
    <h2>About this Content</h2>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. ...</p>
    <h2>About Domain.com</h2>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. ...</p>
  </body>
</html>
  
"বিজ্ঞাপন সংক্রান্ত উত্তরে সঠিক বিজ্ঞাপনের ধরন নেই" এই মেসেজটি কেন পাচ্ছি?
এই সমস্যাটি সাধারণত এই কারণে দেখা যায় যে নির্দিষ্ট publisherId-এ (প্রদত্ত সময়সীমার জন্য) কোনও বিজ্ঞাপন টার্গেট করা হয়নি। এই কন্ডিশন সারাদিন বা একাধিক দিন ধরে পরিবর্তিত হতে পারে, কারণ ক্যাম্পেন শুরু ও শেষ হয়। আপনি যে বিজ্ঞাপন টার্গেট করতে চান সেটির মেয়াদ শেষ হয়ে গেছে কিনা এবং বিজ্ঞাপন টার্গেটিং সংক্রান্ত মানদণ্ড সঠিক আছে কিনা তা চেক করে দেখুন। টেস্ট publisherId ব্যবহার করে যতক্ষণ পর্যন্ত বিজ্ঞাপন সঠিকভাবে অনুরোধ, রিসিভ এবং রেন্ডার করা হচ্ছে, ততক্ষণ পর্যন্ত আপনি নিশ্চিত থাকতে পারেন যে বিজ্ঞাপন উপলভ্য হলে আপনার লাইভ publisherId ব্যবহার করে এইসব বিজ্ঞাপন সঠিকভাবে ম্যানেজ করা হচ্ছে।
আপনার কাছে কি কোনও Ad Manager ভিডিও বিজ্ঞাপন ট্যাগ আছে যা আমি পরীক্ষার জন্য ব্যবহার করতে পারি?
স্যাম্পেল ট্যাগ পৃষ্ঠায়
স্যাম্পেল ট্যাগ উপলভ্য।
আমার Ad Manager বিজ্ঞাপন ট্যাগে sz-এর মতো একই ভ্যালু কি adSlotWidth ও adSlotHeight-এ সেট করতে হবে?
প্রয়োজন নেই। adSlotWidth এবং adSlotHeight প্লেয়ার বা যে জায়গাটি বিজ্ঞাপন দিয়ে ভর্তি করতে চান সেটির প্রস্থ/উচ্চতার সাথে সেট করতে হবে। কোন বিজ্ঞাপন ওই জায়গায় ফিট করার জন্য উপলভ্য তা নির্ধারণ করতে AdSense এগুলি ব্যবহার করে। আপনার Ad Manager বিজ্ঞাপন ট্যাগে sz কী/ভ্যালু পেয়ার হল একটি টার্গেটিং প্যারামিটার এবং এটি পরিবেশিত ক্রিয়েটিভকে প্রভাবিত নাও করতে পারে (নিচে আরও তথ্য দেওয়া আছে)।
ডেমো বিজ্ঞাপন ট্যাগটি খুব ভাল দেখাচ্ছে, কিন্তু আমি যখন এটি আমার বিজ্ঞাপন ট্যাগ দিয়ে পরিবর্তন করি, তখন কোনও বিজ্ঞাপন দেখা যায় না।
আপনি যে বিজ্ঞাপন ট্যাগের জন্য অনুরোধ করছেন, সেখানে কিছু ট্রাফিক করা হয়েছে কিনা তা নিশ্চিত করতে চেক করুন। এটি খুঁজে বের করার সবচেয়ে সহজ উপায় হল HTTP ট্রাফিক দেখা। HTML অ্যাঙ্কর ব্লকের মধ্যে 1x1 পিক্সেল grey.gif ইমেজ রিটার্ন করা হলে, Ad Manager-এ আপনার টার্গেটিং চেক করতে হবে।
আমি একই ট্যাগ ব্যবহার করে একাধিকবার বিজ্ঞাপনের অনুরোধ করতে চাই, কিন্তু আমি শুধুমাত্র প্রথম অনুরোধের জন্য বিজ্ঞাপন পাই। আমি কীভাবে এটির সমাধান করতে পারব?
আপনি একাধিকবার বিজ্ঞাপনের অনুরোধ করলে, আপনাকে বিজ্ঞাপন সার্ভারকে জানাতে হবে যে এগুলি বৈধ অনুরোধ এবং দুর্ঘটনাবশত ডুপ্লিকেট হয়ে যায়নি। SDK দুটি দ্রুত API কলের মাধ্যমে আপনার হয়ে এটি করে:
  1. আপনার AdsManager ইনস্ট্যান্সে destroy()-কে কল করুন। আপনি contentComplete()-এ নিচের কলটি করলে, এটি কোনও পোস্ট-রোল চালানো আটকায়। পরবর্তী অনুরোধ করার সময় আপনি নতুন AdsManager পাবেন।
  2. আপনার AdsLoader ইনস্ট্যান্সে contentComplete()-এ কল করুন। এটি SDK রিসেট করে দেয়, ফলে নতুন বিজ্ঞাপনের অনুরোধটি আগেরটির ডুপ্লিকেট বলে মনে হয় না।
উপরে উল্লিখিত দুটি কল করার পরে, আপনার AdsLoader ইনস্ট্যান্সে requestAds() কল করে আপনার নতুন ভিডিওর জন্য বিজ্ঞাপনের আরেকটি সেট পেতে পারেন।
IMA SDK ব্যবহার করে আমি কীভাবে ওভারলে এবং সম্পূর্ণ স্লট AdSense বিজ্ঞাপনের অনুরোধ করব?

SDK ব্যবহার করে AdSense বিজ্ঞাপনের অনুরোধ করতে, আপনাকে প্রথমে একটি AdSense বিজ্ঞাপন ট্যাগ পেতে হবে। আপনি AdSense for Video পৃষ্ঠা থেকে এই বিষয়ে আরও জানতে পারবেন। ট্যাগ পাওয়ার পরে, ওভারলে বা সম্পূর্ণ স্লট বিজ্ঞাপনের অনুরোধ করতে আপনাকে নিম্নলিখিত ধাপগুলি অনুসরণ করতে হবে:

ওভারলে বিজ্ঞাপন
  1. আপনার AdsRequest-এ, আপনার ViewModes-কে NORMAL হিসেবে সেট করুন।
  2. আপনার বিজ্ঞাপন ট্যাগ, প্যারামিটার overlay=1 যোগ করুন।
সম্পূর্ণ স্লট বিজ্ঞাপন
  1. আপনার AdsRequest-এ, আপনার ViewModes-কে FULLSCREEN হিসেবে সেট করুন।
  2. আপনার বিজ্ঞাপন ট্যাগ, প্যারামিটার overlay=0 যোগ করুন।
আমার বিজ্ঞাপনে ক্লিক করলে "ভুল ক্লিক-থ্রু URL" মেসেজ দেখতে পাচ্ছি। কী কারণে এমন হতে পারে?
এই সমস্যার সবচেয়ে সাধারণ কারণ হল ক্লিকথ্রু URL সঠিকভাবে এস্কেপ না করা। আপনি এই সমস্যাটি দেখতে পেলে, আপনার ক্লিকথ্রু URL আপনার VAST রেসপন্সে সঠিকভাবে এস্কেপ করা হয়েছে কিনা তা নিশ্চিত করতে চেক করুন।
আমি কেন "VAST ডকুমেন্ট খালি" সমস্যার মেসেজ দেখতে পাচ্ছি?
বিজ্ঞাপন ট্যাগ একটি খালি VAST ডকুমেন্ট রিটার্ন করলে এই সমস্যাটি হয়, এর থেকে বোঝা যায় যে বিজ্ঞাপনটি সঠিকভাবে পরিবেশন করা হয়নি। আপনার বিজ্ঞাপন ট্যাগ কেন কাজ করছে না তা জানতে আপনার অ্যাকাউন্ট ম্যানেজার বা বিজ্ঞাপন সার্ভার প্রতিনিধির সাথে কথা বলুন।
আমি কি বিজ্ঞাপন এড়িয়ে যান বক্স বা অন্যান্য UI এলিমেন্টের সাইজ/টেক্সট পরিবর্তন করতে পারব?
IMA SDK, UI এলিমেন্টের লেআউট, সাইজ বা কন্টেন্ট পরিবর্তন করার ক্ষেত্রে কাজ করে না। UI এলিমেন্ট সম্পর্কে আরও জানতে, AdsManager.uiElements দেখুন।
HTML5 SDK-এর সাথে কি নেটিভ ভিডিও কন্ট্রোল কাজ করে?
না, HTML5 SDK নেটিভ কন্ট্রোল কাজ করে না।
আমার HTML5 প্রয়োগে "Failed to execute 'play' on 'HTMLMediaElement': API can only be initiated by a user gesture" মেসেজ দেখতে পাচ্ছি। আমি কীভাবে এটির সমাধান করতে পারব?
মোবাইল ডিভাইসে, ব্যবহারকারীর অ্যাকশনের (যেমন, ট্যাপ করা) ফলাফল হিসেবে আপনাকে অবশ্যই adDisplayContainer.initialize() কল করতে হবে। আপনি এই সমস্যাটি দেখতে পেলে, আপনি সম্ভবত এটি ব্যবহারকারী-ইনিশিয়েট করা নয় এমন কোনও কনটেক্সটে কল করছেন। মনে রাখবেন যে এটি ব্যবহারকারীর অ্যাকশনের সরাসরি ফলাফল হতে হবে। যেমন, আপনি যদি কোনও "ট্যাপ" ইভেন্টের উত্তরে ভিডিও চালিয়ে থাকেন এবং তারপরে ভিডিও প্লেয়ারের "চালান" ইভেন্ট ব্যবহার করে initialize() কল করেন, তাহলে SDK এই সমস্যাটি দেখাবে। আপনাকে অবশ্যই initialize() কল করতে হবে কারণ এটি ট্যাপ ইভেন্টের ফলাফল।
বিজ্ঞাপনে ক্লিক করার সময় কীবোর্ড ফোকাস কীভাবে ম্যানেজ করব?
আপনি প্লেয়ারের জন্য কীবোর্ড কন্ট্রোল ব্যবহার করলে, adDisplayContainer-এ ক্লিক করার পরে সেগুলি আর কাজ করছে না বলে লক্ষ্য করতে পারেন। কারণ, কোনও বিজ্ঞাপনে ক্লিক করা হলে কীবোর্ড ফোকাস IMA আইফ্রেমে পাল্টে যায়। কন্টেন্ট প্লেয়ারে কীবোর্ড ফোকাস বজায় রাখতে, CLICK ইভেন্ট ব্যবহার করে কীবোর্ড ফোকাস আবার কাঙ্খিত কন্টেনারে ট্রান্সফার করুন। আরও বিবরণের জন্য নিচে দেওয়া কোড স্নিপেট দেখুন:
adsManager.addEventListener(
      google.ima.AdEvent.Type.CLICK,
      function(){
        window.focus();
        // Or another method to return focus to the desired container.
      });