在Adobe CQ5中使用页面命中进行分段

时间:2016-02-10 22:55:27

标签: adobe cq5 aem

我正在尝试使用细分在CQ5中设置个性化内容。当我使用开箱即用的" Page Hits"选项它没有用。是否有一些额外的配置我必须要使用Page Hits?

我已经设置了两个应用于两个预告页面的细分。对于我使用过的第一个 页面点击次数小于4。 对于第二个,我使用的页面数量大于3。

请注意,当我使用引荐关键字进行测试时,我会认为其他配置是正确的。

有人可以就如何让Page Hits分段工作提出一些建议吗?

1 个答案:

答案 0 :(得分:0)

为了防止其他人遇到同样的问题,我通过使用会话存储解决了这个问题,并在用户浏览器上设置了一个cookie来记录他们访问特定页面的次数。使用它,我能够根据用户对该页面的访问次数来配置我的细分和个性化页面区域。

会话商店的代码:

//Create the session store

if (!CQ_Analytics.MyStore) {
    CQ_Analytics.MyStore = new CQ_Analytics.PersistedSessionStore();
    CQ_Analytics.MyStore.STOREKEY = "MYSTORE";
    CQ_Analytics.MyStore.STORENAME = "myclientstore";
    CQ_Analytics.MyStore.data={};

    CQ_Analytics.MyStore.findPageName = function(){
        var locationName = location.pathname;
        var n = location.pathname.indexOf("html");
        if(n !== -1){
            locationName = locationName.split('.')[0];
        }
        return locationName.split("/").slice(-1);
    }

    CQ_Analytics.MyStore.title = CQ_Analytics.MyStore.findPageName() + "-pageviews";

    CQ_Analytics.MyStore.loadData = function(pageViewed) {
        CQ_Analytics.MyStore.data = {"pageviewed":pageViewed};
    }

    CQ_Analytics.MyStore.getCookie = function(cname) {
        console.log("getting the cookie");
        var name = cname + "=";
        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);
            if (c.indexOf(name) == 0){
                console.log("return value for cookie is " + c.substring(name.length,c.length) );
                return c.substring(name.length,c.length);
            }
        }
        return "";
    }

    CQ_Analytics.MyStore.setCookie = function(cname, cvalue, exdays) {
        console.log("setting the cookie");
        var d = new Date();
        d.setTime(d.getTime() + (exdays*24*60*60*1000));
        var expires = "expires="+d.toUTCString();
        document.cookie = cname + "=" + cvalue + "; " + expires;
    }

     CQ_Analytics.MyStore.checkCookie = function() {
        console.log("checking for cookie");
        var pViewd = CQ_Analytics.MyStore.getCookie(CQ_Analytics.MyStore.title);

        if (pViewd != "") {
            console.log("cookie is found and Viewed is " + pViewd);
            pViewd = parseInt(pViewd) + 1;
            CQ_Analytics.MyStore.setCookie(CQ_Analytics.MyStore.title, pViewd, 365);
            CQ_Analytics.MyStore.loadData(pViewd.toString());

        } else {
            if (pViewd === "" || pViewd === null) {
                console.log("cookie not found");
                CQ_Analytics.MyStore.setCookie(CQ_Analytics.MyStore.title, "1", 365);
                CQ_Analytics.MyStore.loadData("1");
            }
        }
    }

     CQ_Analytics.MyStore.checkCookie();

}
//register the session store
if (CQ_Analytics.CCM){

    CQ_Analytics.CCM.register(CQ_Analytics.MyStore)
}

我找到的最有用的文档是:https://docs.adobe.com/docs/en/cq/5-6-1/developing/client_context_detail.html#par_title_34