বিজ্ঞাপন লোডিং নিয়ন্ত্রণ করুন এবং রিফ্রেশ করুন

আমাদের শুরু করা এবং মৌলিক ধারণা উদাহরণগুলিতে, Google প্রকাশক ট্যাগ (GPT) লাইব্রেরির display() পদ্ধতিটি একটি বিজ্ঞাপন স্লট নিবন্ধন এবং প্রদর্শন করতে ব্যবহৃত হয়। যাইহোক, এমন কিছু সময় আছে যখন বিজ্ঞাপন সামগ্রী লোড হওয়ার সময় আরও সুনির্দিষ্টভাবে নিয়ন্ত্রণ করার জন্য এই ক্রিয়াগুলিকে আলাদা করা পছন্দনীয় বা এমনকি প্রয়োজনীয়ও হতে পারে। যেমন, সম্মতি ম্যানেজমেন্ট প্ল্যাটফর্মের সাথে কাজ করার সময় বা ব্যবহারকারীর ক্রিয়াকলাপের ফলাফল হিসাবে বিজ্ঞাপন সামগ্রীর অনুরোধ করার সময়।

এই নির্দেশিকায় আমরা বিজ্ঞাপন সামগ্রীর লোডিং নিয়ন্ত্রণ করতে এবং চাহিদা অনুযায়ী নতুন বিজ্ঞাপন সামগ্রী আনতে GPT দ্বারা প্রদত্ত প্রক্রিয়াগুলি অন্বেষণ করব৷ এই উদাহরণের জন্য সম্পূর্ণ কোড ইভেন্ট ভিত্তিক অনুরোধের নমুনা পৃষ্ঠায় পাওয়া যাবে।

বিজ্ঞাপন লোডিং নিয়ন্ত্রণ করুন

ডিফল্টরূপে, display() পদ্ধতির আচরণ হল বিজ্ঞাপনের সামগ্রীকে একটি বিজ্ঞাপন স্লটে নিবন্ধন, অনুরোধ এবং রেন্ডার করা। PubAdsService.disableInitialLoad() পদ্ধতির মাধ্যমে বিজ্ঞাপন সামগ্রীর স্বয়ংক্রিয় অনুরোধ এবং রেন্ডারিং অক্ষম করা যেতে পারে।

প্রারম্ভিক লোড অক্ষম করা হলে, display() -এ কল শুধুমাত্র বিজ্ঞাপন স্লট নিবন্ধন করবে। দ্বিতীয় পদক্ষেপ নেওয়া না হওয়া পর্যন্ত কোনও বিজ্ঞাপন সামগ্রী লোড করা হবে না। এটি আপনাকে বিজ্ঞাপনের অনুরোধ করার সময় সঠিকভাবে নিয়ন্ত্রণ করতে দেয়।

অনিচ্ছাকৃত বিজ্ঞাপনের অনুরোধ এড়াতে, disableInitialLoad() পরিষেবা সক্রিয় করার আগে এবং display() কল করার আগে কল করতে হবে।

<!doctype html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Request GPT ads based on events." />
    <title>Event-based ad requests</title>
    <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
    <script>
      window.googletag = window.googletag || { cmd: [] };

      googletag.cmd.push(() => {
        // Define the ad slot.
        googletag
          .defineSlot("/6355419/Travel", [728, 90], "div-for-slot")
          .setTargeting("test", "event")
          .addService(googletag.pubads());

        // Disable initial load.
        // This prevents GPT from automatically fetching ads when display is called.
        googletag.pubads().disableInitialLoad();
        googletag.enableServices();
      });
    </script>
    <style></style>
  </head>
  <body>
    <div id="div-for-slot" style="width: 300px; height: 250px"></div>
    <script>
      googletag.cmd.push(() => {
        // Register the ad slot.
        // An ad will not be fetched until refresh is called.
        googletag.display("div-for-slot");

        // Register click event handler.
        document.getElementById("showAdButton").addEventListener("click", () => {
          googletag.cmd.push(() => {
            googletag.pubads().refresh();
          });
        });
      });
    </script>
  </body>
</html>

এই উদাহরণে, display() কল করা হলে কোনও বিজ্ঞাপনের অনুরোধ করা না হয় এবং কোনও বিজ্ঞাপন সামগ্রী রেন্ডার না হয় তা নিশ্চিত করে প্রাথমিক লোড অক্ষম করা হয়। স্লটটি একটি বিজ্ঞাপন গ্রহণ এবং প্রদর্শনের জন্য প্রস্তুত, কিন্তু স্লট রিফ্রেশ না হওয়া পর্যন্ত একটি বিজ্ঞাপন অনুরোধ করা হবে না৷

রিফ্রেশ

PubAdsService.refresh() পদ্ধতিটি নতুন বিজ্ঞাপন সামগ্রী সহ একটি স্লট বা স্লট তৈরি করতে ব্যবহৃত হয়। এই পদ্ধতিটি এমন স্লটগুলিতে ব্যবহার করা যেতে পারে যেগুলি এখনও কোনও সামগ্রী লোড করতে disableInitialLoad() কারণে), বা ইতিমধ্যে জনবহুল স্লটের বিষয়বস্তু প্রতিস্থাপন করতে। যাইহোক, শুধুমাত্র display() কল করে নিবন্ধিত স্লটগুলিই রিফ্রেশ হওয়ার যোগ্য।

