カスタム エンド スクリーン プラグイン

このトピックでは、カスタム エンド スクリーン プラグインの使い方と、Studio およびカスタム コードでの実装方法について説明します。

概要

カスタム エンド スクリーン プラグインを使用すると、動画再生終了時にユーザーが指定した HTML を表示できます。

以下のサンプル動画は、カスタム エンド スクリーン プラグインの使用例を示しています。この短い動画の再生終了後、次の HTML から生成されたテキストが表示されます。

      <strong>Content</strong> for <em>custom</em> end screen

Players モジュールを使用した実装

カスタム エンド スクリーンは、エンド スクリーン設定の編集 またはカスタム エンド スクリーン プラグインを使用して実装できます。Players モジュールでカスタム エンド スクリーン プラグインを実装するには、次の手順を実行します。

  1. PLAYERS モジュールを開き、新しいプレーヤーを作成するか、プラグインを追加したいプレーヤーを探します。
  2. プレーヤーのリンクをクリックし、プレーヤーのプロパティを開きます。
  3. 左側のナビゲーションメニューから 終了画面 をクリックします。
  4. 次に、プレーヤー終了画面 の種類で下向き矢印をクリックし、カスタム を選択します。
  5. カスタム HTML テキストボックスに、エンド スクリーンに表示したい HTML を入力します。以下は例です:
    <div style="text-align:center">
          <p>This video sponsored by</p><br/>
          <img src="http://support.brightcove.com/site-assets/images/site/logos/BeaconLogo.svg"/>
          </div>

    この HTML は、次のようなエンド スクリーンを表示します:

  6. 保存 をクリックします。
  7. プレーヤーを公開するには、公開と埋め込み > 変更の公開 をクリックします。
  8. ダイアログを閉じるには、閉じる をクリックします。

コードを使用した実装

プラグインを実装するには、プレーヤーがプラグインコードの場所、必要に応じてスタイルシート、プラグイン名、およびプラグイン設定オプションを認識している必要があります。プラグインコードとスタイルシートの場所は次のとおりです:

        https://players.brightcove.net/videojs-custom-endscreen/2/videojs-custom-endscreen.min.js
        https://players.brightcove.net/videojs-custom-endscreen/2/videojs-custom-endscreen.css

プラグイン名は customEndscreen で、オプションの設定例は次のとおりです:

        {
          "content": "<strong>Content</strong> for <em>custom</em> end screen"
        }

次の例は、Videoタグ実装を使用して Custom Endscreen プラグインを単一のプレーヤー インスタンスに関連付ける方法を示しています。

  • 12 行目:link タグを使用して、HTML ページの head 内にプラグインの CSS を読み込みます。
  • 14 行目:video タグに id 属性を追加しています。ここでは myPlayerID に設定しています。
  • 23 行目:script タグを使用して、HTML ページの body 内にプラグインの JavaScript を読み込みます。
  • 27 行目:プレーヤーへの参照を作成します。
  • 28〜30 行目:プラグインを初期化し、カスタム オプションを渡します。
          <link rel="stylesheet" type="text/css" href="https://players.brightcove.net/videojs-custom-endscreen/2/videojs-custom-endscreen.css">
        
          <video-js id="myPlayerID"
            data-account="1752604059001"
            data-player="decfdaf5-0a6e-43f6-82d3-39d125c413c4"
            data-embed="default"
            data-video-id="4077874637001"
            controls=""></video-js>
        
          <script src="https://players.brightcove.net/1752604059001/decfdaf5-0a6e-43f6-82d3-39d125c413c4_default/index.min.js"></script>
        
          <script type="text/javascript" src="https://players.brightcove.net/videojs-custom-endscreen/2/videojs-custom-endscreen.min.js"></script>
        
          <script type="text/javascript">
            videojs.getPlayer('myPlayerID').ready(function() {
              var myPlayer = this;
              myPlayer.customEndscreen({
                "content": "<strong>Content</strong> for <em>custom</em> end screen"
              })
            });
          </script>

プラグインを実装するには、プレーヤーがプラグインコードの場所、必要に応じてスタイルシート、プラグイン名、およびプラグイン設定オプションを認識している必要があります。プラグインコードとスタイルシートの場所は次のとおりです:

  • https://players.brightcove.net/videojs-custom-endscreen/2/videojs-custom-endscreen.min.js
  • https://players.brightcove.net/videojs-custom-endscreen/2/videojs-custom-endscreen.css

プラグイン名は customEndscreen で、オプションの設定例は次のとおりです:

        {
          "content": "<strong>Content</strong> for <em>custom</em> end screen"
        }

