跳转到主要内容

使用 JavaScript 追踪 Omnisend 表单活动

了解如何实施自定义 JavaScript 以跟踪与 Omnisend 表单的互动

作者:Ira

本指南解释了如何使用 JavaScript 事件监听器来响应访问者与 Omnisend 表单的交互。通过事件监听器,您可以:

⚠️ 重要提示:事件监听器适用于弹窗、浮出式和嵌入式表单。目前不支持在 Omnisend 落地页上使用


开始之前

  • Omnisend JavaScript 代码段必须已安装在您的网站上。否则,omnisendForms 事件将不会触发,您的监听器也永远不会执行。在 Shopify 和 WooCommerce 上,代码片段会自动添加。在任何其他平台上,请在结束标签之前手动添加它在您的表单出现的每个页面上的 标签。

  • 每个页面只需一个代码段。一个 Omnisend 脚本即可启用所有表单、跟踪和事件监听。如果您在同一页面上同时嵌入了表单和事件监听器,一个代码段即可覆盖两者。

  • 对于 Google Analytics 集成: 您的 GA4gtag 脚本必须在 Omnisend 事件监听器触发之前加载到页面上。如果gtag 在监听器运行时不存在,则 GA4 事件将不会发送。

表单事件

Omnisend 表单会在表单有活动时,在 window 对象上触发一个名为 omnisendForms 的事件。以下示例展示了事件负载

const event = new CustomEvent("omnisendForms", {
detail: {
eventName: 'submit',
brandID: 'F12345',
form: {
id: 'F12345',
name: 'F12345',
displayType: 'popup',
versionID: 'F12345',
versionName: 'F12345',
},
formValues: {
emailField: '[email protected]',
phoneNumberCountryCodeField: 'US',
phoneNumberField: '11111111',
firstName: 'Name',
lastName: 'LastName',
//... any other form value
}
}
});
window.dispatchEvent(event);

表单事件类型

事件对象中的 type 字段可以是以下七种不同事件中的任何一种:

  • view – 当一个弹窗、flyout 或嵌入式表单首次在页面上显示时触发。

  • interaction – 当用户与表单交互时(例如,选择一个输入字段)触发一次。

  • submit – 当访客完成主要转化操作时触发一次(例如,首次电子邮件(Email)或短信(SMS)订阅)。

  • close – 当访问者关闭表单时触发。

  • stepView – 当多步表单的某个步骤显示时触发;每个表单可以触发多次。

  • stepInteraction – 当用户与多步表单交互时,每个步骤触发一次。

  • stepSubmit – 当多步表单的某个步骤提交时触发;每个表单可以触发多次。

根据您的具体跟踪需求选择事件类型。对于一般表单分析,例如在 Google Analytics 中跟踪表单提交,请使用 submit – 它每个表单只触发一次。对于多步表单,还可以使用 stepSubmit 捕获步骤数据。

步骤事件

步骤事件仅在多步表单中触发。stepSubmit 事件在每次提交步骤时触发,并且对于同一表单可以触发多次。对于多步表单,submit 事件在所有步骤完成后,每个表单触发一次。

其他事件详情

除了事件类型,事件详情对象还包含:

  • brandID – 在 Omnisend 中唯一标识您的品牌的字母数字 ID。

  • step – 事件发生的步骤。仅适用于多步表单。

  • form – 与表单相关的数据,包括:

    • id – 唯一标识表单的字母数字 ID。

    • name – 表单的名称。

    • displayType – 表单显示类型(弹窗、浮出式或嵌入式)。

    • versionId – 唯一标识 A/B 表单版本的字母数字 ID。

    • versionName – A/B 表单版本的名称。

  • formValues – 所有表单字段及其提交的值,包括:emailField,firstName,lastName,phoneNumberCountryCodeField,phoneNumberField, 以及任何其他自定义表单字段。

在事件发生时执行自定义 JavaScript:事件监听器示例

