プレイヤー・イベントと外部システムとの連携

はじめに

ラウザの動作を何らかの方法で変更するために使用したりできる、さまざまなイベントが含まれています。 イベントは、プレーヤのロード時、動画の再生時(開始、進行、完了)、ユーザーがボタンと対話した時など、さまざまなタイミングで発生します。イベントに反応するには、まず、プレーヤーからのイベントを待機し、イベントが発生したときにブラウザから呼び出されるコールバック関数を指定します。

簡単な例:

<script>
var myPlayer = document.getElementById('sskyplayer');
myPlayer.addEventListener('ctaClicked', function(event) {
console.log('Viewer clicked the CTA: ' + event.detail.name);
});
</script>

プレイヤー要素は変数myPlayer に格納され、それに対して addEventListenerメソッドが呼び出されます。最初の引数は文字列で、リッスンするイベントの名前です。これは ctaClicked ですctaClicked - これは、動画のコールトゥアクション ボタンをマウスでクリックするか、指でタップすることを意味します。2 番目の引数はコールバック関数です。ここでは、ボタン名を含むイベントに関するログをコンソールに書き込みます。

注意 - 上記のサンプルでは、player 要素の作成時に定義された sskyplayer という ID を使用して、player 要素を取得しています。これは、SundaySkyのプレーヤー統合コードで使用されているidと同じ値なので、異なるidが使用されている場合は適宜修正してください。

 

<script>

function createPlayer() {
var sskyplayer = document.createElement('sundaysky-video');
sskyplayer.setAttribute( 'id' , 'sskyplayer' );
sskyplayer.setAttribute( 'analytics-token' , 'accountID' );
sskyplayer.setAttribute('endpoint-url','https://accountID.web.sundaysky.com/create_video_session');
sskyplayer.setAttribute('session-parameters','{ "id" : "110006" }');
sskyplayer.setAttribute( 'poster','https://play.sundaysky.com/resources/invitation.png' );
sskyplayer.addEventListener('ctaClicked', function(event) {
console.log('Viewer clicked the CTA: ' + event.detail.name);
});
document.getElementById('sskydiv').appendChild(sskyplayer);
}
createPlayer();

</script>

プレイヤーイベント

以下のリストは、一般的に使用されるイベントと、そのイベントが発生するタイミング、および使用可能な追加のイベントプロパティについての説明です。 

Event Event Trigger
ctaClicked

CTAメニューのオプションがクリックされたときに発行される。 Eventの "target "プロパティには、クリックされたボタン要素のインスタンスが格納されます。
Eventのプロパティ:

  • "detail.url" - クリックされたアクションに関連するURL
  • "detail.name" - クリックしたアクションの名前
  • "detail.videoUrl": ビデオメディアのURL
  • "detail.videoFormat": ビデオストリームのmime-type
  • "detail.sessionId": 現在のセッションを識別する一意のトークン

"preventDefault()": 呼び出された場合、クリックから生じるはずのデフォルトアクション(新しいブラウザタブでURLを開く)は起動されません。 ctaClicked イベントとこのメソッドを使用して、URLを新しいウィンドウで開かないようにするアクションを実装してください。

ctaHide

CTAメニューを非表示にするときに発行されます。
イベントのプロパティ:

  • "detail.videoUrl": 動画メディアのURL
  • "detail.videoFormat": ビデオストリームのmimeタイプ
  • "detail.sessionId": 現在のセッションを識別する一意のトークン

このイベントは、各 CTA に対して個別に発生することに注意してください。 従来のメタデータ構造の後方互換性を保つために構造はそのままですが、新しいメタデータ構造では、各 CTA ボタンが表示される正確な時間を個別に設定することができます。 このイベントは、個々の CTA が実際に表示される瞬間を反映します。

ctaShow

