Ric*_*ard 5 google-analytics gtag.js
我们有一个使用 Gtag(全局站点标签)的单页面应用程序,并且我们手动管理页面跟踪以提供我们想要跟踪的正确页面名称。所以我们打电话
gtag('config', gaPropertyId, gtagPageConfig)
Run Code Online (Sandbox Code Playgroud)
每次路线改变时。
这意味着我们不希望 gtag 自动为我们跟踪页面,因为我们目前正在两次跟踪所有初始页面。第一次是 gtag 通过发送浏览器标题和 URL 自动触发页面跟踪,第二次是我们从代码触发页面视图,以提供我们想要查看的页面的标题在谷歌分析中。
经过大量研究和调试,我将其范围缩小到设置屏幕,其中选中了“页面加载”,并且无法禁用,请参见此图片:
我们像这样加载脚本:
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-xxx-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-xxx', { 'send_page_view': false });
</script>
Run Code Online (Sandbox Code Playgroud)
当我删除该行时gtag('js', new Date());,它不再跟踪页面,但这可能会导致一些不需要的行为。
我们有没有办法阻止初始页面加载跟踪?我到处搜索,但找不到解决方案。
简而言之,您不应该在不想向 Google 发送任何数据的页面上包含这些字段:
gtag('js', new Date());
gtag('config', 'G-xxx');
Run Code Online (Sandbox Code Playgroud)
您的代码片段应该如下所示,没有日期和配置:
<script async src="https://www.googletagmanager.com/gtag/js?id=G-xxx"></script>
<script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}
Run Code Online (Sandbox Code Playgroud)
如果您使用 SPA(即 Vue、React),您可以gtag在路由更新后运行函数:
gtag('js', new Date());
gtag('config', 'G-xxx', { page: path: route.path, page_title: route.meta.title })
Run Code Online (Sandbox Code Playgroud)
您可以有条件地显示日期和配置:
<?php if (/* suits my needs*/): ?>
gtag('js', new Date());
gtag('config', 'G-xxx');
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3214 次 |
| 最近记录: |