如何使用初始化后填充的数据初始化Facebook Pixel?

时间:2016-09-21 08:09:32

标签: javascript facebook conversion-tracking

我有一个单页广告系列网站,应该通过“高级匹配”收集Facebook定位的PageViewLEAD个事件数据。

对于PageView,我需要在页面加载时初始化Pixel。对于高级匹配,我需要为初始化脚本提供用户数据 - 但是,在用户提交数据后,我只有用户数据可用,即应该发送LEAD事件。

是否可以为初始化脚本提供发送LEAD事件时使用的javascript变量的“指针”?帮助页面提示,但所有示例都有例如电子邮件参数以纯文本或sha256哈希的形式提供;不是JS变量,也不是文本指针。

来自"Advanced Matching with the Pixel" help page

  

要启用此功能,请修改默认FB像素代码以传递数据   进入像素init调用。

fbq('init', '<FB_PIXEL_ID>', { 
    em: '{{_email_}}', 
    // Data will be hashed automatically via a dedicated function in FB pixel
    ph: '{{_phone_number_}}',
    fn: '{{_first_name_}}'
    ....
})
     

在上面的示例中,您需要替换email,phone_number,   first_name,包含您网站上的变量名称   捕获这些数据。

假设我的user_email变量与fbq-init的范围相同:

var user_email = '';

稍后,在提交表单后,此变量将填充为

user_email = "john@example.com";

我应该如何在fbq中引用该变量? (1)喜欢这个?

fbq('init', 123456, { em: '{{_user_email_}}' });

(2)或者像这样?

fbq('init', 123456, { em: 'user_email' });

(3)或者我应该只使用变量:

来提供它
fbq('init', 123456, { em: user_email }); // nb: user_email === false when this is run

(4)或者我应该在没有任何匹配数据的情况下初始化像素,然后再丰富它? (如何?)

一家信誉良好的广告代理商向我发送了提交变量名称的说明,如我的示例2所示,但帮助页面提示为1而未实际提供任何真实示例。

我尝试了所有选项1-3,似乎变量在初始化后的后续fbq('track', …);调用中不会被重新评估。如果user_email以空白开头,则所有事件都不会包含散列用户数据。

此外,即使我从有效的电子邮件user_email = "john@example.com";开始(也尝试过真实域名而不是example.com),方法3也可以使用 - 但是,正如预期的那样,这不是动态的,即。如果user_email更改,则哈希值不会。

就好像没有字符串变量替换一样。

更合适的问题是:如何在像素初始化之后提交高级匹配的用户数据?而不是尝试使初始化延迟/动态。< / p>

1 个答案:

答案 0 :(得分:1)

作为解决方法,可以通过javascript加载像素(图片)来生成包含电子邮件用户数据的Lead事件:

// here the user email is unknown, so PageView is generated without email
fbq('init', 123456, {});
fbq('track', 'PageView');

// Later the form is submitted via ajax, so the user email is known
$.ajax(…).done(function(data) {
    // I decided to sha256 hash the email address in the backend and return it for the javascript handler
    var pixel = document.createElement('img');
    pixel.src = 'https://www.facebook.com/tr/?id=123456&ev=Lead&ud[em]=' + data;
    document.body.appendChild(pixel);
    // confirmed by the Pixel helper Chrome extension, this does generate a valid tracking event
    // (ironically, we're loading the noscript version via javascript)
});

当然,纯粹的fbq版本会更合适。此外,我还没有意识到可能的缺点,如果有的话。