我有一个要求,如果客户通过广告进入我们的网站,我需要根据他们上次点击的广告显示不同的内容。 如果他们点击广告 A,我们希望显示横幅 A,并设置 Cookie,以便此横幅在他们点击后显示 24 小时。 但是,如果他们在这 24 小时内点击了广告 B,我们希望向他们展示横幅 B 24 小时,而不是横幅 A。 然后,如果他们再次点击广告 A,则会显示横幅 A。如果他们没有点击任何广告,我们希望向他们展示横幅 C。
我实现这一目标的方法是根据他们点击的广告设置一个 cookie,如果他们在该 cookie 存在时点击了 OTHER 广告,请删除第一个 cookie 并为广告创建相应的 cookie。 希望到目前为止这是有道理的。
我编写了一个函数来查找这些 cookie 并显示相应的内容,但只有第一个有效。 正在为两种广告场景设置cookie,但如果存在PPC cookie,则不会删除广告cookie。 如果存在广告,则删除PPC cookie。 我哪里做错了?下面是脚本标记中的所有代码。此外,该网站使用jQuery 1.3.2,没有升级的机会,仅供参考。
$(document).ready(function() {
if ((window.location.href.indexOf("utm_source=adroll") > -1)) {
var oneDay = 1000 * 60 * 60 * 24 * 1;
var adRollexpire = new Date((new Date()).valueOf() + oneDay);
document.cookie = "adroll=true;expires=" + adRollexpire.toUTCString();
}
if (window.location.href.indexOf("source=bing") != -1 || window.location.href.indexOf("source=google") != -1) {
var oneDay = 1000 * 60 * 60 * 24 * 1;
var PPCexpire = new Date((new Date()).valueOf() + oneDay);
document.cookie = "ppc=true;expires=" + PPCexpire.toUTCString();
}
$(function() {
var delete_cookie = function(name) {
document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
};
if (document.cookie.indexOf('adroll=true') >= 0) {
delete_cookie('ppc=true');
$("#adRDetails").show();
$("#adRDetails").click(function() {
$("#adRollDetailsBox").show();
});
$(".close").click(function() {
$("#adRollDetailsBox").hide();
});
}
else if (document.cookie.indexOf('ppc=true') >= 0) {
delete_cookie('adroll=true');
$("#ppcDetails").show();
$("#ppcDetails").click(function() {
$("#ppcDetailsBox").show();
});
$(".close").click(function() {
$("#ppcDetailsBox").hide();
});
}
else {
$("#gwp-banner").show();
$("#cuisinetowelDetails").click(function() {
$("#cuisinetoweldetailsBox").show();
});
$("#cuisinetowelclose").click(function() {
$("#cuisinetoweldetailsBox").hide();
});
}
});
});
如果有人有任何替代方法来实现这一目标,我也愿意接受其他方法。 谢谢!
如果设置了 PPC cookie,然后用户通过 adroll 进入,看起来您要做的第一件事就是创建广告滚动 cookie - 然后您检查哪些 cookie 在那里(自然会发现两者都有)。
重写代码以在设置所需的 cookie 时删除不需要的 cookie 解决了这个问题:
$(document).ready(function(){
if ((window.location.href.indexOf("utm_source=adroll") > -1)){
var oneDay = 1000*60*60*24*1;
var adRollexpire = new Date((new Date()).valueOf() + oneDay);
document.cookie = "adroll=true;expires=" + adRollexpire.toUTCString();
document.cookie ='ppc=true; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
if (window.location.href.indexOf("source=bing") != -1 || window.location.href.indexOf("source=google") != -1){
var oneDay = 1000*60*60*24*1;
var ppcexpire = new Date((new Date()).valueOf() + oneDay);
document.cookie = "ppc=true;expires=" + ppcexpire.toUTCString();
document.cookie ='adroll=true; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
$(function(){
if (document.cookie.indexOf('adroll=true') >= 0){
$("#adRDetails").show();
$("#adRDetails").click(function() {
$("#adRollDetailsBox").show();
});
$(".close").click(function() {
$("#adRollDetailsBox").hide();
});
}
else if (document.cookie.indexOf('ppc=true') >= 0){
$("#ppcDetails").show();
$("#ppcDetails").click(function() {
$("#ppcDetailsBox").show();
});
$(".close").click(function() {
$("#ppcDetailsBox").hide();
});
}
else {
$("#gwp-banner").show();
$("#cuisinetowelDetails").click(function() {
$("#cuisinetoweldetailsBox").show();
});
$("#cuisinetowelclose").click(function() {
$("#cuisinetoweldetailsBox").hide();
});
}
});
});