โฆษณาที่แสดงร่วม

คุณอาจต้องเชื่อมโยงช่องโฆษณา HTML ในหน้าเว็บกับช่องโฆษณาแบบวิดีโอหรือโฆษณาซ้อนทับ ความสัมพันธ์ระหว่างช่องโฆษณาที่เกี่ยวข้องนี้จะเรียกว่าความสัมพันธ์แบบโฆษณาที่แสดงร่วมหลัก

นอกจากการขอโฆษณาวิดีโอและโฆษณาซ้อนทับหลัก คุณสามารถใช้ IMA SDK เพื่อแสดงโฆษณา HTML ที่แสดงร่วมกันได้ด้วย โฆษณาเหล่านี้จะแสดงภายใน สภาพแวดล้อม HTML

ใช้โฆษณาที่แสดงร่วม

หากต้องการใช้โฆษณาที่แสดงร่วม ให้ทำตามขั้นตอนต่อไปนี้

1. จองโฆษณาที่แสดงร่วม

คุณต้องจองโฆษณาที่แสดงร่วมที่ต้องการแสดงพร้อมกับโฆษณาหลักก่อน คุณ ดูแลการแสดงโฆษณาใน Ad Manager ได้ คุณแสดงโฆษณาที่แสดงร่วมได้สูงสุด 6 รายการต่อโฆษณาหลัก เทคนิคนี้เมื่อผู้ซื้อรายเดียวควบคุมโฆษณาทั้งหมดบนหน้าเว็บ หรือที่เรียกว่าการทำ Roadblock

2. ขอโฆษณาที่แสดงร่วมของคุณ

โดยค่าเริ่มต้น โฆษณาที่แสดงร่วมจะเปิดใช้งานกับคำขอโฆษณาแต่ละรายการ

3. แสดงโฆษณาที่แสดงร่วม

การแสดงโฆษณาที่แสดงร่วมทำได้ 2 วิธีดังนี้

  • การใช้แท็กผู้เผยแพร่โฆษณาผ่าน Google (GPT) โดยอัตโนมัติ
    หากคุณใช้ GPT ในการแสดงโฆษณาที่แสดงร่วมกัน โฆษณาเหล่านี้จะแสดงโดยอัตโนมัติตราบใดที่มีการประกาศช่องโฆษณาที่แสดงร่วมในหน้า HTML และโฆษณาเหล่านี้ลงทะเบียนกับ API (กล่าวคือรหัส div ใน JavaScript และ HTML ต้องตรงกัน) ประโยชน์บางประการของการใช้ GPT คือ
    • การรับรู้ช่องโฆษณาที่แสดงร่วม
    • โฆษณาทดแทนร่วมจากเครือข่ายของผู้เผยแพร่โฆษณา หากการตอบกลับ VAST มีโฆษณาที่แสดงร่วมจำนวนน้อยกว่าช่องโฆษณาที่กำหนดไว้ในหน้า HTML
    • การเติมโฆษณาแสดงร่วมอัตโนมัติหากไม่มีโฆษณาวิดีโอ
    • ช่องโฆษณาที่แสดงร่วมที่โหลดไว้ล่วงหน้าสำหรับโปรแกรมเล่นวิดีโอแบบคลิกเพื่อเล่น
    • การแสดงผลโฆษณาที่แสดงร่วมอัตโนมัติ รวมถึง HTMLResource และ iFrameResource
  • ใช้ Ad API ด้วยตนเอง

ใช้โฆษณาที่แสดงร่วมกับแท็กผู้เผยแพร่โฆษณาผ่าน Google

แท็กผู้เผยแพร่โฆษณาผ่าน Google (GPT) จะทำให้การแสดงโฆษณาที่แสดงร่วมกันแบบ HTML บนเว็บไซต์ของคุณทำงานโดยอัตโนมัติ เราขอแนะนำให้ผู้เผยแพร่โฆษณาส่วนใหญ่ใช้ GPT HTML5 SDK รู้จักช่อง GPT หากมีการโหลด GPT ในหน้าเว็บหลัก (ไม่ใช่ใน IFrame) คุณสามารถดูข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับการใช้ GPT กับ IMA SDK ได้ในเอกสาร GPT

หากคุณโฮสต์ HTML5 SDK ภายใน iframe

