cherrypulp / laravel-datalayer
数据层助手
1.0.5
2019-10-04 09:43 UTC
Requires
- php: >=7.1.6
This package is auto-updated.
Last update: 2024-09-25 12:19:59 UTC
README
包描述:生成谷歌DataLayer脚本的Laravel包
安装
通过Composer安装
composer require cherrypulp/laravel-datalayer
注册您的Google ID
在您的.env文件末尾添加此代码`GOOGLE_ID=YOUR_GOOGLE_ID`
注册服务提供者
注意!如果您使用laravel>=5.5并具有包自动发现功能,则此步骤和下一步是可选的。
将服务提供者添加到config/app.php中的providers部分
Cherrypulp\DataLayer\ServiceProvider::class,
注册外观
在config/app.php中的aliases部分注册包外观
'DataLayer' => Cherrypulp\DataLayer\Facades\DataLayer::class,
用法
在您的控制器中
在数据层中推送一个值
DataLayer::push('foo', 'bar');
在数据层中推送一个数据数组
DataLayer::pushArray([
'user_name' => 'John Doe',
'age' => '42',
'country' => 'Belgium',
]);
不要犹豫,检查方法的原型以查看所有可能的选项
在您的视图中
在视图中发布数据层
只需在您的应用程序布局中调用此方法,在关闭HEAD标签之前。
DataLayer::publish();
它将在布局中打印整个HTML代码
<script>
dataLayer = dataLayer || [];
</script>
<script>
dataLayer.push({foo:'bar',user_name:'John Doe',age:42,country:'Belgium'});
</script>
<!-- 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=
'//#/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','YOUR_GOOGLE_ID');</script>
<!-- End Google Tag Manager -->
不要忘记在BODY标签之后立即调用DataLayer::noScript()
DataLayer::noScript();
它将打印以下内容
<noscript><iframe src="//#/ns.html?id=YOUR_GOOGLE_ID"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
您可以使用一个可选的数组来选择是否不初始化全局JS对象或/和谷歌的GTM脚本
DataLayer::publish(['init' => false, 'script' => false]);
它将只打印以下内容
<script>
dataLayer.push({foo:'bar',user_name:'John Doe',age:42,country:'Belgium'});
</script>
每次调用DataLayer::publish()方法后,数据层都会重置。
其他方法
从会话中加载数据
DataLayer::load();
将数据保存到会话中
DataLayer::save();
清除会话中的数据
DataLayer::clear();
获取数组数据
DataLayer::getData();
在视图中打印全局JS对象
DataLayer::init();
它将在HTML中打印以下内容
<script>
window.dataLayer = window.dataLayer || [];
</script>
在视图中打印谷歌的GTM脚本
$google_id参数是可选的。如果省略,它将使用您的.env文件中设置的Google ID
DataLayer::script([$google_id = null]);
<!-- 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=
'//#/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','YOUR_GOOGLE_ID');</script>
<!-- End Google Tag Manager -->
此外,不要忘记添加以下no-script标签
DataLayer::noScript([$google_id = null]);
<noscript><iframe src="//#/ns.html?id=YOUR_GOOGLE_ID"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
显示数据层的内容(调试目的)
DataLayer::dd();
安全
如果您发现任何与安全相关的问题,请通过anthony@cherrypulp.com发送电子邮件,而不是使用问题跟踪器。

