dvsa / mot-google-analytics
一个用于轻松集成 Google Analytics 和 Google Tag Manager 的 Laminas 模块
Requires
- php: ^8.2
- laminas/laminas-dependency-plugin: ^2.6.0
- laminas/laminas-i18n: ^2.9.0
- laminas/laminas-log: ^2.10.0
- laminas/laminas-modulemanager: ^2.8.2
- laminas/laminas-mvc: ^3.1.1
- laminas/laminas-serializer: ^2.9.0
- laminas/laminas-servicemanager: ^3.10
- laminas/laminas-view: ^2.10.0
Requires (Dev)
- captainhook/captainhook: ^5.16
- captainhook/plugin-composer: ^5.3
- dvsa/coding-standards: ^2.0
- friendsofphp/php-cs-fixer: ^3.1
- laminas/laminas-test: ^4.0
- phpstan/phpstan: ^1.11
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.10
- vimeo/psalm: ^5.13
This package is auto-updated.
Last update: 2024-09-08 11:33:07 UTC
README
一个用于轻松集成 Google Analytics 和 Google Tag Manager 的 Laminas 模块。
Google Tag Manager 和数据层
Google Tag Manager 是由 Google 创建的一个标签管理系统,用于管理网站(包括电子营销标签的变体,有时称为跟踪像素或网络信标)上用于跟踪和统计的 JavaScript 和 HTML 标签。
-- 来自 https://en.wikipedia.org/wiki/Google_Tag_Manager
数据层 是一个包含您想要传递给 Google Tag Manager 的所有信息的对象。可以通过数据层将事件或变量传递给 Google Tag Manager,并在 Google Tag Manager 中根据变量的值(例如,当
purchase_total > $100
时触发重营销标签)或基于特定事件设置触发器。变量的值也可以传递到其他标签(例如,将purchase_total
传递到标签的值字段)。
-- 来自 https://developers.google.com/tag-manager/devguide
要设置数据层,必须将以下代码片段添加到页面头部(或容器代码片段之上的其他位置)
<script>
dataLayer = [];
</script>
上述代码片段是一个空对象,可以填充信息以传递给 Google Tag Manager。您可以在 使用 部分中查看如何向数据层对象添加属性。
<script>
dataLayer = [{
'userId': '5a713869ade8c3665c7e88c01e81a3f220cfde7d',
'event': 'removed-defect',
'journey': 'RFRs',
'title': 'Test result entry - the defect has been removed'
}];
</script>
要求
安装
通过 Composer 安装包
$ composer require dvsa/mot-google-analytics
然后通过将其添加到 application.config.php
中来启用 GoogleAnalyticsModule
模块。
<?php 'modules' => [ 'Dvsa\Mot\Frontend\GoogleAnalyticsModule', ],
使用
在控制器中
<?php namespace MyModule\Controller; use Dvsa\Mot\Frontend\GoogleAnalyticsModule\Package; use Laminas\Mvc\Controller\AbstractActionController; use Laminas\View\Model\ViewModel; class IndexController extends AbstractActionController { public function indexAction() { $view = new ViewModel([]); $view->setTemplate('my-module/index'); $this->gtmDataLayer([ 'event' => 'removed-defect', 'journey' => 'RFRs', 'title' => 'Test result entry - the defect has been removed', ]); return $view; } }
在视图中
<html> <head> <script type="text/javascript"><?php // Add variables and render the script all at once. echo $this->gtmDataLayer(['userId' => '5a713869ade8c366'])->render(); ?></script> </head> <body></body> </html>
或者
<?php
// Append variables
$this->gtmDataLayer(['userId' => '5a713869ade8c366']);
?>
<html>
<head>
<script type="text/javascript"><?php
// and now render the script.
echo $this->gtmDataLayer()->render();
?></script>
</head>
<body></body>
</html>
在服务中
<?php namespace MyModule\Service; use Dvsa\Mot\Frontend\GoogleAnalyticsModule\TagManager\DataLayer; class MyService { /** * @var DataLayer */ private $dataLayer; /** * To inject the $dataLayer object retrieve the `DataLayer::class` service from the main service container. * * @param $dataLayer DataLayer */ public function __construct(DataLayer $dataLayer) { $this->dataLayer = $dataLayer; $this->dataLayer->add([ 'event' => 'removed-defect', 'journey' => 'RFRs', 'title' => 'Test result entry - the defect has been removed', ]); } }
开发和执行测试
下载仓库并安装所有依赖项
$ git clone git@gitlab.motdev.org.uk:mot/mot-google-analytics.git
$ composer install
要执行单元和功能测试,请执行以下操作
$ composer test
要生成代码覆盖率
$ composer test-coverage
HTML 文件将保存到 build/code-coverage/html/
,Clover XML 保存到 build/code-coverage/clover/
如果您想以调试目的启动应用程序,请执行 test/bin/start-app.sh
。应用程序将在 http://127.0.0.1:8080/
上可用。
贡献
请参阅我们的 贡献指南。