CTAボタンが表示されるべき時に発行されます。
イベントのプロパティ:

  • "detail.ids":  CTAボタンのIDの配列
  • "detail.ctaSpec": 表示されるCTAボタンの配列。 表示する各ボタン については、以下のフィールドを持つオブジェクトが配列に含まれます:
    • "detail.ctaSpec[0].hotspot.width"
    • "detail.ctaSpec[0].hotspot.height"
    • "detail.ctaSpec[0].hotspot.x"
    • "detail.ctaSpec[0].hotspot.y"
    • "URL"
    • "video"
    • "replay"
    • "share"
    • "javascript" (legacy)
    • "url" (legacy)
    • "detail.ctaSpec[0].id"
    • "detail.ctaSpec[0].label"
    • "detail.ctaSpec[0].action"
    • "detail.ctaSpec[0].actionRef"
    • "detail.ctaSpec[0].default"
    • "detail.ctaSpec[0].startTime": CTAの表示時間、ビデオタイム単位
    • "detail.ctaSpec[0].endTime": CTAの非表示時間、動画時間内
    • "detail.ctaSpec[0].hotspot"
    • "detail.ctaSpec[0].name": CTAが表示されるように設定されたシーン名(現在のシーン)
    • "detail.ctaSpec[0].url"
    • "detail.ctaSpec[0].sceneName"
    • "detail.ctaSpec[0].shouldHighlight"
    • "detail.ctaSpec[0].type": CTAの種類を指定し、以下のいずれかを指定:
    • "detail.ctaSpec[0].url"
    • "detail.ctaSpec[0].videoSegmentId"
  • "detail.videoUrl": 動画メディアのURL
  • "detail.videoFormat": ビデオストリームのmimeタイプ
  • "detail.sessionId": 現在のセッションを識別する一意のトークン
  • "detail.scene": CTAが表示されたシーン名(現在のシーン)
ended

動画が終了するたびに発行されます。

error

プレーヤーにエラーが発生したときに発行されます。
イベントのプロパティ:

  • "detail.target" - ほとんどがエラーを発生させたプレイヤー要素ですが、 <sundaysky-survey>のような接続された要素である場合もあります。
  • "detail.errorCode" - エラーを特定する整数、または不明の場合は 0
  • "detail.originalError" - (オプション、不透明) 最初のエラーがサードパーティのサブコンポーネントのエラーである場合、このプロパティには、例外、別の "error" イベント、またはエラーコードなど、最初に遭遇したエラーオブジェクトが含まれる場合があります。
  • "detail.errorMessage": ユーザに表示されるメッセージ
  • "detail.videoUrl": 動画メディアの URL
  • "detail.videoFormat": ビデオストリームのmime-type
  • "detail.sessionId": 現在のセッションを識別する一意のトークン
load すべてのソフトウェアコンポーネントのロードが完了し、プレーヤーコンポーネントが初期化されたときに発行されます。
playRequested

ユーザーが初めて "再生" をクリックしたときに発行されます。 自動再生に設定されている動画では発生しません。
イベントのプロパティ:

  • "detail.videoUrl": 動画メディアのURL
  • "detail.videoFormat": ビデオストリームのmimeタイプ
  • "detail.sessionId": 現在のセッションを識別する一意のトークン
playStart

動画の再生が初めて開始されたときに発行される。セッションごとに複数回発生することはありません。
イベントのプロパティ:

  • "detail.videoUrl": ビデオメディアのURL
  • "detail.videoFormat": ビデオ ストリームの mimeタイプ
  • "detail.sessionId": 現在のセッションを識別する一意のトークン
progress

動画が "再生" 状態のとき、0%と100%を含めて、動画の継続時間の1%ごとに発行されるます。
イベントのプロパティ:

  • "detail.position" - 0 から 1 までの数字で、動画の持続時間に対する再生位置を表します。(例: 0.04 は 4% の進捗を表します)
  • "detail.videoUrl": ビデオ メディアの URL
  • "detail.videoFormat": ビデオストリームのmime-type
  • "detail.sessionId": 現在のセッションを識別する一意のトークン
scene

ビデオ内の新しいシーンの再生を開始するたびに発行されます。
イベントのプロパティ:

  • "detail.position" - 0から1の間の数値で、ビデオのデュレーションに関連する再生位置を表します。
  • "detail.scene" - シーンの名前
  • "detail.videoUrl": ビデオ メディアの URL
  • "detail.videoFormat": ビデオストリームのmime-type
  • "detail.sessionId": 現在のセッションを識別する一意のトークン