次の例は、Videoタグ実装を使用して Custom Endscreen プラグインを単一のプレーヤーインスタンスに関連付ける方法を示しています。

  • 1 行目:link タグを使用して、HTML ページの head 内にプラグインの CSS を読み込みます。
  • 3 行目:video タグに id 属性を設定しています。ここでは myPlayerID を使用しています。
  • 12 行目:script タグを使用して、HTML の body 内でプラグインの JavaScript を読み込みます。
  • 16 行目:プレーヤーへの参照を作成します。
  • 17〜19 行目:プラグインを初期化し、カスタム オプションを渡します。
          <link rel="stylesheet" type="text/css" href="https://players.brightcove.net/videojs-custom-endscreen/2/videojs-custom-endscreen.css">
        
          <video-js id="myPlayerID"
            data-account="1752604059001"
            data-player="decfdaf5-0a6e-43f6-82d3-39d125c413c4"
            data-embed="default"
            controls=""></video-js>
        
          <script src="https://players.brightcove.net/1752604059001/decfdaf5-0a6e-43f6-82d3-39d125c413c4_default/index.min.js"></script>
        
          <script type="text/javascript" src="https://players.brightcove.net/videojs-custom-endscreen/2/videojs-custom-endscreen.min.js"></script>
        
          <script type="text/javascript">
            videojs.getPlayer('myPlayerID').ready(function() {
              var myPlayer = this;
              myPlayer.customEndscreen({
                "content": "<strong>Content</strong> for <em>custom</em> end screen"
              })
            });
          </script>

プロパティ

以下のプラグイン プロパティは、Custom Endscreen プラグインを制御するために使用されます:

  • content:
    • Type: string
    • カスタム エンド スクリーンに表示される任意の文字列リテラルまたは HTML。

エンド スクリーンのカスタマイズ

CSS を使用して、エンド スクリーンの外観をカスタマイズできます。以下にいくつかの例を示します。ページ コンテンツと干渉しないよう、必ず実装をテストしてください。

以下は、動画を再生し終えた後の、再生し直すボタンとソーシャル共有ボタンが表示されたエンド スクリーンです。

default custom endscreen

ボタンサイズの変更

エンド スクリーンのボタンサイズを変更したいとします。これらのボタンは Scalable Vector Graphics (SVG) 形式なので、CSS の widthheight ではサイズを変更できません。

代わりに、SVG は XML テキストファイルとして扱われるため、CSS の font-size プロパティを使用してサイズ変更できます。

次のコードで両方のボタンを小さくできます:

        .vjs-overlay-buttons {
          font-size: .5em;
        }

パーセンテージでも同様の効果が得られます:

        .vjs-overlay-buttons {
          font-size: 50%;
        }

結果は次のようになります:

small endscreen buttons

また、ボタンごとにサイズを独立して設定することもできます:

        .vjs-restart-control {
          font-size: .5em;
        }
        .vjs-trigger-social-control {
          font-size: .5em;
        }

ボタンの下にコンテンツを配置する

前のセクションでは、HTML を追加してエンド スクリーンにコンテンツを表示する方法を説明しました。たとえば次のコードは Brightcove のホームページへのリンクを追加します:

        <a href='https://www.brightcove.com'>Visit our home page</a>

デフォルトでは、追加したコンテンツはエンド スクリーン ボタンの上に表示されます:

content above endscreen buttons

以下の CSS を使用すると、HTML コンテンツをボタンの下に配置できます:

  • 190〜193 行目:ボタンを上から配置します。中央寄せは既に適用されています。
  • 194〜196 行目:オーバーレイ全体のデフォルト パディングを削除し、カスタム テキストを中央に揃えやすくします。
  • 197〜202 行目:カスタム テキストを下から配置し、横方向に中央揃えします。
        .vjs-overlay-buttons {
          position: absolute;
          top: 5em;
        }
        .vjs-custom-overlay {
          padding: 0;
        }
        .vjs-endscreen-overlay-content {
          position: absolute;
          bottom: 5em;
          text-align: center;
          width: 100%;
        }

結果は次のとおりです:

content below endscreen buttons

コンテンツとボタンを縦に並べて表示する

HTML コンテンツとエンド スクリーン ボタンのレイアウトを変更することもできます。デフォルトでは、コンテンツが上、ボタンが下に水平に配置されます。以下のコードでは、コンテンツを左側に寄せ、ボタンを縦方向に並べます:

  • 205〜210 行目:ボタンを上と左からの位置で配置します。幅が狭いため、ボタンが縦に並びます。
  • 211〜213 行目:オーバーレイ全体のデフォルト パディングを削除します。
  • 214〜223 行目:コンテンツを左側に寄せ、縦横中央揃えにします。
        .vjs-overlay-buttons {
          position: absolute;
          width: 10%;
          top: 20%;
          left: 50%;
        }
        .vjs-custom-overlay {
          padding: 0;
        }
        .vjs-endscreen-overlay-content {
          position: absolute;
          float: left;
          width: 50%;
          text-align: center;
          top: 45%;
          transform: translate(0, -50%)
          -webkit-transform: translate(0,-50%);
          -ms-transform: translate(0,-50%);
        }
        

結果は次のとおりです:

vertical content and endscreen buttons

デフォルトの CSS プロパティを上書きすることで、エンド スクリーンを自由にデザインできます。ブラウザの検証ツールを使用し、要素のクラス名や値を確認しながらカスタマイズしてください。手順の概要は プレーヤー外観のカスタマイズ ドキュメントを参照してください。

video 名を使用した mailto の利用

