I think I have your answer. I found it in another question that you asked : Uncaught TypeError: jQuery is not a function
In that question you shared this code:
function bindKudoEvent() {
jQuery('.lia-button-image-kudos-kudoed a.kudos-link').on('click', function(e) {
var isAcceptedSol = jQuery(this).parents('.lia-message-view-display').hasClass('lia-accepted-solution');
trackClickTkb(0, "kudo count", isAcceptedSol)
setTimeout(function() {
bindKudoEvent()
}, 3500);
});
jQuery('.lia-button-image-kudos-not-kudoed a.kudos-link').on('click', function(e) {
var isAcceptedSol = jQuery(this).parents('.lia-message-view-display').hasClass('lia-accepted-solution');
trackClickTkb(1, "kudo count", isAcceptedSol)
setTimeout(function() {
bindKudoEvent()
}, 3500);
});
}
bindKudoEvent();
This code is recursing (calling itself) and installing multiple click listeners on your button.
You end up getting a new event listener installed every 3.5 seconds.
That means that if you sat on the page for 36 seconds (assuming that the 1st call to bindKudoEvent() happened at second 1), and then clicked the button,
trackClickTkb(0,"kudo count",isAcceptedSol)
would be fired 10 times.
DTM is very good at listening for click events. You should just use DTM event rules for this sort of thing.