10

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

对于PageView,我需要在页面加载时初始化像素。对于高级匹配,我需要为初始化脚本提供用户数据——但是,我只有在用户提交数据后才能使用用户数据,也就是LEAD应该发送事件的时间。

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

“像素高级匹配”帮助页面

要启用此功能,请修改默认 FB 像素代码以将数据传递到像素初始化调用。

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更改哈希不会。

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

更合适的问题是:如何在像素初始化后提交用户数据以进行高级匹配?而不是试图使初始化变得惰性/动态。

4

1 回答 1

2

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

// 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版本会更可取。此外,我还没有意识到可能的缺点,如果有的话。

于 2016-09-21T13:01:53.620 回答