หากคุณมีคุณสมบัติตามเกณฑ์ทั้ง 2 ข้อต่อไปนี้ คุณจะต้องใส่สคริปต์พร็อกซีเพิ่มเติมเพื่อให้โฆษณาที่แสดงร่วมของ GPT แสดงได้อย่างถูกต้อง

  1. โหลด HTML5 SDK ใน IFrame
  2. โหลด GPT ในหน้าเว็บหลัก (นอก iframe)

หากต้องการให้โฆษณาที่แสดงร่วมแสดงขึ้นในสถานการณ์นี้ คุณต้องโหลดสคริปต์พร็อกซี GPT ก่อนที่จะโหลด SDK ดังนี้

<script src="https://imasdk.googleapis.com/js/sdkloader/gpt_proxy.js"></script>

สิ่งสำคัญที่ต้องคำนึงถึง:

  • ไม่ควรมีการโหลด GPT ภายใน IFrame ที่โหลด SDK
  • ต้องโหลด GPT บนหน้าด้านบน ไม่ใช่ใน IFrame อื่น
  • ต้องโหลดสคริปต์พร็อกซีในเฟรมเดียวกันกับ GPT (ซึ่งก็คือในหน้าหลัก)

ประกาศช่องโฆษณาที่แสดงร่วมใน HTML

ส่วนนี้จะอธิบายวิธีประกาศโฆษณาที่แสดงร่วมใน HTML โดยใช้ GPT และให้โค้ดตัวอย่างสำหรับสถานการณ์ที่แตกต่างกัน สำหรับ HTML5 SDK คุณต้องเพิ่ม JavaScript บางส่วนลงในหน้า HTML และประกาศช่องโฆษณาที่แสดงร่วม

หมายเหตุ: ในแต่ละตัวอย่างต่อไปนี้ อย่าลืมระบุ network และ unit-path ที่ถูกต้องในการเรียกใช้เมธอด googletag.defineSlot (ในแท็ก <head> หรือ <body> ขึ้นอยู่กับตัวอย่างจริงที่คุณใช้อยู่)

ตัวอย่างที่ 1: การติดตั้งช่องโฆษณาพื้นฐาน

โค้ดตัวอย่างต่อไปนี้แสดงวิธีรวมไฟล์ gpt.js ในหน้า HTML และประกาศช่องโฆษณา ช่องโฆษณาที่ประกาศมีขนาด 728x90 พิกเซล GPT จะพยายามเติมโฆษณาในช่องด้วยโฆษณาที่แสดงร่วมที่แสดงในการตอบกลับของ VAST ที่ตรงกับขนาดนี้ หลังจากประกาศช่องโฆษณาแล้ว ฟังก์ชัน googletag.display() จะแสดงผลช่องโฆษณาดังกล่าวทุกๆ ที่ที่มีการเรียกใช้ในหน้า เนื่องจากช่องโฆษณาเป็นช่องการแสดงร่วม โฆษณาจะไม่แสดงทันที แต่จะปรากฏพร้อมกับโฆษณาวิดีโอหลัก

ตัวอย่างการใช้งาน

 <html>
   <head>
     <!-- Uncomment the line below for the HTML5 SDK caveat proxy -->
     <!-- <script src="https://imasdk.googleapis.com/js/sdkloader/gpt_proxy.js"></script>-->
     <!-- HEAD part -->
     <!-- Initialize the tagging library -->
     <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>

     <!-- Register your companion slots -->
     <script>
       window.googletag = window.googletag || { cmd: [] };

       googletag.cmd.push(function() {
         // Supply YOUR_NETWORK and YOUR_UNIT_PATH.
         googletag.defineSlot('/YOUR_NETWORK/YOUR_UNIT_PATH', [728, 90], 'companionDiv')
             .addService(googletag.companionAds())
             .addService(googletag.pubads());
         googletag.companionAds().setRefreshUnfilledSlots(true);
         googletag.pubads().enableVideoAds();
         googletag.enableServices();
       });
     </script>
   </head>

   <body>
     <!-- BODY part -->
     <!-- Declare a div where you want the companion to appear. Use
          googletag.display() to make sure the ad is displayed. -->
     <div id="companionDiv" style="width:728px; height:90px;">
       <script>
         // Using the command queue to enable asynchronous loading.
         // The unit does not actually display now - it displays when
         // the video player is displaying the ads.
         googletag.cmd.push(function() { googletag.display('companionDiv'); });
       </script>
     </div>
   <body>
 </html>
 

