rapidez / gtm
Rapidez GTM
Requires
- php: ^8.0|^8.1|^8.2
- illuminate/support: ^9.0|^10.0|^11.0
- illuminate/view: ^9.0|^10.0|^11.0
- rapidez/core: ^2.0
README
此 Rapidez 包提供 2 个与 GTM 脚本相关的视图,监听 Rapidez Core 发射的事件,并将电商数据添加到 datalayer。目前适用于 Universal Analytics Enhanced Ecommerce,但您可以使用 GTM 模板 与 Analytics 4 一起使用。
安装
composer require rapidez/gtm
并在 .env
中添加您的 GTM ID
GTM_ID=
最后,在布局模板的头部和底部添加 @include('rapidez-gtm::head')
和 @include('rapidez-gtm::foot')
,最可能的位置是:resources/views/vendor/rapidez/layouts/app.blade.php
。如果您尚未发布 Rapidez 视图,您可以使用以下方法发布它们:
php artisan vendor:publish --provider="Rapidez\Core\RapidezServiceProvider" --tag=views
多店铺
只需在发布配置后,在 config/rapidez/gtm.php
中添加所有商店
php artisan vendor:publish --provider="Rapidez\GTM\GTMServiceProvider" --tag=config
其中 id
数组的键是商店代码。
视图
如果您需要更改视图,您可以使用以下方法发布它们:
php artisan vendor:publish --provider="Rapidez\GTM\GTMServiceProvider" --tag=views
购买跟踪
此包不会发送任何购买事件,因为最好从后端发送这些事件,以防访客使用浏览器扩展阻止分析,例如使用 elgentos/magento2-serversideanalytics,它包含一个 "AddGaUserId" GraphQL 变异,因此可以从 Rapidez 推送 id 到 Magento。安装后,您可以在 .env
中启用它
GTM_ELGENTOS=true
view_item_list 事件
要跟踪 view_item_list
事件,您可以在产品列表上使用 v-item-list
指令,例如
v-item-list="{ items: items, item_list_id: 'recommended_products', item_list_name: 'Recommended products', }"
您还可以通过添加 .intersection
修饰符来仅跟踪交叉部分。默认为 50% 交叉,但可以重写:v-item-list.intersection="{ intersection: 80, ... }"
增强转换
要跟踪 增强转换,我们提供了一个单独的文件,您可以在捕获您想要推送的相关用户信息时运行它。
例如,在订阅时事通讯或输入结账详情后。以下是如何实现它的示例
import { setUserData } from 'Vendor/rapidez/gtm/resources/js/datalayer/google-ads.js'; window.app.$on('logged-in', () => { setUserData(); }); window.app.$on('checkout-credentials-saved', () => { setUserData(); });
暂时禁用
如果您想测试例如没有 GTM 的 Lighthouse 分数,可以通过在 URL 中添加 ?gtm=false
来禁用它
Partytown
如 GTM 这样的脚本对性能和页面速度有巨大的负面影响,为了解决这个问题,已经制作了像 Partytown 这样的脚本。它允许您保留分析,但恢复 一些 性能。
请注意,partytown 在技术上尚未准备好用于生产,仍在 beta 测试中。
安装
- 执行
yarn add @builder.io/partytown
- 配置 Vite 以复制 partytown 文件(然而,它应该放在 public 中,而不是 dist)
- 确保已安装 symfony/psr-http-message-bridge,如果没有:
composer require symfony/psr-http-message-bridge
- 通过添加
GTM_PARTYTOWN_ENABLE=true
到您的 .env 启用 partytown 对于 GTM - 将
/public/~partytown
添加到您的 .gitignore
附加域名和 CORS
由于CORS设置,并非所有域名都支持partytown (https://partytown.builder.io/proxying-requests) 此软件包为这些域名提供了代理,默认情况下仅针对GTM(见:config/rapidez/gtm.php)配置。如果您注意到更多域名出现CORS错误,可以将它们添加到配置中或在.env文件中的GTM_PARTYTOWN_DOMAIN_WHITELIST
下以逗号分隔的列表中。
自定义配置
partytown配置可在window.partytown
中获取,因此您可以通过更新<script></script>
标签内的配置来更改配置。
仅运行partytown而不为GTM
如果您想运行partytown但不为GTM,也可以通过配置GTM_PARTYTOWN_ENABLE=false
并手动在头部包含partytown视图来实现。
@push('head') @include('rapidez-gtm::partytown.index') @endpush
许可
GNU通用公共许可证v3。有关更多信息,请参阅许可文件。