2

我只是好奇是否可以(或建议)在与 Google Analytics 的跨域链接上使用 _linkbypost() 而不是仅使用 _link() 以避免我遇到的问题 _link() 产生的长查询字符串。

_link() 使用 _GET 通过将一个巨大的乱码查询字符串附加到目标 url 来传递数据,这让我有些头疼:它阻止了我的缓存方案(它关闭了完全匹配的 url),使我的许多社交媒体小部件变得疯狂(这已被证明对我的业务非常重要),并且看起来很可怕和丑陋,我发现这确实会影响有多少用户信任您的网站。

因此,我希望通过 post 而不是 get 传递数据,我可以在不丢失干净有序的可缓存 url 的情况下获得相同的跟踪能力。但是由于我不太了解 post 是如何工作的,所以我不知道这是否可行,或者由于其他原因这只是一个非常糟糕的主意。

我知道 _linkbypost() 需要一个表单对象才能运行,所以我的计划是为每个跨域链接添加一个 onSubmit 函数,如下所示:

var crossLink = $(this).attr("href"); 
var formHTML = '<form id="crossForm" action="'+crossLink+'" method="post"></form>';
$('body').append(formHTML);
var crossForm = $('#crossForm');
_gaq.push(['_linkByPost', crossForm]);
return false;

假设一开始这不是一个坏主意,那么这种实现是否合理?

4

1 回答 1

1

我很确定 _linkByPost 仍会通过您的网址发送数据。所以我认为这不能解决你的问题。

您可以使用 _link 在 url 的锚点(而不是作为查询参数)部分传递查询参数,使用它的第二个参数为 true。

_gaq.push(['_link', 'http://www.myothersite.com', true]);

这将生成一个像

http://www.myothersite.com#__utma=1.2.123123...

您还需要_gaq.push(['_setAllowAnchor', true]);告诉 GA 从 Anchor 读取数据。

不再破坏您的缓存并减少社交插件的问题就足够了。

于 2013-10-03T08:39:33.240 回答