我每次有人访问网站时都试图获取有关用户电子邮件的信息。此信息存储在PHP会话变量中。因此,我使用电子邮件数据定义dataLayer,并附加事件gtm.load,如下所示:
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.js"></script>
<?php
session_start();
$_SESSION['email'] = 'mimail@gmail.com';
echo 'test ' . $_SESSION['email'];
?>
<script>
var dataLayer = [
{'email':'<?php echo $_SESSION["email"]; ?>',
'event':"gtm.load"}
];
</script>
</head>
<body>
<a href="mailto:joseantonio.cuenca@perseivivarium.com">Track</a>
<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-PFG3F5"
...
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->
</body>
</html>
但访问Google跟踪代码管理器,我无法跟踪事件中的数据。 dataLayer加载正常,因为如果我在console.log中,我有:
Object {email: "mimail@gmail.com", event: "gtm.load"}
提前致谢。
答案 0 :(得分:0)
您无需提供自己的&#34; gtm.load&#34;事件,实际上当代码在页面下方加载时,GTM将只是另一个gtm.load(gtm.load是在页面完全加载时自动设置的事件)。
如果在GTM标记之前设置dataLayer,则根本不需要定义自定义事件,只需在默认事件中访问数据层(首次加载代码时为gtm.js,当时为gtm.dom时当页面和所有资源都已加载时,DOM已准备好并且gtm.load。因此,删除事件并尝试在页面视图中访问变量(触发器类型也设置为pageview)。