如何在facebook转换API中使用函数参数定义customEvent



我想在Facebook事件管理器中记录询问用户退出的事件。Gravity Forms提供以下功能;当用户转到表单上的下一个问题时,它会运行您的代码块。

jQuery(document).on('gform_page_loaded', function (event, form_id, current_page) {
// my code here
});

Facebook建议使用以下片段在事件管理器中记录自定义事件。

fbq('trackCustom', 'ShareDiscount', {promotion: 'share_discount_10%'});
// ShareDiscount is the custom event name

我需要使用Gravity Forms函数中的current_page参数值定义事件名称。当我console.log(current_page)时,我在控制台中看到期望的值。然而,当我尝试使用Facebook fbq代码中的参数时,Facebook无法识别该事件。示例:

// NOT WORKING - facebook doesn't record the event
jQuery(document).on(
'gform_page_loaded',
function (event, form_id, current_page) {
console.log(current_page); // console logs current_page as expected
return fbq('trackCustom', `${current_page}`, {
futureUse: 'to_be_defined_later',
});
}
);

当我只使用静态字符串时,Facebook会按预期记录事件。但我需要使用当前页面值,以便使用current_page参数动态定义事件名称。

// WORKING - facebook records the static string as an event
jQuery(document).on(
'gform_page_loaded',
function (event, form_id, current_page) {
return fbq('trackCustom', 'Static Event Name', {
futureUse: 'to_be_defined_later',
});
}
);

我尝试过current_page.toString()方法,但运气不好。在不复制许多if语句中的代码的情况下,如何动态定义自定义事件名称?

根据自定义事件名称的文档:

自定义事件名称必须是字符串,长度不能超过50个字符。

好吧,既然你已经尝试过将其转换为字符串,我想说它还有一个最小字符长度(应该大于一两个(。。。试试这样的东西:

function (event, form_id, current_page) {
return fbq('trackCustom', 'MyEventName-' + current_page, {
futureUse: 'to_be_defined_later',
});
}

最新更新