Иногда стандартные методы отслеживания отправки форм не работают из-за отправки методами JS. Можно править код, но хотелось решать сразу все в GTM.
Мы написали универсальный код, добавив который как HTML тег, мы получим event при каждой отправке формы на который потом сможем настраивать работу других тегов. Работает и при наличии нескольких форм на странице.
<script>
var inputs = document.getElementsByTagName(‘input’);
var counter = 0;
for(var ii = 0; ii < inputs.length; ii++){
if (typeof inputs[ii].type != ‘undefined’){
if(inputs[ii].type == ‘submit’){
counter++;
inputs[ii].jcounter = counter;
inputs[ii].addEventListener(‘click’, function(e){
if(typeof this.id != ‘undefined’ && this.id){
dataLayer.push({‘event’ : ‘num_’ + this.jcounter + ‘_id_’ + this.id + ‘_form_submit’});
}
else{
dataLayer.push({‘event’ : ‘num_’ + this.jcounter + ‘_form_submit’});
}
console.log(dataLayer);
});
}
}
}
</script>