以下是 Omnisend 表单事件的自定义事件监听器的标准格式。将 view 替换为上面“表单事件类型”部分中列出的任何事件类型,并将 // Custom JS 替换为事件触发时应运行的代码。

 <script>
window.addEventListener("omnisendForms", function(e) {
if (e.detail.type == 'view') {
// Custom JS
}
});
</script>

要在您自己的 JavaScript 代码中利用事件的时间戳,请使用 e.timeStamp

在何处添加此脚本:

  • Shopify:将代码粘贴到您的主题页脚或布局文件中(例如,theme.liquid),之前,在结束标签 标签,以便它加载在表单可能出现的每个页面上。

  • WordPress / WooCommerce:使用您页面编辑器中的 Custom HTML block 添加它,或者将其粘贴到您的主题页脚文件中,在

  • 纯 HTML: 将其粘贴到结束标签之前在表单出现的每个页面上的 标签。

在表单事件上实施 Google Analytics 跟踪

使用以下代码段将每个 Omnisend 表单事件类型作为 Google Analytics (GA4) 中的事件进行跟踪。

注意:您的 GA4gtag 初始化脚本必须在此代码段运行之前加载到页面上。如果gtag 在监听器触发时不存在,则 GA4 事件将不会被记录。

<script>
window.addEventListener("omnisendForms", function(e) {
if (e.detail.type == 'view') {
gtag('event', 'omnisend_form_view', { form_name: e.detail.form.name, form_id: e.detail.form.id });
}
if (e.detail.type == 'interaction') {
gtag('event', 'omnisend_form_interaction', { form_name: e.detail.form.name, form_id: e.detail.form.id });
}
if (e.detail.type == 'submit') {
gtag('event', 'omnisend_form_submit', { form_name: e.detail.form.name, form_id: e.detail.form.id });
}
if (e.detail.type == 'close') {
gtag('event', 'omnisend_form_close', { form_name: e.detail.form.name, form_id: e.detail.form.id });
}
if (e.detail.type == 'stepView') {
gtag('event', 'omnisend_form_step_view', { form_name: e.detail.form.name, form_id: e.detail.form.id });
}
if (e.detail.type == 'stepInteraction') {
gtag('event', 'omnisend_form_step_interaction', { form_name: e.detail.form.name, form_id: e.detail.form.id });
}
if (e.detail.type == 'stepSubmit') {
gtag('event', 'omnisend_form_step_submit', { form_name: e.detail.form.name, form_id: e.detail.form.id });
}
});
</script>

注意:事件名称在gtag('event', ...) 调用中 – 例如,omnisend_form_submit – 可以重命名为您希望在 Google Analytics(分析)中显示的任何内容,例如newsletter_signup 或popup_completed。该名称完全由您决定。

常见问题

您是否需要将事件监听器添加到您的 Shopify 主题中?

是的。将监听器代码粘贴到您的 Shopify 主题中全局加载的位置——例如,您的 theme.liquid 页脚——以便它在表单可能出现的每个页面上运行。将其放置在结束 标签之前。

是否需要安装 Omnisend 插件才能使其正常工作?

不一定。Omnisend 插件(在 Shopify 或 WooCommerce 上)会自动安装 Omnisend JS 代码片段。在任何其他平台,您需要手动添加代码段。代码段本身是必需的,而不是插件。

如何追踪访客在哪一步放弃了我的多步弹窗?

监听 close 事件并读取 e.detail.step2 的值表示访客在第 2 步时关闭了弹窗。将此作为自定义参数在您的 gtag 调用中发送,或在任何其他分析工具中记录。

我能否捕获访问者点击了哪个按钮(例如,“是”或“否”)?

omnisendForms 事件负载不包含按钮文本。要将按钮标签与您的跟踪事件关联,请在您的监听器代码中手动硬编码。

我是否需要多次添加 Omnisend 代码段以用于页面上的多个表单?

否 每个页面一个代码段就足够了,用于该页面上的所有表单、跟踪和事件监听器。


对此感到困惑? 在应用内联系我们的24/7支持团队或 email[email protected]

这是否解答了您的问题?