digitalpulsebe / craft-utm-tracker
追踪用户会话中的着陆查询参数
Requires
- craftcms/cms: ^5.0.0-alpha.1
Requires (Dev)
- verbb/formie: ^3.0.0-beta.2
This package is auto-updated.
Last update: 2024-09-05 14:45:17 UTC
README
当用户登录网站时,获取着陆页面位置和查询参数。将它们保留在会话中,用于表单或其他 twig 变量中的使用。
需求
此插件需要 Craft CMS 3.7、4 或 5。
安装
要安装此插件,请按照以下说明操作。
-
打开您的终端并转到您的 Craft 项目
cd /path/to/project
-
然后告诉 Composer 加载插件
composer require digitalpulsebe/craft-utm-tracker
或者当使用 Craft 4 时,使用版本 2
composer require digitalpulsebe/craft-utm-tracker:^2.0.0
或者当使用 Craft 3 时,使用版本 1
composer require digitalpulsebe/craft-utm-tracker:^1.0.0
-
在控制面板中,转到设置 → 插件,然后点击 UTM Tracker 的“安装”按钮。
配置 UTM Tracker
在 Craft 控制面板中配置选项或创建 config/utm-tracker.php 文件作为 config.php 的副本。
默认情况下,您应该跟踪以下 UTM 标签
- utm_source (活动来源,例如:Google)
- utm_medium (活动媒介,例如:电子邮件)
- utm_campaign (活动名称,例如:xmas2022)
- utm_term (活动术语,例如:christmas+presents)
- utm_content (活动内容,例如:版本+A)
此外,当创建会话时,也会跟踪着陆 URL 和引用 URL。
其他配置(config/utm-tracker.php)选项包括
- 'cookieName': 当使用时,cookie 的名称
- 'cookieLifetime': 当使用时,cookie 的生存时间(秒数)
使用
可用的 twig 变量
{{ craft.utmTracker.landingUrl }} {# example: https://example.com/pages/detail #} {{ craft.utmTracker.absoluteLandingUrl }} {# with query parameters, example: https://example.com/pages/detail?param=1 #} {{ craft.utmTracker.referrerUrl }} {# example: https://google.com/ #} {{ craft.utmTracker.tag('utm_campaign') }} {# one tag by key #} {{ craft.utmTracker.tags|json_encode }} {# all tags in an array #}
将 UTM Tracker 与 Formie 结合使用
- 将自定义字段 'Tracked Field' 拖放到您的表单中
- 为您想要命名的字段命名,在下拉菜单中选择来源
- 当选择查询参数(标签)作为来源时,从列表中选择键。它与您在此应用程序设置中定义的标签相同的列表。
将 UTM Tracker 与 Freeform 结合使用
- 创建隐藏字段并将其添加到您的表单中
- 使用默认值渲染标签,该默认值来自可用的变量属性
示例
{{ form.render({ 'storedValues': { 'myHiddenField': craft.utmTracker.landingUrl } }) }}
与全页缓存结合追踪
当页面完全缓存(使用 Blitz、Varnish...)时,Craft CMS 无法获取流量。您需要使用 JavaScript 异步发送和检索数据。但请注意:它可能会增加服务器负载。如果您的应用程序流量非常大,请考虑仅使用 JavaScript 的解决方案。
向后端发送数据
将以下内容放入您的 twig 布局模板文件中
{{ craft.utmTracker.reportScript() }}
它将对 Craft CMS 后端执行 POST 调用来避免缓存。
检索数据
要使用缓存页面上的数据,您需要从 API 中检索它。
调用 https://example.com/actions/utm-tracker/api/data
并您将获得此 json
{ "data": { "queryParameters": { "utm_campaign": "campaign" }, "absoluteLandingUrl": "https://example.com/landing-page?utm_campaign=campaign", "landingUrl": "https://example.com/landing-page", "referrerUrl": null } }
注意:跟踪用户数据
不要忘记通知用户正在跟踪详细信息,以符合 GDPR 规则。当您选择 cookie 存储方法时,将创建额外的 cookie。cookie 的名称和生存时间可在配置文件中配置。默认情况下,键是 'utm_tracking_parameters'。