rapidez/gtm

Rapidez GTM

安装次数: 3,663

依赖项: 0

建议者: 0

安全性: 0

星级: 5

关注者: 3

分支: 4

开放问题: 0

语言:JavaScript

2.1.2 2024-09-16 10:58 UTC

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。有关更多信息,请参阅许可文件