ลองเลย

คุณสามารถดู Codepen ต่อไปนี้สำหรับการติดตั้งใช้งาน

ตัวอย่างที่ 2: การใช้งานช่องโฆษณาแบบไดนามิก

บางครั้งคุณอาจไม่ทราบจำนวนช่องโฆษณาที่คุณมีในหน้าเว็บจนกว่าเนื้อหาของหน้าเว็บจะแสดงผล โค้ดตัวอย่างต่อไปนี้แสดงวิธีกำหนดช่องโฆษณาในขณะที่หน้าแสดงผล ตัวอย่างนี้เหมือนกับตัวอย่างที่ 1 ยกเว้นตรงที่จะบันทึกช่องโฆษณาที่แสดงอยู่จริง

หมายเหตุ: เมื่อโปรแกรมเล่นวิดีโอกำลังจะแสดงโฆษณา โปรแกรมเล่นจะขอช่อง ตรวจสอบว่าได้กำหนดช่องโฆษณาก่อนที่โปรแกรมเล่นจะแสดงโฆษณา

 <html>
   <head>
     <!-- Uncomment the line below for the HTML5 SDK caveat proxy -->
     <!-- <script src="https://imasdk.googleapis.com/js/sdkloader/gpt_proxy.js"></script> -->
     <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
     <!-- HEAD part -->
     <!-- Initialize the tagging library -->
     <script>
       window.googletag = window.googletag || { cmd: [] };

       googletag.cmd.push(function() {
         googletag.companionAds().setRefreshUnfilledSlots(true);
         googletag.pubads().enableVideoAds();
         googletag.enableServices();
       });
     </script>
   </head>

   <body>
     <!-- BODY part -->
     <!-- Declare a div where you want the companion to appear. Use
          googletag.display() to make sure the ad is displayed. -->
     <div id="companionDiv" style="width:728px; height:90px;">
       <script>
         // Using the command queue to enable asynchronous loading.
         // The unit does not actually display now - it displays when
         // the video player is displaying the ads.
         googletag.cmd.push(function() {
           // Supply YOUR_NETWORK and YOUR_UNIT_PATH.
           googletag.defineSlot('/YOUR_NETWORK/YOUR_UNIT_PATH', [728, 90], 'companionDiv')
               .addService(googletag.companionAds())
               .addService(googletag.pubads());
           googletag.display('companionDiv');
         });
       </script>
     </div>
   <body>
 </html>
 

ลองเลย

คุณจะเห็นโค้ดต่อไปนี้สำหรับการติดตั้งใช้งานที่ทำงานอยู่

ตัวอย่างที่ 3: ช่องโฆษณาที่โหลดไว้ล่วงหน้า

ในบางกรณี คุณอาจต้องแสดงบางอย่างในช่องโฆษณาก่อนที่จะขอโฆษณาที่แสดงร่วม โดยปกติจะมีการขอโฆษณาที่แสดงร่วมควบคู่กับโฆษณาวิดีโอ คำขอนี้อาจเกิดขึ้นหลังจากโหลดหน้าเว็บแล้ว เช่น โฆษณาที่แสดงร่วมอาจโหลดหลังจากที่ผู้ใช้คลิกวิดีโอคลิกเพื่อเล่นเท่านั้น ในกรณีเช่นนี้ คุณต้องสามารถขอโฆษณาปกติเพื่อเติมช่องโฆษณาได้ก่อนที่จะมีการขอโฆษณาที่แสดงร่วม คุณสามารถแสดงโฆษณาเว็บมาตรฐานในช่องที่แสดงร่วมกันได้เพื่อรองรับกรณีการใช้งานนี้ ตรวจดูว่าโฆษณาในเว็บกำหนดเป้าหมายเป็นช่องการแสดงร่วม คุณกำหนดเป้าหมายช่องการแสดงร่วมได้ด้วยวิธีเดียวกับที่คุณกำหนดเป้าหมายช่องโฆษณาเว็บมาตรฐาน

