gpt4 book ai didi

javascript - 使用 Google 跟踪代码管理器跟踪滑动事件

转载 作者:行者123 更新时间:2023-12-03 09:23:48 24 4
gpt4 key购买 nike

我有一位客户希望跟踪 FlexSlider 上的滑动事件(向左滑动、向右滑动)照片库。我正在使用一个小脚本来检测滑动事件,并且发送 alert() 效果很好。或console.log()用于测试目的。但是,当我尝试将事件推送到 Google 跟踪代码管理器时,它似乎没有被发送。

以下是我尝试跟踪事件的方法:

// Previous Photo
jQuery('#photo_gallery').on('swiperight', 'img', function() {
dataLayer.push({'category': 'photo-gallery', 'action' : 'photo-gallery-previous', 'label' : 'previous'});
});

// Next Photo
jQuery('#photo_gallery').on('swipeleft', 'img', function() {
dataLayer.push({'category': 'photo-gallery', 'action' : 'photo-gallery-next', 'label' : 'next'});
});

哪里#photo_gallery是标准的ID <div class="flexslider">容器。

这是我用来创建 swipeleft 的脚本swiperight事件:

(function($) {

$.detectSwipe = {
enabled: 'ontouchstart' in document.documentElement,
preventDefault: true,
threshold: 20
};

var startX,
startY,
isMoving = false;

function onTouchEnd() {
this.removeEventListener('touchmove', onTouchMove);
this.removeEventListener('touchend', onTouchEnd);
isMoving = false;
}

function onTouchMove(e) {
if ($.detectSwipe.preventDefault) { e.preventDefault(); }
if(isMoving) {
var x = e.touches[0].pageX;
var y = e.touches[0].pageY;
var dx = startX - x;
var dy = startY - y;
var dir;
if(Math.abs(dx) >= $.detectSwipe.threshold) {
dir = dx > 0 ? 'left' : 'right'
} else if(Math.abs(dy) >= $.detectSwipe.threshold) {
dir = dy > 0 ? 'down' : 'up'
}
if(dir) {
onTouchEnd.call(this);
$(this).trigger('swipe', dir).trigger('swipe' + dir);
}
}
}

function onTouchStart(e) {
if (e.touches.length == 1) {
startX = e.touches[0].pageX;
startY = e.touches[0].pageY;
isMoving = true;
this.addEventListener('touchmove', onTouchMove, false);
this.addEventListener('touchend', onTouchEnd, false);
}
}

function setup() {
this.addEventListener && this.addEventListener('touchstart', onTouchStart, false);
}

function teardown() {
this.removeEventListener('touchstart', onTouchStart);
}

$.event.special.swipe = { setup: setup };

$.each(['left', 'up', 'down', 'right'], function () {
$.event.special['swipe' + this] = { setup: function(){
$(this).on('swipe', $.noop);
} };
});

})(jQuery);

注意:上述脚本适用于控制台日志和警报

有人有在 Google Analytics/跟踪代码管理器中跟踪滑动事件的经验吗?如果能够利用 FlexSlider 内置的滑动功能就好了,但我不想修改任何插件代码。

最佳答案

您还应该包含一个“事件”参数(例如“滑动”)以在 GTM 触发器中使用:

dataLayer.push({
'event': 'swipe',
// your other parameters
})

引用此:https://developers.google.com/tag-manager/devguide?hl=en

Google Tag Manager provides a special data layer variable called an event that is used within JavaScript event listeners to initiate tag firing when a user interacts with website elements such as a button.

然后您可以使用“滑动”事件来触发您的代码。

关于javascript - 使用 Google 跟踪代码管理器跟踪滑动事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31752746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com