Я не думаю, что это проблема с событиями Facebook, а проблема с iFrame. URL, размещенный в iFrame, получает событие click и не передает это событие самому элементу iFrame. К счастью, с видео на YouTube вы можете использовать API встроенного проигрывателя для выполнения действий в зависимости от состояния проигрывателя. Попробуйте это:
<iframe id="my-youtube-video-id" width="560" height="315" src="https://www.youtube.com/embed/tzbrKBv-khE?enablejsapi=1" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<script>
// This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('my-youtube-video-id', {
events: {
'onStateChange': onPlayerStateChange
}
});
}
var done;
function onPlayerStateChange(event){
if (event.data == YT.PlayerState.PLAYING && !done) {
//Here is where you can add your event, we also use the done variable to make sure the event will only fire once.
fbq('track', 'ViewContent');
done = true;
}
}
</script>
РЕДАКТИРОВАТЬ: См. Этот jsFiddle, который будет вход в консоль при вызове функции onPlayerStateChange()