mainaero/yii2-gtm-widget

Yii2 框架的 Google Tag Manager 小部件

安装次数: 9,509

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放性问题: 0

类型:yii2-extension

v1.2.0 2018-01-30 14:22 UTC

This package is auto-updated.

Last update: 2024-09-11 20:37:04 UTC


README

Build Status Maintainability Test Coverage

一个 Yii2 扩展,提供了一个小部件来渲染基于 Yii2 参数配置的 Google Tag Manager <script><noscript> 片段。此外,您还可以将其注册为组件,并使用它来触发 dataLayer.push 请求。

安装

使用 composer

composer require "mainaero/yii2-gtm-widget"

配置

添加到您的 params-local.php 文件中

'gtm_id' => '<YOUR_GTM_ID_WITHOUT_GTM_PREFIX> (required)',
'gtm_env' => '<YOUR_ENVIRONMENT_QUERY_STRING> (optional)'

例如:

'gtm_id' => '1A2B3CD',
'gtm_env' => '&gtm_auth=<TOKEN>w&gtm_preview=<ENV_ID>&gtm_cookies_win=x'

如果您未设置 gtm_id 参数,此小部件将返回空字符串。

作为组件使用

如果您想将其作为组件使用,请将以下代码添加到您的 main.php 配置文件中

'components' => [
...
  'gtmDataLayerPush' => [
    'class' => 'mainaero\yii\gtm\component\DataLayerPush'
  ],
...
]

使用方法

在您的视图文件中

<?php
use mainaero\yii\gtm\widget\GTM;
...

渲染一个 <script> 片段

<?= GTM::widget(); ?>

它将渲染

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://#/gtm.js?id='+i+dl+'<YOUR_ENVIRONMENT_QUERY_STRING>';f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-<YOUR_ID>');</script>
<!-- End Google Tag Manager -->

渲染一个 <noscript> 片段

<?= GTM::widget(['type' => 'noscript']); ?>

它将渲染

<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://#/ns.html?id=GTM-<YOUR_ID><YOUR_ENVIRONMENT_QUERY_STRING>"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->

用于触发 dataLayer.push

在您的控制器中添加一些内容

Yii::$app->gtmDataLayerPush->add(['event' => 'myEvent', 'eventCategory' => 'myCategory']);

在您的视图或布局文件中某处输出它

<?= GTM::widget(['type' => 'dataLayerPush']) ?>

您可以将此片段留在布局文件中,因为它只有在您之前添加了某些内容时才会渲染内容。