Analytics
Сейчас в сети: 800
Сейчас в сети: 800
Обсуждение проблем, связанных с кодом отслеживания событий, кодом Universal Analytics и настройки междоменного отслеживания
Подсказки
star_border
Ответить

Как отслеживать события в <canvas>?

Студент ✭ ✭ ✭

Есть сайт, в котором часть функционала реализована через <canvas>. 

В самом коде страницы html "зацепиться" не за что, т.к. там просто выводит тэг <canvas> с параметрами и все.

Кто то сталкивался с данной проблемой? подскажите, пожалуйста, что делать и как настроить полноценно аналитику в Google Analytics?

1 Ответ экспертаverified_user
1 УТВЕРЖДЕННОЕ РЕШЕНИЕ

Утвержденные решения
Лучший ответ.
Решение
Утвердил автор темы Майя Н
апреля 2016

Re: Как отслеживать события в <canvas>?

Ведущий участник
Майя, если я правильно понял статьи в интернете, то есть возможность при клике на любой элемент внутри canvas выполнить javascript-код. Поинтересуйтесь у разработчика, так ли это? Если да, то просто вызывайте dataLayser.push и отслеживайте любые элементы Веселый



С уважением,
Анатолий

Просмотреть решение в исходном сообщении

Re: Как отслеживать события в <canvas>?

Ведущий участник
Добрый день, Майя!

Покажите, пожалуйста, страничку с кодом.

И можно сразу ссылочку на предварительный просмотр версии контейнера GTM.



С уважением,
Анатолий

Re: Как отслеживать события в <canvas>?

Студент ✭ ✭ ✭
Вот с GTM http://prnt.sc/aa6qhq

А вот код такой там:
<canvas width="1158" height="651" style="position: relative; cursor: inherit;"></canvas>

Re: Как отслеживать события в <canvas>?

Ведущий участник
Майя, спасибо!

Можно взглянуть на страничку сайта? И ссылочку на предварительный просмотр версии GTM?



С уважением,
Анатолий

Re: Как отслеживать события в <canvas>?

Студент ✭ ✭ ✭
к сожалению не могу (((
тот случай когда я реально подписывал договор о неразглашении, тематика очень строгая

Re: Как отслеживать события в <canvas>?

Ведущий участник

Я вас понял, Майя.

Смотрите, я бы сделал так: создал переменную с типом "Собственный js-код". В этот код в одну из переменных передал бы тот объект, по которому кликают. Примерно, вот так:

function(){
	var el = {{Click Element}}
	///// Код, который помогает определить тот или не тот canvas
	if (canvas = 'tot'){
		return true;
	} else{
		return false;
	}
}

Далее с помощью js-код вы определяете все нужные параметры и понимаете это "тот" canvas или "не тот". Можно просто вернуть "true" или "false".

 

Это если вам надо определить "тот"/"не тот".

 

Если задача состоит в том, чтобы при клике на какой-то отрисованный элемент вызывалось нужное событие, тот все сложнее. Я сам такие задачи еще не решал Печальный Но может быть программно можно сделать так, чтобы при клике на какой-то отрисованный элемент вызывался просто dataLayer.push?

 

И того, что нашел в интернете следует, что у объектов есть события "onclick", т.е. можно вызывать и dataLayer.push. Если все будет работать с dataLayer.push, то нет никаких проблем отслеживать почти все, что пожелаете Веселый

 




С уважением,
Анатолий

Re: Как отслеживать события в <canvas>?

Студент ✭ ✭ ✭
"Если задача состоит в том, чтобы при клике на какой-то отрисованный элемент вызывалось нужное событие, тот все сложнее. Я сам такие задачи еще не решал Печальный Но может быть программно можно сделать так, чтобы при клике на какой-то отрисованный элемент вызывался просто dataLayer.push?"

вот как раз тут этот случай и есть, дело в том что там всего один блок <canvas> и есть. Других просто нет. Нужно в рамках одного вылавливать.
Лучший ответ.
Решение
Утвердил автор темы Майя Н
апреля 2016

Re: Как отслеживать события в <canvas>?

Ведущий участник
Майя, если я правильно понял статьи в интернете, то есть возможность при клике на любой элемент внутри canvas выполнить javascript-код. Поинтересуйтесь у разработчика, так ли это? Если да, то просто вызывайте dataLayser.push и отслеживайте любые элементы Веселый



С уважением,
Анатолий