Ruby on rails 类似Facebook的按钮返回错误的查询参数
嗨,伙计们,我已经搜索了所有的问题,但还没有找到答案。我已经走到了死胡同,我的公司分析团队开始担心他们收集的跟踪数据 我们目前使用SiteCatalyst活动代码来跟踪和收集网站上的数据。有一个非常小的查询参数,随机放置在整个网站的链接上 例如:Ruby on rails 类似Facebook的按钮返回错误的查询参数,ruby-on-rails,facebook,Ruby On Rails,Facebook,嗨,伙计们,我已经搜索了所有的问题,但还没有找到答案。我已经走到了死胡同,我的公司分析团队开始担心他们收集的跟踪数据 我们目前使用SiteCatalyst活动代码来跟踪和收集网站上的数据。有一个非常小的查询参数,随机放置在整个网站的链接上 例如:?cmp=23-42 查询被正确地附加到“共享”按钮上,从中我可以看出,表单提交时正在传递查询。通过检查页面上的iframe,我在一个隐藏的表单字段中看到以下值 <input type="hidden" autocomplete="off" nam
?cmp=23-42
查询被正确地附加到“共享”按钮上,从中我可以看出,表单提交时正在传递查询。通过检查页面上的iframe,我在一个隐藏的表单字段中看到以下值
<input type="hidden" autocomplete="off" name="href" value="http://my-site.com/some-post-or-article-name?cmp=23-42">
在我发布喜欢的内容和任何我想要的评论之后,我打开facebook,点击我刚刚发布的链接。我的唯一跟踪查询被facebook查询参数替换
http://my-site.com/some-post-or-article-name?fb_action_ids=4184...&fb_action_types=og.likes&fb_source=aggregation&fb_aggregation_id=2883...
这发生在我们列出的每一篇文章和事件中,目前在60k范围内,这就是我的问题所在。所以我的问题是
facebook文档中是否有我没有提到的东西,比如在我的fbml标签中添加一个类似于query=“cmp=23-42&more\u stuff=more custom stuff”
?这样,当添加我的唯一查询参数时,可以自动附加到facebook查询参数的末尾
有没有人遇到过这个问题,你是如何解决的
如果我不能使用自定义跟踪,是否有任何创造性但非黑客的方法将返回的fb_action_id或fb_aggregation_id与自定义活动代码关联
有解决办法吗
我可以分享更多关于我们网络应用的信息。
平台:RoR(我愿意使用解决此问题的gem,如果有可用的话)使用
ref
选项,用户可以将自定义数据附加到fb\u ref
参数中返回的查询字符串中
在这里找到
不幸的是,这并不是很有帮助,因为处理数据报告的脚本会通过onload方法自动在url中查找活动代码。下面是我为从fb_ref
param中提取值而编写的一些有用的js。可根据需要自由填写以修改此内容
facebookCustomQueryString: function(){
if( window.location.href.indexOf( 'fb_ref=' ) == -1 ) return;
var location = window.location.href,
params = location.split('?').pop().split('&'),
refCode, iframe, container;
for(var i=0, m=params.length; i<m; i++){
if( params[i].indexOf('fb_ref') > -1 ){
var ref = params[i];
refCode = ref.replace('fb_ref=','');
break;
}
}
}
remove: function(ui){
ui.parentNode.innerHTML = '';
ui.remove(ui.selectedIndex);
}
最后,我的删除方法。。再次免费填写,以便根据需要进行修改
facebookCustomQueryString: function(){
if( window.location.href.indexOf( 'fb_ref=' ) == -1 ) return;
var location = window.location.href,
params = location.split('?').pop().split('&'),
refCode, iframe, container;
for(var i=0, m=params.length; i<m; i++){
if( params[i].indexOf('fb_ref') > -1 ){
var ref = params[i];
refCode = ref.replace('fb_ref=','');
break;
}
}
}
remove: function(ui){
ui.parentNode.innerHTML = '';
ui.remove(ui.selectedIndex);
}
对于IE浏览器,您可能需要稍微修改remove方法。我还没有测试过,但你可以试试
remove: function(ui){
ui.parentElement.removeChild(ui);
// or
var parent = ui.parentElement;
parent.removeNode(true);
}
我希望这对我这种情况下的任何人都有帮助…可能的Are服务器重复是nginx和phusion,而不是apache,我们无法访问mod_rewrite