Live SSAI を使用したクライアントサイドのプリロール広告

このトピックでは、Brightcove Player を使用して、サーバーサイド広告挿入(SSAI)が有効なライブ ストリームでクライアントサイドのプリロール広告を再生する方法について説明します。

概要

Brightcove Player でサーバーサイド広告挿入(SSAI)を使用してライブ ストリームを配信する場合、クライアントサイドのプリロール広告を挿入できます。クライアントサイド広告については、この機能は IMA 広告をサポートします。

注意事項

  • この機能を使用するお客様は、Dynamic Delivery を使用している必要があります。
  • IMA および SSAI プラグインのみがサポートされます(FreeWheel はサポートされません)。
  • 現在、この機能はページ上のシングル プレーヤーのみサポートしています。

開始方法

Live SSAI ストリームでクライアントサイドの IMA プリロール広告を再生するには、以下の手順に従います。

  1. SSAI 対応のライブ ストリームを作成する
  2. Brightcove プレーヤーを作成する
  3. Studio を使用してクライアントサイドのプリロールを実装する

SSAI 対応のライブ ストリームを作成する

Live モジュールはサーバーサイド広告挿入(SSAI)をサポートしており、ライブ ストリーム中にサーバーサイド広告をリクエストして表示できます。ライブ ストリームを作成するには、以下を参照してください。

Brightcove プレーヤーを作成する

Players モジュールを使用して、新しい Brightcove プレーヤーを作成します。詳細については、クイック スタート: プレーヤーの作成とスタイル設定を参照してください。

Brightcove Player バージョン 6.44.0 以降を使用する必要があります。

Studio を使用したクライアントサイドのプリロール実装

自動フェイルオーバー広告用にプレーヤーを設定する最も簡単な方法は、Studio を使用することです。広告設定とプレーヤーを作成したら、以下の手順でプレーヤーを自動フェイルオーバー用に構成する準備が整います。

  1. Players モジュールを開き、広告機能を追加したいプレーヤーを見つけます。
  2. プレーヤーのリンクをクリックして、プレーヤーのプロパティを開きます。
  3. Overview タブで Advertising アコーディオンを開きます。
  4. Enable Client-Side (IMA) トグルをオンにします。
  5. IMA 広告タグの URL を入力します。この例では、サンプル広告タグ URL を使用します。
    Enable client-side ads
    クライアントサイド広告を有効にする

    プレーヤーの広告プロパティの詳細については、Players モジュールを使用したプレーヤー広告の設定を参照してください。

  6. Enable Server-Side (SSAI) トグルをオンにします。

  7. Select Configuration ドロップダウン メニューから、このプレーヤーに関連付ける広告設定を選択します。
  8. 広告の上にオーバーレイを表示するには、Enable ad information overlays トグルをオンにします。これには「Learn More」および広告カウントダウン オーバーレイが含まれます。
    Enable SSAI
    SSAI を有効にする
  9. Overview タブで JSON Editor アコーディオンを開きます。
  10. JSON エディタで、ad_failover: true プロパティが表示されるまで下にスクロールします。

  11. ad_failover: true プロパティを次の内容に置き換えます。
    "ima_preroll_with_ssai": true
    
  12. プレーヤーを公開するには、Publish Changes をクリックします。
  13. これで、ライブ イベントを公開する準備が整いました。詳細については、Live モジュールでのサーバーサイド広告の実装を参照してください。

プレーヤー イベントのリッスン

この機能を使用する場合、IMA プリロール広告の前または途中でバインドされたプレーヤー イベント リスナーは、SSAI 再生開始前に再バインドが必要です。

ima_preroll_with_ssai 機能は、IMA3 広告の表示後にプレーヤーを破棄するように設計されています。その後、同じ ID を持つ別のプレーヤーが再初期化されます。このため、最初のプレーヤーではイベントがトリガーされません。

プレーヤー イベント リスナーが確実にトリガーされるようにするには、リスナーをプレーヤーの dispose イベント リスナーと、プレーヤー作成後に呼び出される videojs の setup フックでラップするのが妥当な回避策です。

コード例を以下に示します。

const playerId = 'samplePlayer';
    let player = videojs.getPlayer(playerId);

    // Add ad listeners here for events during IMA3 playback
    player.on("ads-ad-started", function (evt) {
      player.log("IMA3: ads-ad-started! ", evt);
    });

     player.on("ads-ad-ended", function (evt) {
      player.log("IMA3: ads-ad-ended! ", evt);
    });

    player.on('dispose', () => {
      videojs.hook('setup', (newPlayer) => {

        // Make sure the new player is the one being created by the ima_preroll_with_ssai feature
        if (newPlayer.id() !== playerId) {
          return;
        }

        player = newPlayer;

        // Add ad listeners here for events during SSAI playback
        player.on("ads-ad-started", function (evt) {
          player.log("SSAI:ads-ad-started! ", evt);
        });

        player.on("ads-ad-ended", function (evt) {
          player.log("SSAI: ads-ad-ended! ", evt);
        });

        player.on("bcov-ssai-click-through", function (evt) {
          player.log("SSAI: bcov-ssai-click-through! ", evt);
        });
      });
    });