为什么我的 UTM cookie 没有将 UTM 和事件数据发送到谷歌分析

问题描述 投票:0回答:0

嗨,我基本上需要一个 cookie 来为访问来自 Facebook 广告的特定网页的人存储 UTM 参数。因此,当它们在 URL 中没有 UTM 参数的情况下被重定向时,UTM 参数和事件将发送到谷歌分析。

这是创建 cookie 的代码(它似乎正在工作并创建 cookie):

<script>
function getQueryParam(url, param) {

  var queryString = url.split('?')[1];
  if (!queryString) return null;

  var params = queryString.split('&');
  for (var i = 0; i < params.length; i++) {
    var keyValue = params[i].split('=');
    if (keyValue[0] === param) {
      return decodeURIComponent(keyValue[1]);
    }
  }
  return null;
}

function setCookie(name, value, days) {
  var expires = "";
  if (days) {
    var date = new Date();
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
    expires = "; expires=" + date.toUTCString();
  }
  document.cookie = name + "=" + (value || "") + expires + "; path=/";
}

function storeUtmParameters() {
  var utmParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'ad_id', 'adset_id', 'campaign_id', 'site_source_name', 'adset_name'];
  var eventData = {};

  for (var i = 0; i < utmParams.length; i++) {
    var paramValue = getQueryParam(window.location.href, utmParams[i]);
    if (paramValue) {
      eventData[utmParams[i]] = paramValue;
    }
  }

  if (Object.keys(eventData).length > 0) {
    setCookie('FbAdUTMCookie', JSON.stringify(eventData), 30); // Store cookie for 30 days
  }
}

storeUtmParameters();
  
</script>

现在问题出现在将实际事件和 utm 参数发送到分析时,这是代码:

<script>
  sendUtmEvent();

  
function sendUtmEvent() {
  var utmParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'ad_id', 'adset_id', 'campaign_id', 'site_source_name', 'adset_name'];
  var eventData = {};

  var cookieValue = getCookie('FbAdUTMCookie');
  if (cookieValue) {
    var cookieData = JSON.parse(cookieValue);
    for (var i = 0; i < utmParams.length; i++) {
      var paramValue = cookieData[utmParams[i]];
      if (paramValue) {
        eventData[utmParams[i]] = paramValue;
      }
    }
  }

  if (typeof dataLayer !== 'undefined') {
    dataLayer.push({
      'event': 'schedule',
      'event_category': 'UTM',
      'event_label': JSON.stringify(eventData),
      'non_interaction': true
    });
  }
}
</script>

注意:这两个脚本都在 Google 标签管理器中,并且基于页面视图触发器触发。

我已经检查了谷歌分析实时事件,但没有任何显示。

我是新手,对 javascript 没有经验,一直在使用聊天 GPT 来帮助我,所以如果可能的话,请尝试给出为初学者设计的答案。

javascript google-analytics google-tag-manager
© www.soinside.com 2019 - 2024. All rights reserved.