У меня есть сайт, на котором открывается оверлей и загружается JavaScript для Менеджера тегов Google, но пока нет видео с YouTube.Когда пользователь нажимает кнопку (class = .flower-leaf или .list-leaf), видео YouTube, которое мы хотим отслеживать с помощью GTM, появляется на странице через iframe.
На прошлой неделе я наткнулся на эту проблему, когда мне захотелось использовать YouTubeAPI, чтобы дать мне событие, когда видео перестало воспроизводиться: Целевой (несколько) API-интерфейсов YouTube API (несколько)
Теперь я хочу что-то подобное, но не совсем, потому что вместо того, чтобы запускать пользовательские функции для событий onReady и onStateChange, я просто хочу, чтобы скрипт GTM реагировал на эти события.Теперь мои знания JavaScript не являются экспертами, поэтому я могу упустить что-то очевидное здесь, но как мне убедиться, что функции сценария GTM будут запущены в этих событиях?С моим текущим кодом я получаю сообщение о том, что onPlayerReady не определено.Это, очевидно, только смотрит в рамки моего собственного сценария, но я хочу вызвать функцию GTM.Как бы я пошел об этом?
// 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);
function onYouTubePlayerAPIReady() {
$(".flower-leaf").click(function () {
interval = setInterval(myTimer, 1000);
});
$(".list-leaf").click(function () {
interval = setInterval(myTimer, 1000);
});
}
var interval;
var player;
function myTimer() {
myStopFunction();
addEventListeners();
}
function myStopFunction() {
clearInterval(interval);
}
function addEventListeners() {
$(".flower-leaf").each(function () {
var identifier = 'youtubeplayer';
player = new YT.Player(identifier, {
events: {
"onReady": onPlayerReady,
"onStateChange": onPlayerStateChange,
}
});
});
$(".list-leaf").each(function () {
var identifier = 'youtubeplayer';
player = new YT.Player(identifier, {
events: {
"onReady": onPlayerReady,
"onStateChange": onPlayerStateChange,
}
});
});
}
Я думаю, важно упомянуть, что я использую стандартный триггер YouTube-видео в моей настройке GTM (на tagmanager.google.com)