嗨,我基本上需要一个 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 来帮助我,所以如果可能的话,请尝试给出为初学者设计的答案。