使用User-ID的Google Analytics跟踪代码

时间:2015-11-29 19:06:11

标签: javascript php google-analytics

我正在努力让用户ID功能在Google Analytics中运行。为此,我必须使用JavaScript将PHP变量传递给Google Analytics。

我试图通过回显PHP脚本中的所有Javascript来做到这一点。

以下是该脚本:



<?php

if (isset($username)) {

    echo "\n";   
	echo "<script type='text/javascript'>\n";
	echo "(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
	(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
	m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
	})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n";
	echo "ga('create', 'UA-********-1', 'auto');\n";
	echo "ga('set', 'userID', '" . $username . "');\n";
	echo "ga('send', 'pageview');\n";
	echo "</script>\n";

} else {

    echo "\n";
	echo "<script type='text/javascript'>\n";
	echo "(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
	(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
	m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
	})(window,document,'script','//www.google-analytics.com/analytics.js','ga');\n";
	echo "ga('create', 'UA-********-1', 'auto');\n";
	echo "ga('send', 'pageview');\n";
	echo "</script>\n";
}
?>
&#13;
&#13;
&#13;

不幸的是,它不起作用。谁能告诉我我做错了什么?

更新2015-12-03

我决定使用更直接的方法来测试用户是否已登录,而且,我已将条件语句的每一段的不同回声合并为一个:

<?php

if (login_check($mysqli) == true) {

echo "<!-- Google Analytics with userId -->
<script>
    window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
    ga('create', 'UA-XXXXX-Y', 'auto');
    ga('set', 'userId', '" . $_SESSION['user_id'] . "');
    ga('send', 'pageview');
</script>
<script async src='//www.google-analytics.com/analytics.js'></script>
<!-- End Google Analytics -->";
} else {
echo "<!-- Google Analytics with pageview only -->
<script>
    window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
    ga('create', 'UA-XXXXX-Y', 'auto');
    ga('set', 'userId', '" . 'anonymous' . "');
    ga('send', 'pageview');
</script>
<script async src='//www.google-analytics.com/analytics.js'></script>
<!-- End Google Analytics -->";
}
?>

这个新代码段有效。请注意,我必须设置userId才能使else语句中的代码生效。如果您在Google Analytics中启用了用户跟踪,则必须设置userId。我还没有确认,但它似乎是一个合理的推断。

1 个答案:

答案 0 :(得分:1)

您使用的User ID参数的名称不正确。它应该是userId(驼峰案例),但您使用的是userID。此外,请确保您已从GA界面启用了用户ID功能。