如何在我的网页被喜欢后添加重定向?

时间:2013-04-14 04:20:47

标签: redirect facebook-like response.redirect

我有一个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>

facebook的按键代码如下:

<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>`

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

2 个答案:

答案 0 :(得分:1)

只需在订阅回调中的GA代码后添加window.location ='您想要的网址'。

示例:

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>

答案 1 :(得分:0)

好了一段时间之后掏出一段时间而且非常沮丧,我能够得到一个有效的解决方案。我最终创建了自己的应用程序并使用直接网址提要对话框方法

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>

不完全是我原先计划的,这不是使用“喜欢”,而是使用“帖子”或“分享”。但是,它确实很好用。我要感谢马塞洛指出我正确的方向。