YouTubeの動画が再生されたイベントを取得し、Xdataにログを送信するサンプルのご紹介です。
動画再生時にonClickイベントを発生させるだけではログ通知できなかったため、調査したところ、YouTubeからAPIが提供されていましたので実際にテストしてみました。
このAPIを活用して動画再生イベントを取得し、XdataのJavaScriptタグが用意するイベント関数(__push_event)を利用してログ通知しています。
<html lang="ja">
<head>
<meta charset="utf-8">
<title>YouTubeの動作再生時のクリックイベント取得テスト</title>
</head>
<body>
<!--[YouTube]-->
<div id="video-container"></div>
<!--[/YouTube]-->
<script type="text/javascript">
// YouTubeのAPIを読み込み、動画のクリック時のイベントを取り込む
(function() {
var __ytse = document.createElement("script");
__ytse.src = "https://www.youtube.com/iframe_api";
var __fse = document.getElementsByTagName('script')[0];
__fse.parentNode.insertBefore(__ytse, __fse);
var player;
window.onYouTubeIframeAPIReady = function() {
player = new YT.Player('video-container', {
height: '450',
width: '800',
videoId: 'Cf_0uqnYPsI',
events: {
'onStateChange': onPlayerStateChange
},
playerVars: {
'rel' : 0
}
});
};
var __sf = false;
function onPlayerStateChange(e) {
if( e.data == YT.PlayerState.PLAYING && !__sf ) {
// イベント関数を使ってログ送信
__push_event('[動画名]','[動画カテゴリ]');
__sf = true;
}
}
})();
</script>
<!-- 共通タグ -->
<script type="text/javascript">
var __site_id = "******";
var __call_domain = "log1.mobylog.jp";
// var __mobylog_internal_domain = ["導入するドメインを指定"];
// var __cookie_domain_name = "導入するドメインを指定(サブドメイン計測時のみ)";
// var __add_params = new Array("");
var __mobylog_send_params = ["utm_source", "utm_medium","utm_term", "utm_content","utm_campaign"];
var __no_init = 1;
var __ip_notify = 1;
var __get_title_tag = 1;
var __build_session = 1;
var __tracking_cookie_type = "ENGINE";
if( typeof(__mobylog_attribute_item) !== "object" ) { __mobylog_attribute_item = new Array(); }
(function() {
var se = document.createElement('script');
se.src = __protocol + __call_domain + "/_tag_mobylog.js";
se.type = "text/javascript";
document.getElementsByTagName("head")[0].appendChild(se);
// 顧客を識別するユニークキーの設定
var __loadtrigger = function() {
// __mhtsc.set("cltId", "顧客を識別するユニークキー");
__push_beacon(__getURL());
};
if( typeof(addEventListener) === "function" ) {window.addEventListener("load", __loadtrigger);} else {window.attachEvent("onload",__loadtrigger);}
})();
</script>
</body>
</html>
上記サンプルでは、__push_event関数で、イベント名として[動画名]、イベントカテゴリとして[動画カテゴリ]を固定で格納していますが、任意の情報を格納して通知するようにすることで、イベントログとしてXdataに保存されます。
大分説明を省きましたので、詳しい情報が必要な方はsupport@xdata.jpまでお問い合わせください。










