mainaero/yii2-gtm-widget
最新稳定版本:v1.2.0
Composer 安装命令:
composer require mainaero/yii2-gtm-widget
包简介
Google Tag Manager Widget for the Yii2 Framework
README 文档
README
A Yii2 extensions which provides a widget to render Google Tag Manager <script> and <noscript> snippets based on Yii2 params configuration. Further you can register it as component and use it to trigger dataLayer.push requests.
Install
Using composer:
composer require "mainaero/yii2-gtm-widget"
Configuration
Add in your params-local.php file:
'gtm_id' => '<YOUR_GTM_ID_WITHOUT_GTM_PREFIX> (required)', 'gtm_env' => '<YOUR_ENVIRONMENT_QUERY_STRING> (optional)'
E.g.:
'gtm_id' => '1A2B3CD', 'gtm_env' => '>m_auth=<TOKEN>w>m_preview=<ENV_ID>>m_cookies_win=x'
If you don't set the gtm_id param this widget will return an empty string.
As Component
If you want to use it as component add following code to your main.php config:
'components' => [ ... 'gtmDataLayerPush' => [ 'class' => 'mainaero\yii\gtm\component\DataLayerPush' ], ... ]
Usage
In your view file:
<?php use mainaero\yii\gtm\widget\GTM; ...
Render a <script> snippet:
<?= GTM::widget(); ?>
which renders:
<!-- 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://www.googletagmanager.com/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 -->
Render a <noscript> snippet:
<?= GTM::widget(['type' => 'noscript']); ?>
which renders:
<!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/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) -->
Use to trigger dataLayer.push
In your controller add seomthing with:
Yii::$app->gtmDataLayerPush->add(['event' => 'myEvent', 'eventCategory' => 'myCategory']);
Somewhere in your view or layout file output it with:
<?= GTM::widget(['type' => 'dataLayerPush']) ?>
You can leave this snipped in your layout file as it will only render something if you have added something before.
统计信息
- 总下载量: 23.15k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-01-29