1

我有一个 https 网站,上面有一个类似 facebook 的按钮。我已经在跟踪事件并将它们集成到谷歌分析中。一旦有人单击“赞”按钮并将帖子发布到 Facebook,我也希望能够添加重定向。我的 facebook 按钮设置如下:

<html xmlns:fb="http://www.facebook.com/2008/fbml">

<div id="fb-root"></div>
<script src="https://connect.facebook.net/en_US/all.js#xfbml=1" type="text/javascript"></script>

facebooklike按钮代码如下:

<fb:like style="float: left; margin: 1px 10px 0 0;" href="<?php echo $share_url;?>" send="false" layout="box_count" width="65" show_faces="false" font="verdana"></fb:like>
<script type="text/javascript">
FB.Event.subscribe('edge.create', function(href, widget) {
_gaq.push(['_trackSocial', 'Facebook', 'Like', href]);
_gaq.push(['_trackEvent', 'Social Shares', 'Facebook Like', href]);});
FB.Event.subscribe('edge.remove', function(href, widget) { _gaq.push(['_trackSocial', 'Facebook', 'Unike', href]); });
</script>`

无论如何我可以添加一个重定向并仍然能够使用谷歌分析跟踪点击?

4

2 回答 2

1

只需在订阅回调中的 GA 代码后添加 window.location = 'URL YOU WANT' 即可。

例子:

FB.Event.subscribe('edge.create', function(href, widget) {
   _gaq.push(['_trackSocial', 'Facebook', 'Like', href]);
   _gaq.push(['_trackEvent', 'Social Shares', 'Facebook Like', href]);
   window.location = 'URL HERE';
});

很抱歉,我认为回调是在完成之后。


更复杂但有效的解决方案:

常规的“喜欢”按钮不具有当人在对话框中实际完成时的回调函数。幸运的是,您可以使用FB.ui创建自定义对话框。您必须为您的域创建一个 FB 应用程序。

我修改并测试了他们的示例代码以使用重定向而不是警报框。

<div id='fb-root'></div>

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<script src='http://connect.facebook.net/en_US/all.js'></script>

<a id="link" href="#">Post to Feed</a>

<script>
FB.init({appId: "000000000000000", status: true, cookie: true}); //You'll need to insert your appId.

$('#link').click(function(){
    FB.ui(
    {
        method: 'feed',
        name: 'Facebook Dialogs',
        link: 'https://developers.facebook.com/docs/reference/dialogs/',
        picture: 'http://fbrell.com/f8.jpg',
        caption: 'Reference Documentation',
        description: 'Dialogs provide a simple, consistent interface for applications to interface with users.'
    },
    function(response) {
        if (response && response.post_id) {
          window.location = "http://www.google.com"
      } else {
          // Do something else here if they do not post.
      }
    });
    return false;
});
</script>
于 2013-04-14T04:30:29.520 回答
0

好吧,经过一段时间的努力,我感到非常沮丧,我能够得到一个有效的解决方案。我最终创建了自己的应用程序并使用了直接 url 提要对话框方法

https://developers.facebook.com/docs/reference/dialogs/feed/

创建一个对话应用程序并添加了一个用于 GA 跟踪和重定向的 onClick 事件。最后我的 facebook 按钮链接看起来像

<a href="https://www.facebook.com/dialog/feed?app_id=000000000000000<?php echo "&link=".urlencode($share_url)."&picture=".urlencode($image)."&name=".urlencode($title)."&caption=&description=".urlencode($description)."&redirect_uri=".urlencode("$redirect").""?>" style="float: left; margin: 66px 10px 0 0;" onclick="trackPost(); window.location(this.href); return false;">Post This</a>

不完全是我最初的计划,这不是使用“喜欢”,而是使用“帖子”或“分享”。但是,它确实很好用。我要感谢 Marcelo 为我指明了正确的方向。

于 2013-04-14T19:24:05.070 回答