2011-01-24 3 views
1

Я пытаюсь обслуживать разные номера телефонов на сайте, основываясь на ряде факторов, позволяя отслеживать входящие телефонные звонки в зависимости от того, как пользователи пришли на страницу.Показать номера разных телефонов на основе referrer, useragent

  1. Проверьте, чтобы увидеть, если пользователь приходит от рекламы, проверяя «? Поставщик =» строка запроса, служит рекламный номер, если присутствует
  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> 

Любая помощь или руководство очень ценится. Также нужно установить кук сессии, чтобы продолжать служить тот же номер, пока пользователь не покинет сайт, но хотел бы получить эту работу первого

+1

Вы должны делать-й находится на сервере. – SLaks

+0

Я бы хотел, но не только у меня нет доступа к серверу, у меня нет возможности запуска php-скриптов или тому подобного. – Sean

+0

@Sean изменить сервер, нет? Любое решение на стороне клиента будет подвержено ошибкам, а также вы можете вывести все свои номера с помощью кода. Вам действительно нужно это *? –

ответ

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); 
+0

Большое спасибо за тщательный ответ. Это выглядит великолепно, проверит его. – Sean

Смежные вопросы