<!doctype html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="Request GPT ads based on events." />
    <title>Event-based ad requests</title>
    <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
    <script>
      window.googletag = window.googletag || { cmd: [] };

      googletag.cmd.push(() => {
        // Define the ad slot.
        googletag
          .defineSlot("/6355419/Travel", [728, 90], "div-for-slot")
          .setTargeting("test", "event")
          .addService(googletag.pubads());

        // Disable initial load.
        // This prevents GPT from automatically fetching ads when display is called.
        googletag.pubads().disableInitialLoad();
        googletag.enableServices();
      });
    </script>
    <style></style>
  </head>
  <body>
    <div id="div-for-slot" style="width: 300px; height: 250px"></div>
    <button id="showAdButton">Show/Refresh Ad</button>
    <script>
      googletag.cmd.push(() => {
        // Register the ad slot.
        // An ad will not be fetched until refresh is called.
        googletag.display("div-for-slot");

        // Register click event handler.
        document.getElementById("showAdButton").addEventListener("click", () => {
          googletag.cmd.push(() => {
            googletag.pubads().refresh();
          });
        });
      });
    </script>
  </body>
</html>

এই পরিবর্তিত উদাহরণে, যখন একজন ব্যবহারকারী "শো/রিফ্রেশ বিজ্ঞাপন" বোতামে ক্লিক করেন, তখন refresh() পদ্ধতি বলা হয়। এটি নতুন বিজ্ঞাপন সামগ্রী আনার জন্য একটি অনুরোধ ট্রিগার করে এবং এটি নিবন্ধিত স্লটে লোড করে, যে কোনো পূর্ব-বিদ্যমান সামগ্রীকে ওভাররাইট করে৷

উল্লেখ্য যে উপরের উদাহরণে refresh() পদ্ধতিটিকে কোনো প্যারামিটার ছাড়াই বলা হয়েছে, যা সমস্ত নিবন্ধিত বিজ্ঞাপন স্লটকে রিফ্রেশ করার প্রভাব রাখে। যাইহোক, refresh() পদ্ধতিতে স্লটের একটি অ্যারে পাস করে নির্দিষ্ট বিজ্ঞাপন স্লট রিফ্রেশ করাও সম্ভব। এর একটি উদাহরণের জন্য রিফ্রেশ বিজ্ঞাপন স্লট নমুনা দেখুন।

সেরা অনুশীলন

refresh() এর সাথে কাজ করার সময়, কিছু সর্বোত্তম অনুশীলন রয়েছে যা মেনে চলা উচিত।

  1. খুব তাড়াতাড়ি রিফ্রেশ করবেন না।

    বিজ্ঞাপন স্লটগুলিকে খুব দ্রুত রিফ্রেশ করার ফলে আপনার বিজ্ঞাপনের অনুরোধগুলি থ্রোটল হতে পারে৷ এটি প্রতিরোধ করতে, প্রতি 30 সেকেন্ডে একবারের চেয়ে বেশি ঘন ঘন রিফ্রেশিং স্লটগুলি এড়িয়ে চলুন।

  2. অপ্রয়োজনীয়ভাবে clear() কল করবেন না

    একটি বিজ্ঞাপন স্লট রিফ্রেশ করার সময়, প্রথমে PubAdsService.clear() কল করবেন না৷ এটি অপ্রয়োজনীয়, যেহেতু refresh() নির্দিষ্ট স্লটের বিষয়বস্তু প্রতিস্থাপন করে, পূর্বে কোনো বিজ্ঞাপন সামগ্রী লোড করা হয়েছে কিনা তা নির্বিশেষে। refresh() কল করার আগে clear() কল করলে ব্যবহারকারীর কাছে ফাঁকা স্লট দৃশ্যমান হওয়ার পরিমাণ বৃদ্ধি পাবে।

  3. শুধুমাত্র দর্শনযোগ্য বিজ্ঞাপন স্লট রিফ্রেশ করুন

    refresh() ব্যবহার করে বিজ্ঞাপন স্লটের বিষয়বস্তু প্রতিস্থাপন করা যা কখনই দেখা যায় না তা উল্লেখযোগ্যভাবে আপনার ActiveView হার কমিয়ে দিতে পারে। নিচের উদাহরণের মতো একটি বিজ্ঞাপন স্লট কখন দর্শনযোগ্য হয়েছে তা নির্ধারণ করতে ImpressionViewableEvent ব্যবহার করা যেতে পারে।

    googletag.cmd.push(function() {
      var REFRESH_KEY = 'refresh';
      var REFRESH_VALUE = 'true';
    
      googletag.defineSlot('/6355419/Travel',[728, 90], 'div-for-slot')
          .setTargeting(REFRESH_KEY, REFRESH_VALUE)
          .setTargeting('test', 'event')
          .addService(googletag.pubads());
    
      // Number of seconds to wait after the slot becomes viewable.
      var SECONDS_TO_WAIT_AFTER_VIEWABILITY = 60;
    
      googletag.pubads().addEventListener('impressionViewable', function(event) {
        var slot = event.slot;
        if (slot.getTargeting(REFRESH_KEY).indexOf(REFRESH_VALUE) > -1) {
          setTimeout(function() {
            googletag.pubads().refresh([slot]);
          }, SECONDS_TO_WAIT_AFTER_VIEWABILITY * 1000);
        }
      });
    
      googletag.enableServices();
    });