فعال کردن آگهی‌های خطی در شبکه تبلیغات

کیت توسعه نرم‌افزار آگهی‌های رسانه‌ای تعاملی برای HTML5 علاوه‌بر آگهی‌های ویدیویی خطی، از آگهی‌های تصویری خطی نیز پشتیبانی می‌کند. برای جزئیات آگهی‌های ویدیویی خطی، به نمای کلی تبلیغات راه‌حل‌های ویدیویی مراجعه کنید.

فعال کردن آگهی‌های تصویری خطی می‌تواند تقاضای بیشتری برای فضای آگهی شما ایجاد کند، زیرا آگهی‌های تصویری خطی با آگهی‌های ویدیویی خطی برای فضای آگهی شما رقابت می‌کنند. IMA پردازش آگهی‌های تصویری خطی را انجام می‌دهد، اما لازم است که تشخیص محتوای ویدیویی را راه‌اندازی کنید. پیاده‌سازی تشخیص محتوای IMA بسته به اینکه پخش‌کننده محتوایتان را در همان قاب مبدأ پخش‌کننده آگهی‌هایتان ایجاد کنید یا پخش‌کننده آگهی‌تان را در قاب میان‌مبدئی ایجاد کنید متفاوت است.

این راهنما شامل راه‌اندازی تشخیص محتوا برای فعال کردن آگهی‌های تصویری خطی، تغییر پخش‌کننده ویدیو محتوا، و توقف جمع‌آوری نشان‌های محتوا است.

راه‌اندازی کردن «تشخیص محتوا»

برای فعال کردن آگهی‌های تصویری خطی برای درخواست‌های آگهی، کارهای زیر را انجام دهید:

مبدأ یکسان

اگر «کیت توسعه نرم‌افزار آگهی‌های رسانه‌ای تعاملی» با پخش‌کننده محتوای شما مبدأ یکسانی دارد، یکی از کارهای زیر را انجام دهید:

  • ترجیحاً پخش‌کننده ویدیو را به تماس AdsManagerLoadedEvent.getAdsManager() منتقل کنید. هرچند getAdsManager() به شما اجازه می‌دهد شیء حاوی ویژگی currentTime را ارسال کنید، برای پشتیبانی از تشخیص محتوا باید نمونه HTMLVideoElement را به getAdsManager() ارسال کنید.

    function onAdsManagerLoaded(adsManagerLoadedEvent) {
      // Set any AdsRenderingSettings here.
      const adsRenderingSettings = new google.ima.AdsRenderingSettings();
    
      // Get the ads manager.
      adsManager =
        adsManagerLoadedEvent.getAdsManager(videoElement, adsRenderingSettings);
    }
    
  • اگر نمی‌توانید پخش‌کننده محتوا را درطول تماس AdsManagerLoadedEvent.getAdsManager() ارائه دهید، روش AdsManager.configureAdsManager() را با پخش‌کننده ویدیو فراخوانی کنید. برای اینکه تشخیص محتوا کار کند، باید HTMLVideoElement باشد.

function onAdsManagerLoaded(adsManagerLoadedEvent) {
  adsManager =
    adsManagerLoadedEvent.getAdsManager(null);
  adsManager.configureAdsManager(videoElement);
}

اگر تشخیص محتوا را راه‌اندازی نکنید، ممکن است سرورهای آگهی Google ارائه آگهی‌های تصویری خطی را متوقف کنند.

اگر پخش‌کننده محتوای شما در همان مبدأی باشد که IMA SDK را بار می‌کنید، برای رسیدگی به تغییر پخش‌کننده محتوا یا توقف جمع‌آوری سیگنال محتوا، نیازی به ایجاد تغییر در پیاده‌سازی IMA ندارید.

میان‌مبدئی

اگر IMA SDK میان‌مبدئی نسبت به پخش‌کننده محتوای شما باشد، IMA می‌تواند سیگنال‌های تشخیص محتوا را ازطریق کلاس CrossOriginProxy جمع‌آوری کند. این کلاس به IMA SDK اجازه می‌دهد جای آگهی تصویری خطی صحیح را درستی‌سنجی کند و سیگنال‌های مربوط به موضوع محتوای ویدیویی را جمع‌آوری کند. اگر کیت توسعه نرم‌افزار IMA را در یک iframe بین‌دامنه‌ای قرار دهید، باید کلاس CrossOriginProxy را پیاده‌سازی کنید.