survey

<sundaysky-survey>コンポーネントが接続され、アンケートが初めて提示された場合に発行されます。
イベントのプロパティ:

  • "detail.target" - <sundaysky-survey> コンポーネントの名前
  • "detail.videoUrl": 動画メディアのURL
  • "detail.videoFormat": ビデオストリームのmimeタイプ
  • "detail.sessionId": 現在のセッションを識別する一意のトークン
surveySubmit

<sundaysky-survey>コンポーネントが接続され、アンケートが送信された場合に発行されます。
イベントのプロパティ:

  • "detail.target" - <sundaysky-survey> コンポーネントの名前
  • "detail.videoUrl": 動画メディアのURL
  • "detail.videoFormat": ビデオストリームのmime-type
  • "detail.sessionId": 現在のセッションを識別する一意のトークン
Time to First Frame

動画が初めて再生されるときに発行されます。
イベントのプロパティ:

  • "detail.value" -最初のフレームまでの実際の時間(ミリ秒単位)
transcript

トランスクリプトデータが利用可能になったとき(通常、ビデオの再生が開始されたとき)に発行されます。
イベントのプロパティ:

  • "detail.transcript": トランスクリプトの URL
  • "detail.descriptivetranscript" : 記述的なトランスクリプトの URL
transcriptClicked

トランスクリプトコントロールバーボタンがクリックされたときに発行されます。イベントの "target "プロパティは、トランスクリプト要素のインスタンスを含みます。
イベントのプロパティ:

  • "detail.url" - トランスクリプトデータのURL
  • "preventDefault()": 呼び出されると、クリックから生じるはずのデフォルトアクション(新しいブラウザタブでtranscriptURLを開く)が呼び出されなくなります。 transcriptClicked イベントとこのメソッドを使用して、 新しいタブでトランスクリプトを開くのではないアクションを実装します。
userAction

ユーザーインタラクション(ボタンや画面上のコントロールのクリック/タップ/プレス)が発生するたびに発行されます。
イベントのプロパティ:

  • "detail.action" - 実行されたユーザーアクションの名前; アクションは以下の通り。アクションは、"play", "pause", "volumeChange" (ボリュームバーを動かした場合), "mute", "seek", "toggleCC", "toggleFullScreen", "toggleTranscript", "downloadTranscript" となります。
  • "detail.value" -変更されたプロパティの値(ボリュームまたは進捗の場合には数値、トグルボタンクリックの場合にはブール値)
  • "detail.videoUrl": 動画メディアのURL
  • "detail.videoFormat": ビデオストリームのmimeタイプ
  • "detail.sessionId": 現在のセッションを識別する一意のトークン
Video Played

動画が初めて再生されるときに発行されます。
イベントのプロパティ:

  • "detail.value" - 動画の再生時間

コードサンプル

  • デフォルトのCTA URLをカスタムURLで上書きします:
<script>

var myPlayer = document.getElementById('sskyplayer');
myPlayer.addEventListener('ctaClicked', function(event) {
event.preventDefault();
if (event.detail.label=="<CTA name to override>") 
{
window.open(“<URL To Open>”);
}
});

</script>
  • 動画視聴の四分位値イベントをサードパーティのウェブ解析システムに送信します:
<script>

var myPlayer = document.getElementById('sskyplayer');
myPlayer.addEventListener('progress', function(event) {
if(event.detail.position=='0.25' || event.detail.position=='0.5' || event.detail.position=='0.75') { 
SendEventToWebAnalytics(event.detail.position); 
}
});

</script>
  • 動画のCTAが表示されたら、ページ上のCTAを表示するようにします:
<script>
var myPlayer = document.getElementById('sskyplayer');
myPlayer.addEventListener('ctaShow', function(event) {
if (detail.ctaSpec[0].label=="<Your CTA Label>") 
{
document.getElementById('<Page Element To Display>').style.visibility="visible";
}
});

</script>
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

Still Have Questions?

SundaySky Support is here for you

contact support