如何在点击时实现Facebook转换跟踪,或者当没有单独的时候“谢谢你”#39;页

时间:2013-03-21 12:53:41

标签: javascript ajax facebook onclick tracking

尝试在Facebook标签中实施Facebook转化跟踪。您可以在此处查看页面http://www.facebook.com/StChristophersFellowship/app_366591783429546问题是在提交表单后未运行单独的页面。我可以制作一段javascript运行,但只需点击提交按钮,我认为它也被注入到HTML文档的头部。 我找到了从链接运行Javascript或点击的答案 - 如果我从单独的JS文档中调用跟踪/转换代码,这种方法会起作用吗?

非常感谢任何帮助 - 谢谢!

“我必须同意上面的评论,你不能调用文件,但你可以加载这样的JS文件,我不确定它是否回答你的问题,但它可能有帮助......哦,我在我的例子中使用了一个链接而不是一个按钮......

<a href='linkhref.html' id='mylink'>click me</a>

<script type="text/javascript">

var myLink = document.getElementById('mylink');

myLink.onclick = function(){

var script = document.createElement("script");
script.type = "text/javascript";
script.src = "Public/Scripts/filename.js."; 
document.getElementsByTagName("head")[0].appendChild(script);
return false;

}


</script>"

2 个答案:

答案 0 :(得分:17)

我尝试使用Nicolás解决方案,但转换从未经过验证。

但是,我发现an article使用<noscript><img src="..." /></noscript>中的网址描述了一种即时发挥作用的技术。

在页面上放置一个元素,如:

<div id="fb_pixel"></div>

然后为您的转化声明这些CSS规则,更改您自己的跟踪代码中找到的background-image网址的<noscript>

#fb_pixel { display:none; }
.fb_conversion
{
    background-image: url('https://www.facebook.com/offsite_event.php?id=33333333333&value=0&currency=USD');
}

如果您希望进行跟踪(例如,在提交AJAX表单时),则使用JavaScript将fb_conversion类添加到<div>。例如,使用jQuery:

$("#fb_pixel").addClass("fb_conversion");

这将使浏览器加载图片,从而跟踪您的转化。

答案 1 :(得分:2)

我有一个类似的问题,我解决了它将AJAX调用放在了追加回调上。如下:

$(function () {
    $('#btnSend').click(facebookTrackingSendClick);
});

function facebookTrackingSendClick(e) {
    e.preventDefault();
    var clickedElement = this;
    var fb_param = {};
    fb_param.pixel_id = '123';
    fb_param.value = '0.00';
    fb_param.currency = 'BRL';
    (function () {
        var fpw = document.createElement('script');
        fpw.async = true;
        fpw.src = '//connect.facebook.net/en_US/fp.js';
        fpw.onload = function () {
            // Callback here.
        };
        var ref = document.getElementsByTagName('script')[0];
        ref.parentNode.insertBefore(fpw, ref);
    })();
}