หมายเหตุ: โค้ดตัวอย่างต่อไปนี้เหมือนกับโค้ดตัวอย่างที่ 1 ทุกประการ ยกเว้นส่วนที่ทำเป็นตัวหนา ในกรณีนี้ คุณต้องระบุเส้นทางเครือข่ายและหน่วยโฆษณาของโฆษณาที่โหลดล่วงหน้าแทนหน่วยโฆษณาวิดีโอ

ต่อไปนี้เป็นตัวอย่างการใช้งานที่เพิ่งอธิบายไป

<html>
  <head>
    ...
    <!-- Register your companion slots -->
    <script>
      window.googletag = window.googletag || { cmd: [] };

      googletag.cmd.push(function() {
        // Supply YOUR_PRELOAD_NETWORK and YOUR_PRELOAD_UNIT_PATH.
        googletag.defineSlot('/YOUR_PRELOAD_NETWORK/YOUR_PRELOAD_UNIT_PATH', [728, 90], 'companionDiv')
            .addService(googletag.companionAds())
            .addService(googletag.pubads());
        googletag.companionAds().setRefreshUnfilledSlots(true);
        googletag.pubads().enableVideoAds();
        googletag.enableServices();
      });
    </script>
  </head>
  ...
</html>

ลองเลย

คุณสามารถดูโค้ดปากกาต่อไปนี้สำหรับการติดตั้งใช้งาน

ใช้โฆษณาที่แสดงร่วมกับ Ad API

ส่วนนี้จะอธิบายวิธีแสดงโฆษณาที่แสดงร่วมโดยใช้ API ของ Ad

แสดงโฆษณาที่แสดงร่วม

หากต้องการแสดงโฆษณาที่แสดงร่วม ก่อนอื่นให้รับการอ้างอิงไปยังออบเจ็กต์ Ad ผ่านเหตุการณ์ AdEvent ใดๆ ก็ตามที่ส่งจาก AdsManager เราขอแนะนำให้ใช้เหตุการณ์ AdEvent.STARTED เนื่องจากการแสดงโฆษณาที่แสดงร่วมกันควรสอดคล้องกับการแสดงโฆษณาหลัก

ถัดไป ให้ใช้ออบเจ็กต์ Ad นี้ในการเรียกใช้ getCompanionAds() เพื่อรับอาร์เรย์ของออบเจ็กต์ CompanionAd จากตรงนี้คุณจะมีตัวเลือกในการระบุ CompanionAdSelectionSettings ซึ่งช่วยให้คุณตั้งค่าตัวกรองในโฆษณาที่แสดงร่วมสำหรับประเภทครีเอทีฟโฆษณา อัตราเกือบเปอร์เซ็นต์ ประเภททรัพยากร และเกณฑ์ขนาด ดูข้อมูลเพิ่มเติมเกี่ยวกับการตั้งค่าเหล่านี้ได้ในเอกสารประกอบของ HTML5 API

ตอนนี้ คุณสามารถใช้ออบเจ็กต์ CompanionAd ที่ getCompanionAds แสดงผลเพื่อแสดงโฆษณาที่แสดงร่วมในหน้าเว็บได้โดยใช้หลักเกณฑ์ต่อไปนี้

  1. สร้างช่องโฆษณาที่แสดงร่วม <div> ตามขนาดที่ต้องการในหน้า
  2. ในเครื่องจัดการเหตุการณ์สำหรับเหตุการณ์ STARTED ให้ดึงออบเจ็กต์ Ad โดยการเรียกใช้ getAd()
  3. ใช้ getCompanionAds() เพื่อดูรายการโฆษณาที่แสดงร่วมที่ตรงกับทั้งขนาดช่องโฆษณาที่แสดงร่วมและ CompanionAdSelectionSettings และมีลำดับหมายเลขเดียวกันกับครีเอทีฟโฆษณาหลัก ครีเอทีฟโฆษณาที่ไม่มีแอตทริบิวต์ลำดับ จะได้รับการดูแลให้มีหมายเลขลำดับ 0
  4. รับเนื้อหาจากอินสแตนซ์ CompanionAd และตั้งค่าเป็น HTMl ภายในของช่องโฆษณานั้น <div>

รหัสตัวอย่าง

<!--Set a companion ad div in html page. -->
<div id="companion-ad-300-250" width="300" height="250"></div>

