0

我有一个要求,如果客户通过广告进入我们的网站,我需要显示不同的内容,基于他们点击的最后一个广告。如果他们点击广告 A,我们想要显示横幅 A,并设置一个 cookie,这样横幅将在他们点击后显示 24 小时。但是,如果他们在那 24 小时内点击广告 B,我们希望在 24 小时内向他们展示横幅 B,而不是横幅 A。然后如果他们再次点击广告 A,则显示横幅 A。如果他们没有点击任何广告,我们想向他们展示横幅 C。

我实现这一点的方法是根据他们点击的广告设置一个 cookie,如果他们在该 cookie 存在时点击 OTHER 广告,则删除第一个 cookie 并为广告创建相应的 cookie。希望到目前为止这是有道理的。

我编写了一个函数来查找这些 cookie 并显示相应的内容,但只有第一个有效。正在为两种广告场景设置 cookie,但如果存在 PPC cookie,则不会删除 adroll cookie。如果存在 adroll,则删除 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();
            });
        }

    });
});

如果有人有任何替代方法来实现这一目标,我也愿意接受其他方法。谢谢!

4

2 回答 2

0

设置所需的 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();
        });     
        }   
});
        });
于 2013-10-22T15:29:10.580 回答
0

如果设置了 PPC cookie,然后用户通过 adroll 进入,看起来你做的第一件事就是创建 adroll cookie - 然后你检查哪些 cookie 在那里(自然会发现两者都存在)。

于 2013-10-22T13:28:21.023 回答