1

我试图根据多种因素在网站上提供不同的电话号码,使我们能够根据用户到达页面的方式来跟踪呼入电话。

  1. 通过检查“?provider =”查询字符串来检查用户是否来自广告,如果存在则提供广告号码
  2. 如果没有,请检查 userAgent 以向机器人提供“默认”号码
  3. 如果 userAgent 不是机器人,请检查推荐人并根据常见的 SERP 点击提供不同的跟踪号

该站点无法运行服务器端脚本,因此必须使用 javascript 来完成(我对此相当缺乏经验)。我拼凑了一些零碎的东西,但最终希望将所有内容组合在一起并在一个可以在页面加载时调用的单个 .js 文件中一起工作。

这是我到目前为止所拥有的:

<script type="text/javascript">
//Querystring to check if paid session or organic
     function providercheck() {
        var str= location.href;
            if (str.indexOf("?provider=") > -1) {
                document.write("paid phone number");
            }
            else {
                botcheck();
            }
    }

    //Check userAgent to serve organic number to bots
     function botcheck() { 
            if(navigator.userAgent.toLowerCase().indexOf("googlebot") <= -1) {
                    document.write("default phone number");
                }
            else {
                    refcheck();
                }
    }

    //Check for referrer and serve number based on last referrer
    function refcheck() {
        var last_referrer = document.referrer;
        if (last_referrer.indexOf("google") > -1) {
            document.write("google tracking number");
        }
        else if (last_referrer.indexOf("yahoo") > -1) {
            document.write("yahoo tracking number");
        }
        else {
            document.write("default number");
        }
    }
</script>

非常感谢任何帮助或指导。我还需要设置一个会话 cookie 以继续提供相同的号码,直到用户离开网站,但想先让它工作

4

1 回答 1

2

你可以尝试这样的事情:

将此跨度放在页面上的某个位置:

<span id="phoneNumber">Superdefaultnumber</span>

然后在文档头部的脚本标签中添加这段代码:

var setNumber = function(){
    var spanNode = document.getElementById("phoneNumber");
    if (!spanNode) {throw new Error("Unable to find span");}

    if (location.href.indexOf("?provider=") > -1) {
        spanNode.innerHTML = "paid phone number";
    }    

    //Check userAgent to serve organic number to bots
    if(navigator.userAgent.toLowerCase().indexOf("googlebot") <= -1) {
        spanNode.innerHTML = "default phone number";
    }

    //Check for referrer and serve number based on last referrer
    var last_referrer = document.referrer;
    if (last_referrer.indexOf("google") > -1) {
        spanNode.innerHTML = "google tracking number";
    }
    else if (last_referrer.indexOf("yahoo") > -1) {
        spanNode.innerHTML = "yahoo tracking number";
    }
    else {
        spanNode.innerHTML = "default number";
    }    
};


window.addEventListener("load", setNumber);
于 2011-01-25T00:58:19.160 回答