<script>

  // Listen to the STARTED event.
  adsManager.addEventListener(
    google.ima.AdEvent.Type.STARTED,
    onAdEvent);

  function onAdEvent(adEvent) {
    switch (adEvent.type) {
      case google.ima.AdEvent.Type.STARTED:
        // Get the ad from the event.
        var ad = adEvent.getAd();
        var selectionCriteria = new google.ima.CompanionAdSelectionSettings();
        selectionCriteria.resourceType = google.ima.CompanionAdSelectionSettings.ResourceType.STATIC;
        selectionCriteria.creativeType = google.ima.CompanionAdSelectionSettings.CreativeType.IMAGE;
        selectionCriteria.sizeCriteria = google.ima.CompanionAdSelectionSettings.SizeCriteria.IGNORE;
        // Get a list of companion ads for an ad slot size and CompanionAdSelectionSettings
        var companionAds = ad.getCompanionAds(300, 250, selectionCriteria);
        var companionAd = companionAds[0];
        // Get HTML content from the companion ad.
        var content = companionAd.getContent();
        // Write the content to the companion ad slot.
        var div = document.getElementById('companion-ad-300-250');
        div.innerHTML = content;
        break;
    }
  }
</script>

แสดงโฆษณาที่แสดงร่วมแบบไหล

ตอนนี้ IMA รองรับโฆษณาที่แสดงร่วมแบบไหลแล้ว โฆษณาที่แสดงร่วมเหล่านี้สามารถปรับขนาด ให้เข้ากับขนาดของช่องโฆษณาได้ องค์ประกอบจะเติมความกว้าง 100% ของ div หลัก จากนั้นปรับขนาด ความสูงให้พอดีกับเนื้อหาของโฆษณาที่แสดงร่วม มีการตั้งค่าโดยใช้ขนาดโฆษณาที่แสดงร่วม Fluid ใน Ad Manager ดูตำแหน่งที่จะกำหนดค่านี้ได้จากภาพต่อไปนี้

รูปภาพแสดงการตั้งค่าโฆษณาที่แสดงร่วมของ Ad Manager ไฮไลต์ตัวเลือกขนาดโฆษณาที่แสดงร่วม

โฆษณาที่แสดงร่วมแบบไหลของ GPT

เมื่อใช้การแสดงร่วมของ GPT คุณจะประกาศช่องการแสดงร่วมแบบไหลได้โดยอัปเดตพารามิเตอร์ที่ 2 ของเมธอด defineSlot()

 <!-- Register your companion slots -->
 <script>
   googletag.cmd.push(function() {
     // Supply YOUR_NETWORK and YOUR_UNIT_PATH.
     googletag.defineSlot('/YOUR_NETWORK/YOUR_UNIT_PATH', ['fluid'], 'companionDiv')
         .addService(googletag.companionAds())
         .addService(googletag.pubads());
     googletag.companionAds().setRefreshUnfilledSlots(true);
     googletag.pubads().enableVideoAds();
     googletag.enableServices();
   });
 </script>

โฆษณาแสดงร่วมแบบไหลของ API โฆษณา

เมื่อใช้ Ad API สำหรับโฆษณาที่แสดงร่วม คุณจะประกาศช่องที่แสดงร่วมกันแบบไหลได้โดยอัปเดต google.ima.CompanionAdSelectionSettings.sizeCriteria เป็นค่า SELECT_FLUID

<script>

  ...
    // Get the ad from the event.
    var ad = adEvent.getAd();
    var selectionCriteria = new google.ima.CompanionAdSelectionSettings();
    selectionCriteria.resourceType = google.ima.CompanionAdSelectionSettings.ResourceType.STATIC;
    selectionCriteria.creativeType = google.ima.CompanionAdSelectionSettings.CreativeType.IMAGE;
    selectionCriteria.sizeCriteria = google.ima.CompanionAdSelectionSettings.SizeCriteria.SELECT_FLUID;
    // Get a list of companion ads for an ad slot size and CompanionAdSelectionSettings
    // Note: Companion width and height are irrelevant when fluid size is used.
    var companionAds = ad.getCompanionAds(0, 0, selectionCriteria);
    var companionAd = companionAds[0];
  ...
    }
  }
</script>