gpt4 book ai didi

ajax - 在没有事件的情况下将动态数据发送到 Google 标签管理器 dataLayer

转载 作者:行者123 更新时间:2023-12-03 15:30:30 25 4
gpt4 key购买 nike

我在网站上为 Google Tag manager 设置了一些自定义标签来跟踪一些自定义数据,但它没有跟踪。 dataLayer 变量在标签管理器代码上方的头部整理了多个这样的数据。

过程是,用户登陆页面并点击,这使用本地化数据从 wordpress 等获取数据,并通过 ajax 调用记录此信息。我们还想在 ajax 调用之前使用标签管理器在 Google Analytics 中记录这些数据。

这是Javascript。

// JavaScript Document
jQuery(document).ready(function($){

console.log(gg_data_object);

var MyObject = {

load: function(){
MyObject._do_ajax('landed', null, null);
},

_readCookie: function (name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return 0;
},

_click_trace: function(event){
MyObject._do_ajax('clicked', this.href, $(this).attr('class'));
},
_submit_trace: function(event){
gg_data_object.user_id = MyObject._readCookie('user_id');
MyObject._do_ajax('submission', gg_data_object.post_type, $(this).attr('class'));

},
_do_ajax: function(event_action, href, class_ref){

var data = {
'action' : 'track_event',
'security' : gg_data_object.ajax_nonce,
'event_action' : event_action,
'current_url' : gg_data_object.current_url,
'date' : gg_data_object.date_today,
'phpsessionid' : gg_data_object.phpsessionid,
'post_id' : gg_data_object.post_id,
'post_type' : gg_data_object.post_type,
'referrer' : gg_data_object.referrer,
'unique_id' : gg_data_object.unique_id,
'user_id' : gg_data_object.user_id,
'clickedon' : href,
'class_location_type' : class_ref

};



/// Now ping event to google analytics - Nothing works
dataLayer.push(data);
dataLayer.push({'gg_event_action': event_action});

// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
jQuery.ajax({
type : "post",
dataType : "json",
url : gg_data_object.ajaxurl,
data : data,
success: function(response) {
console.log(response);

return true;
}
});

},

}

MyObject.load();
$(document).on('click', 'a', MyObject._click_trace);
$(document).on('click', 'input[type="submit"]', MyObject._submit_trace);

});

我的问题不是上面的这段代码,而是实际上即使在花了一天左右的时间阅读文档,观看视频后,我似乎也无法设置一个有效的推送。

在标签管理器中:
  • 我创建了一个新标签
  • 选择 Google Universal Analytics
  • 选择自定义事件
  • 设置新宏
  • 给它一个标签名称说 gg_event_type
  • 选择数据层变量

  • 但它不会将数据发送到 Google Analytics。
    对我所缺少的任何帮助将不胜感激。

    最佳答案

    好的,到目前为止,这是我所做的。我使用了答案按钮,所以我可以格式化答案。

    我设置了一个事件,并多次使用它来跟踪使用相同引用的数据。

    按照本教程。

    所以这就是创建一个标签。
    有一个自定义的{{event}}
    为标签和类别设置宏
    然后创建了一个规则,将事件与我的自定义事件引用联系起来。

    然后我

    /// Now ping event to google analytics      
    dataLayer = [];
    dataLayer.push({
    'event' : 'trackEvent',
    'gtmCategory' : 'track_event',
    'gtmAction' : event_action,
    'gtmLabel' : gg_data_object.current_url
    });
    dataLayer.push({
    'event' : 'trackEvent',
    'gtmCategory' : 'track_event',
    'gtmAction' : 'sessionid',
    'gtmLabel' : gg_data_object.phpsessionid
    });
    dataLayer.push({
    'event' : 'trackEvent',
    'gtmCategory' : 'track_event',
    'gtmAction' : 'post_id',
    'gtmLabel' : gg_data_object.post_id
    });
    dataLayer.push({
    'event' : 'trackEvent',
    'gtmCategory' : 'track_event',
    'gtmAction' : 'post_type',
    'gtmLabel' : gg_data_object.post_type
    });
    dataLayer.push({
    'event' : 'trackEvent',
    'gtmCategory' : 'track_event',
    'gtmAction' : 'referrer',
    'gtmLabel' : gg_data_object.referrer
    });
    dataLayer.push({
    'event' : 'trackEvent',
    'gtmCategory' : 'track_event',
    'gtmAction' : 'unique_id',
    'gtmLabel' : gg_data_object.unique_id
    });
    dataLayer.push({
    'event' : 'trackEvent',
    'gtmCategory' : 'track_event',
    'gtmAction' : 'user_id',
    'gtmLabel' : gg_data_object.user_id
    });
    dataLayer.push({
    'event' : 'trackEvent',
    'gtmCategory' : 'track_event',
    'gtmAction' : 'clickedon',
    'gtmLabel' : gg_data_object.href
    });
    dataLayer.push({
    'event' : 'trackEvent',
    'gtmCategory' : 'track_event',
    'gtmAction' : 'class_ref',
    'gtmLabel' : gg_data_object.class_ref,
    /*'event_action' : event_action,
    'current_url' : gg_data_object.current_url,
    'phpsessionid' : gg_data_object.phpsessionid,
    'post_id' : gg_data_object.post_id,
    'post_type' : gg_data_object.post_type,
    'referrer' : gg_data_object.referrer,
    'unique_id' : gg_data_object.unique_id,
    'user_id' : gg_data_object.user_id,
    'clickedon' : href,
    'class_location_type' : class_ref*/
    });
    console.log(dataLayer);

    可能有一种更优雅的方法来做到这一点并设置额外的字段,但现在这可行。
    感谢你的帮助。

    和我

    关于ajax - 在没有事件的情况下将动态数据发送到 Google 标签管理器 dataLayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30360883/

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