Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 启动Facebook转换像素_Javascript_Facebook_Google Analytics_Analytics - Fatal编程技术网

Javascript 启动Facebook转换像素

Javascript 启动Facebook转换像素,javascript,facebook,google-analytics,analytics,Javascript,Facebook,Google Analytics,Analytics,我对Javascript还是相当陌生,但我想知道在不加载“确认”/“谢谢”页面的情况下,启动Facebook转换像素(如下)的最佳方式是什么 var fb_param={}; fb_param.pixel_id='xxxxxxxxxx'; fb_参数值='0.00'; fb_参数货币=‘美元’; (功能(){ var fpw=document.createElement('script'); fpw.async=true; fpw.src='//connect.facebook.net/en_

我对Javascript还是相当陌生,但我想知道在不加载“确认”/“谢谢”页面的情况下,启动Facebook转换像素(如下)的最佳方式是什么


var fb_param={};
fb_param.pixel_id='xxxxxxxxxx';
fb_参数值='0.00';
fb_参数货币=‘美元’;
(功能(){
var fpw=document.createElement('script');
fpw.async=true;
fpw.src='//connect.facebook.net/en_US/fp.js';
var ref=document.getElementsByTagName('script')[0];
ref.parentNode.insertBefore(fpw,ref);
})();
Facebook说,我们应该把它插入到我们的“感谢页面”中,访问者在转换(填写表格、购买等)后会看到这些页面。然而,我们的一些表单是弹出式窗口或侧边栏上的表单,位于内容旁边,我们不希望读者被确认页面引导离开

通过谷歌分析,我可以通过启动“gaq.push”([''u trackPageview'),创建一个“不可见”的页面视图;这段代码可以告诉GA应该将不可见的页面视图计算为目标完成


是否有类似的东西足以让我的网站触发FB像素?

编辑:我已经更新了我的代码,因为我之前提到的不起作用。感谢@Flambino指出

这是我修改后的答案,使用像素而不是脚本来传递转换像素。我引用SO帖子:


函数facebookConversionPixel(fb_像素,fb_值){
var图像=新图像(1,1);
image.src=“//www.facebook.com/offsite_event.php?id=“+fb_pixel+”&;value=“+fb_value+”&;currency=USD”;
}

只需将整个原始代码移动到您选择的事件中即可。然后只需更改代码的1部分。您必须做的事情是将fb_参数设置为全局而不是本地

见下面的评论

$('.button').click(function() {
    window.fb_param = {}; // must be global by adding `window.`
    fb_param.pixel_id = '123456789';
    fb_param.value = '0.00';
    fb_param.currency = 'USD';
    (function(){
        var fpw = document.createElement('script'); fpw.async = true; fpw.src = '//connect.facebook.net/en_US/fp.js';
        var ref = document.getElementsByTagName('script')[0];
        ref.parentNode.insertBefore(fpw, ref);
    })();
});
从FB文档中:

安装基本代码段后,您可以通过在HTML DOM元素上注册不同的事件处理程序来对转换像素进行_fbq.push('track')调用,从而跟踪页面内的操作,例如单击按钮。例如:

function trackConversionEvent(val, cny) {
  var cd = {};
  cd.value = val;
  cd.currency = cny;
  _fbq.push(['track', '<pixel_id>', cd]);
}
<button onClick="trackConversionEvent('10.00','USD');" />
_fbq.push(['track','<pixel_id1>',{'value':'10.00','currency':'USD'}]);
_fbq.push(['track','<pixel_id2>']);
function trackConversionEvent(val, cny) {
  var cd = {};
  cd.value = val;
  cd.currency = cny;
 _fbq.push(['track', '<pixel_id>', cd]);
 }
 <button onClick="trackConversionEvent('10.00','USD');" />
函数trackConversionEvent(val,cny){
var cd={};
cd.value=val;
cd.货币=人民币;
_fbq.push(['track','',cd]);
}

我遇到了类似的问题,我想运行多个添加跟踪像素代码,但由于某些原因我无法跟踪。我所做的是,在当前页面中,我在页脚和javascript函数中添加了像素代码 当我的ajax按钮被提交时调用

首先请参阅Facebook文档页面

如何跟踪多个转换事件

安装基本代码段后,可以通过对每个转换像素ID进行多个_fbq.push('track')调用来跟踪同一网页中的多个转换。例如:

function trackConversionEvent(val, cny) {
  var cd = {};
  cd.value = val;
  cd.currency = cny;
  _fbq.push(['track', '<pixel_id>', cd]);
}
<button onClick="trackConversionEvent('10.00','USD');" />
_fbq.push(['track','<pixel_id1>',{'value':'10.00','currency':'USD'}]);
_fbq.push(['track','<pixel_id2>']);
function trackConversionEvent(val, cny) {
  var cd = {};
  cd.value = val;
  cd.currency = cny;
 _fbq.push(['track', '<pixel_id>', cd]);
 }
 <button onClick="trackConversionEvent('10.00','USD');" />

Facebook已经更新了他们的像素,所以我创建了自己的自定义函数来调用,该函数将动态地将参数放在一起提交给Facebook

第一步。在每一页上,确保页面的标题中有元素

第二步。添加我创建的这个自定义函数(因为它是初稿,所以有点冗长,所以我相信有一些方法可以为您的利益进行优化)

第三步。使用适当的参数调用该函数

对于购买后的“谢谢”弹出窗口,如果用户购买了1个项目而不是多个项目,则像素的激发方式会有所不同。基本上,Facebook只接受一个产品的产品名称和类别参数,但不接受多个产品的参数

对于以下示例,以下是用户购买1件物品的一些示例产品数据:

triggerFacebookPixel('CompleteRegistration', 0, 'Signed Up', 'Newsletter');
  • 产品名称:“我的超级棒T恤”
  • 产品编号:182
  • 产品类别:“服装>衬衫>T恤”
  • 用户支付的总金额(包括运费/装卸费和税费):10.84美元
下面是您在确认时调用的函数:

triggerFacebookPixel('Purchase', 10.84, 182, 'My Super Awesome T-Shirt', 'Clothing > Shirts > T-Shirts', 1);
当用户购买多个项目时,像素会以不同方式处理,不包括产品名称和类别,只发送其ID。让我们假设我们的用户购买了这两个项目:

  • 产品编号:182和164(衬衫和其他东西)
  • 用户支付的总金额(包括运费/装卸费和税费):24.75美元
以下是您使用该功能的方式:

triggerFacebookPixel('Purchase', 24.75, [182, 164], '', '', 2);
对于其他相关产品,您可以对“ViewContent”、“AddToCart”、“AddToWishlist”、“InitiateCheckout”和“AddPaymentInfo”使用相同的功能。只需将“购买”更改为通话中的任何关键词

其他活动不一定与产品相关:“Lead”、“Search”和“Complete Registration”。您仍然可以对这些关键字使用此函数

示例:用户搜索“蓝色衬衫”:

如果要在用户搜索功能中传递产品类别,可以在末尾将其作为字符串传递。我想不出一个用例场景,在这个场景中,您可以知道用户正在搜索什么类别。除非您在产品出现在搜索结果中并且用户从搜索页面单击产品时使用此选项。这可能就是这个函数的实际用途,但文档对此并不十分清楚。如果您是这样,那么只需将0和空数组更改为从搜索结果页面单击的产品的实际值(分别为价格和产品ID),并将其类别作为字符串添加为搜索字符串后的最后一个参数

示例:用户提交了一份表格,将他们注册到您的新闻稿中

triggerFacebookPixel('CompleteRegistration', 0, 'Signed Up', 'Newsletter');
Facebook的文档说明,在填写注册表格时应使用“CompleteRegistration”,例如,完成服务的订阅/注册。“已注册”字符串是“状态”参数,“通讯”字符串是
triggerFacebookPixel('Purchase', 24.75, [182, 164], '', '', 2);
triggerFacebookPixel('Search', 0, [], 'blue shirts');
triggerFacebookPixel('CompleteRegistration', 0, 'Signed Up', 'Newsletter');
triggerFacebookPixel('Lead', 0, 'Free 30-Day Trial Service', 'My Services > Free Trials');