動画視聴者が質問やコメントをメールで送れるようにしたい場合があります。これは、カスタム エンド スクリーン内で HTML の mailto リンクを使用することで実現できます。次の例をご覧ください:

mailto customer endscreen

リンクをクリックすると、視聴者のデフォルト メール クライアントが起動します。以下のコードは、動画メタデータ(この例では video 名)をメールの件名として自動設定する方法を示しています。

次のセクションではこの処理の詳細を説明しますが、mediainfo プロパティから取得したデータを利用することで、任意の動画メタデータを mailto リンクに使用することができます。

  • 235 行目:customEndscreen プラグインの CSS を読み込みます。
  • 236〜241 行目:プレーヤーのサイズを変更する CSS。
  • 245〜251 行目:標準の Videoタグ埋め込みコード(id が追加されている点に注意)。
  • 253 行目:エンド スクリーン プラグインの JavaScript コードを読み込みます。
  • 256・257・270 行目:プレーヤー利用時の標準的なセットアップ。
  • 262 行目:loadstart イベントを監視。動画の読み込み開始時に myPlayer.mediainfo のメタデータが利用可能になります。
  • 263 行目:動画名を URL エンコードして変数に格納。mailto の subject に使用するには URL エンコードが必須です。
  • 264〜265 行目:<a href="mailto"> リンクを構築。
  • 266〜268 行目:customEndscreen() メソッドを呼び出し、生成した mailto リンクをエンド スクリーンの内容として設定。
        <!doctype html>
        <html>
        <head>
          <meta charset="utf-8">
          <title>End screen with title as subject</title>
        
          <link href="https://players.brightcove.net/videojs-custom-endscreen/2/videojs-custom-endscreen.css" rel='stylesheet'>
          <style type="text/css">
            .video-js {
              width: 600px;
              height: 338px;
            }
          </style>
        </head>
        <body>
        
          <video-js id="myPlayerID"
            data-video-id="1507781667001"
            data-account="1507807800001"
            data-player="default"
            data-embed="default"
            controls=""></video-js>
          <script src="https://players.brightcove.net/1507807800001/default_default/index.min.js"></script>
        
          <script src="https://players.brightcove.net/videojs-custom-endscreen/2/videojs-custom-endscreen.min.js"></script>
        
          <script type="text/javascript">
            videojs.getPlayer('myPlayerID').ready(function() {
              var myPlayer = this,
                subjectEncoded,
                theMailto,
                theLink;
        
              myPlayer.on('loadstart',function(){
                subjectEncoded = encodeURI(myPlayer.mediainfo.name);
                theMailto = 'mailto:nowhere@mozilla.org?subject=' + subjectEncoded;
                theLink = '<a href="' + theMailto + '">Email a Comment</a><br /><br/>';
                myPlayer.customEndscreen({
                  "content": theLink
                })
              })
            });
          </script>
        
        </body>
        </html>

マクロの使用

content に指定するカスタム エンド スクリーン用の文字列では、videojs-contrib-ads がサポートするマクロを利用できるようになりました。例えば、現在プレーヤーで再生中の動画名と説明文をエンド スクリーンに表示したい場合、次のようなコードを使用します。

        videojs.getPlayer('myPlayerID').on('loadstart', function() {
          var myPlayer = this;
        
          // +++ エンド スクリーン メソッドの呼び出し +++
          myPlayer.customEndscreen({
            content: '{mediainfo.name} - {mediainfo.description}'
          });
        });

このコードにより、以下のようなエンド スクリーンが表示されます:

using macros

使用可能なマクロの一覧は次のとおりです:

マクロ 説明
{player.id} プレーヤー ID
{mediainfo.id} 動画 ID
{mediainfo.name} 動画タイトル
{mediainfo.description} 短い説明文(最大 250 文字)
{mediainfo.tags} 動画に関連付けられたタグ(メタデータ)
{mediainfo.reference_id} 参照 ID
{mediainfo.duration} Video Cloud により報告された動画の再生時間
{mediainfo.ad_keys} Media モジュールで追加・編集できる自由形式テキスト。 次のようにクエリ パラメータとして使用します:
        cust_params={mediainfo.ad_keys}
{player.duration} プレーヤーで計測された動画の再生時間(mediainfo.duration と若干異なる場合があり、より正確なことが多い)
{document.referrer} リンク元ページの URL
{window.location.href} 現在のページ URL
{timestamp} 1970/1/1 からの経過ミリ秒(ローカル時刻)
{random} 0〜1兆のランダムな数値(ユニークなインプレッションを生成し、広告のキャッシュ問題やインプレッション不一致を防ぐために使用)

既知の問題

  • 非常にまれですが、コントロールバーを常に表示する設定にしている場合で、なおかつカスタム エンド スクリーン プラグインを使用している場合、エンドスクリーン表示後にコントロールバーが正しく動作するよう調整が必要です。デフォルトではエンド スクリーン プラグインがコントロールバーを無効にします。 これを有効にするには、ModalDialogmodalopen イベント発火後に JavaScript の player.controls(true) を呼び出してください。

変更履歴

Custom Endscreen プラグイン リリースノート を参照してください。

過去のリリースノートについては こちらの変更履歴 を参照してください。