如何使用函数参数在 facebook 转换中定义自定义事件 API

How can I use a function parameter to define a customEvent in facebook conversion API

我想在 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 语句中重复代码,如何动态定义自定义事件名称?

根据 documentation 自定义事件名称:

Custom event names must be strings, and cannot exceed 50 characters in length.

好吧,既然你已经尝试将它转换成字符串,我会说它也有一个 最小 字符长度(应该大于一或两个)。 .尝试这样的事情:

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