2013-06-13 2 views
1

У меня есть сайт Enterprise Trading. Я включил код Google analytic's в каждый jsp моего сайта. Теперь проблема в том, что на моем сайте некоторые страницы включены в другие страницы, не использующие фреймы, только путем вызова ajax и изменения содержимого div. В результате, когда новая страница загружается на той же странице, которую не будет вызывать Google Analytics, поскольку вся страница не загружается, и браузер учитывает только загрузку страницы для загрузки js, а не смены кадров. Может ли один предложить решение этойКод аналитики Google неоднократно просматривается на странице

ответ

1

Простейший решение использовать глобальную переменную, например:

if (! window.googleAnalytics) { 
    window.googleAnalytics = true; 
    // ga code here ... 
} 

Лучше альтернативный способ:

Когда я добавить Google Analytics на сайте, я написал небольшой JS файл, под названием Google-analytics.js, здесь содержание:

function GoogleAnalytics(accountId, productionServerUrl) { 
    var _gaq = window._gaq = window._gaq || []; 

    if (window.googleAnalytics) { 
     throw new Error("GoogleAnalytics tools already created!"); 
    } 
    window.googleAnalytics = this; 

    this.accountId = accountId; 
    this.dummy = (window.location.hostname != productionServerUrl); 

    // Work's only on production server and ignore sandboxes 
    if (this.dummy) { 
     return ; 
    } 

    _gaq.push(['_setAccount', this.accountId]); 
    _gaq.push(['_trackPageview']); 

    (function() { 
     var ga = document.createElement('script'); 
     ga.type = 'text/javascript'; ga.async = true; 
     ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
     ga.onload = function() { 
      //console.log("GA Loaded !!!!", this, arguments); 
      window.googleAnalytics.getTracker(); 
     }; 
     var s = document.getElementsByTagName('script')[0]; 
     s.parentNode.insertBefore(ga, s); 
    })(); 
} 

GoogleAnalytics.prototype.getTracker = function() { 
    if (this.dummy) { 
     return null; 
    } 
    if (undefined == this.pageTracker) { 
     if (window._gat == undefined) { 
      console.error("! Google Analytics script is not loaded !"); 
      return null; 
     } 
     this.pageTracker = window._gat._getTracker(this.accountId); 
    } 
    return this.pageTracker; 
} 

GoogleAnalytics.prototype.track = function() { 
    if (this.dummy) { 
     console.log(" >> GoogleAnalytics.track()", window.location.href, this, arguments); 
    } 
    if (this.dummy) { 
     return ; 
    } 
    var tracker = this.getTracker(); 
    if (null == tracker) { 
     return; 
    } 
    tracker._trackPageview(); 
} 

if (undefined == window.googleAnalytics) { 
    window.googleAnalytics = new GoogleAnalytics('UA-XXXXXXXX-X', 'yoursite.ru'); 
} 

Этот сценарий должен быть загружен после jquery.js загружены. Вставьте, ваш GA-ID и URL-адрес сайта в аргументы конструктора. Вы можете вызвать window.googleAnalytics.track() после загрузки и URL-адреса страницы AJAX. Удачи!

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