我在 Cake 多页订购流程中设置 GA。一项要求是,“_trackPageview”推送应包含一个表示自定义 URL 路径的变量,具体取决于流程的当前步骤(即_gaq.push(['_trackPageview', '/dsl/shop/availability/$url_addendum']);
.
我确实将 GA JS 片段设置为 Cake 元素 google_analytics.ctp:
<?php
$gaCode = Configure::read('xxx.ga.tracking_code');
if (!isset($url_addendum))
$url_addendum = '';
if ($gaCode) {
$googleAnalytics = <<<EOD
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '$gaCode']);
_gaq.push(['_trackPageview', '/xxx/shop/availability/$url_addendum']);
_gaq.push(['_gat._anonymizeIp']);
_gaq.push(['_setDomainName', 'xxx']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
EOD;
echo $googleAnalytics;
}
?>
echo $this->element('google_analytics');
订单流程使用我添加到标题部分的布局 shop.ctp 显示。这当然工作正常。
我现在的问题是,我需要使用我的自定义 $url_addendum 参数触发 _trackPageView,分别按订单流程的每个视图/步骤。但不会产生页面视图的副本,也不会在每个视图的主体中调用整个 GA 元素。
所以我想问题是:有没有办法将 GA 元素调用留在布局的头部(它应该是自然的,恕我直言)并调用自定义 _trackPageviews 而不必使用 _trackEvent ?
有没有办法将视图名称传递给布局,以便以 的形式唤起合适的调用
echo $this->element('google_analytics', array('url_addendum' => 'currentview'));
?