اگر همچنان پخش‌کننده محتوایتان را به‌صورت میان‌مبدئی در «کیت توسعه نرم‌افزار آگهی‌های رسانه‌ای تعاملی» قرار دهید بدون اینکه کلاس CrossOriginProxy را پیاده‌سازی کنید، سرورهای آگهی Google ممکن است ارائه آگهی‌های تصویری خطی را متوقف کنند.

برای بار کردن کلاس CrossOriginProxy در برنامه‌تان، کارهای زیر را انجام دهید:

  1. در فایل HTML، فایل ima_proxy.js را وارد کنید:

    <html>
      <head>
        <title>IMA HTML5 cross-origin iframe sample</title>
        <link rel="stylesheet" href="style.css">
      </head>
    
      <body>
        <div id="mainContainer">
          <div id="content">
            <video id="contentElement">
              <source src="https://storage.googleapis.com/gvabox/media/samples/stock.mp4"></source>
            </video>
          </div>
    
          <!-- The cross-origin iframe where you load IMA SDK and play ads. -->
          <iframe id="adContainerIframe"
                  src="https://cross-origin-domain.com/ads-sandbox.html" >
          </iframe>
    
        </div>
        <button id="playButton">Play</button>
    
        <script src="//imasdk.googleapis.com/js/sdkloader/ima_proxy.js"></script>
        <script src="main.js"></script>
      </body>
    </html>
    
  2. در فایل main.js، نمونه CrossOriginProxy را دریافت کنید.

  3. روش setVideoElements() را با آرایه‌ای از همه پخش‌کننده‌های ویدیو که آگهی‌ها را در صفحه یا برنامه شما نشان می‌دهند فراخوانی کنید.

قبل‌از درخواست آگهی، باید عناصر ویدیو را با فراخوانی setVideoElements() به نمونه CrossOriginProxy منتقل کنید. مثال زیر آرایه‌ای را ارسال می‌کند که حاوی یک پخش‌کننده ویدیو محتوا است:

// On window load attach an event to the play button click
// that triggers playback of the content video element.
window.addEventListener('load', function(event) {
videoContent = document.getElementById('contentElement');
ima.crossOriginProxy.getInstance().setVideoElements([videoContent]);
playButton = document.getElementById('playButton');
playButton.addEventListener('click', playAds);
});

تغییر پخش‌کننده ویدیو محتوا

اگر پخش‌کننده ویدیو محتوا را تغییر دهید یا پخش‌کننده دیگری اضافه کنید، باید آرایه جدیدی را به روش setVideoElements() ارسال کنید. وقتی تماس جدید setVideoElements() را برقرار می‌کنید، IMA شروع به جمع‌آوری سیگنال‌ها برای پخش‌کننده محتوای جدید می‌کند و جمع‌آوری سیگنال‌ها را برای هر پخش‌کننده محتوایی که در تماس‌های قبلی ارسال شده است متوقف می‌کند.

مثال زیر عنصر ویدیو جدید را به کلاس CrossOriginProxy منتقل می‌کند:

function createNewContentPlayer(newPlayerId) {
newVideoContent = document.getElementById(newPlayerId);
ima.crossOriginProxy.getInstance().setVideoElements([newVideoContent]);

// Continue with any other steps needed to initiate the content player
}

توقف جمع‌آوری نشان‌ها پس‌از تکمیل آگهی‌ها

وقتی پخش آگهی‌ها را تمام کردید و روش AdsLoader.destroy() را فراخوانی کردید، باید روش setVideoElements() را نیز با آرایه خالی فراخوانی کنید. برقراری تماس setVideoElements() با آرایه خالی، ارجاع به پخش‌کننده‌های محتوایی را که IMA نگه می‌دارد حذف می‌کند و از مشکلات نشت حافظه جلوگیری می‌کند.