2014-03-28 127 views
2

我有'google-analytics-rails'gem,它很棒,但我也想跟踪pdf的下载。我发现这个描述使用一个点击通话这个link,但我不知道如何最好的整合rails的link_to方法。分析和跟踪下载

<%= link_to 'Link Name', url_path(@url) %> 

回答

1

当我这样做,为客户定制的实现,我采取同样的做法@安德烈的回答,但我让更广泛的,以针对所有相关链接。

实际的代码看起来像什么取决于你的下载链接的实际样子,以及你想要在报告中看到什么,但这里是一个针对某些下载链接和报告文件位置的示例(href属性)

$(document).ready(function() { 
    $('body').on('click','a',function(event) { 
    /* download tracking */ 
     // add whatever download file extensions are relevant to you 
     var exts = ['pdf','doc','xls','xlsx']; 
     var p = new RegExp('\\.('+exts.join('|')+')$','i'); 
     var href = String(event.target.href)||''; 
     if (href.match(p)) { 
     _gaq.push(['_trackEvent', 'Link Clicks', 'Download', href]) 
     }  
    }); 
}); 

伟大的事情是,因为这段代码的目标是所有的链接,你可以扩展它以跟踪其他类型的链接。您可能要跟踪其他一些链接类型是点击次数:

  • 导致一些其他的域(退出链接跟踪)
  • 导致你拥有的另一网站(跨网域跟踪)
  • 导致社交媒体网站(如Facebook,微博)
  • 调用社交媒体的动作(例如Facebook的喜欢/股)
  • 链接到您网站上的促销活动(内部运动跟踪)
  • 链接,调用特定的部件或​​相互作用对贵驷te(订婚追踪)
1

好,没有测试过这一点,但它应该指向你在正确的方向......在轨使用非侵入式JavaScript(不像在链接中使用的内嵌JavaScript)。所以你把你的js文件(可以说my_ga.js)添加到app\assets\javascripts目录中。 application.js文件将导致它自动包含在内。在my_ga.js文件中,您可以使用jquery来定位链接。喜欢的东西: 您的链接: <%= link_to 'Link Name', url_path(@url), id: 'pdf1' %> 你my_ga.js文件:

$(document).ready(function() { $('#pdf1').click(function() { ga('send', 'event', 'download', 'click', ‘Descriptive text here'); }); });