更新 希望这是对问题的更好解释:
我正在尝试使用_setCustomVar
将产品详细信息页面上的产品SKU传递给Google Analytics。
我正在运行Magento 1.4.0.1,我的Analytics异步代码由<head>
部分中的默认GA模块插入,它看起来像这样:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxxxxx-1']);
_gaq.push(['_trackPageview']);
(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>
我想添加的自定义变量具有以下语法:
_gaq.push(['_setCustomVar',1,'View Product','<?php echo $_helper->productAttribute($_product, $_product->getSku(), 'sku') ?>',3]);
根据分析文档,为了记录自定义变量,必须在_setCustomVar
之前调用_trackPageView
,
但默认的GoogleAnalytics模块中没有对此的支持。这个问题有两个问题:
_setCustomVar
功能?_setCustomVar
功能? 原帖:
我正在尝试将访问者正在查看的产品的SKU存储在Google Analytics自定义变量中。其语法为_gaq.push(['_setCustomVar',3,'View Product','SKU12345',2]);
。
显然,这段代码只应添加到产品详细信息页面,而不应添加到列表,购物车或结帐页面。所以我尝试通过添加以下代码来编辑view.phtml
中的app/design/frontend/default/my_package/template/catalog/product
文件:
<script>
_gaq.push(['_setCustomVar',
1,
'View Product',
'<?php echo $_helper->productAttribute($_product, $_product->getSku(), 'sku') ?>',
3]);
</script>
问题是我在基本跟踪代码之后添加了这个自定义变量,默认情况下会在<head>
部分添加,因此不会记录在Google Analytics中。
我试图避免使用app/code/core/Mage/GoogleAnalytics/Block/Ga.php
中的Analytics模块更改核心文件,但我认为解决方案可能就在那里。
如何添加设置自定义变量的代码段,使其显示在_gaq.push(['_trackPageview']);
之前的基本跟踪代码中?
这是我提供的异步代码:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxxxxx-1']);
_gaq.push(['_trackPageview']);
(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>
来自here的想法
注意:我正在使用Magento 1.4.0.1和Analytics异步语法
答案 0 :(得分:2)
目前正在使用我们的magento网站之一,如果您使用的是Magento Admin Google API,那么您可以(1)创建自定义模块以扩展它,或者(2)确保(查看源代码时){ {1}} javascript低于var _gaq = _gaq || [];代码块
<script>_gaq.push(['_setCustomVar...
创建自定义模块
在app / code / local / MageIgniter / GoogleAnalytics / etc / config.xml
<script type="text/javascript">
//<![CDATA[
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxxxx-3']);
_gaq.push(['_trackPageview']);
_gaq.push(['_setCustomVar', '1', 'awe2', '<?php echo $_helper->productAttribute($_product, $_product->getSku(), 'sku') ?>', '1']);
(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>
在/app/code/local/MageIgniter/GoogleAnalytics/Block/Ga.php中创建
<config>
<modules>
<MageIgniter_GoogleAnalytics>
<version>0.1.0</version>
</MageIgniter_GoogleAnalytics>
</modules>
<global>
<blocks>
<googleanalytics>
<rewrite>
<ga>MageIgniter_GoogleAnalytics_Block_Ga</ga>
</rewrite>
</googleanalytics>
</blocks>
</global>
</config>
请参阅/app/code/core/Mage/GoogleAnalytics/Block/Ga.php获取更多帮助
答案 1 :(得分:1)
我设法通过修改默认的GoogleAnalytics模块来实现它:
在app/code/core/Mage/GoogleAnalytics/Block
中复制Ga.php
文件,然后导航到/www/app/code/local/Mage/GoogleAnalytics/Block
并粘贴(如果不存在则创建必要的文件夹)。
在新的Ga.php
中,在_toHtml()
函数中测试是否从Magento后端激活Analytics后,测试当前页面是否为产品详细信息页面:
$_product = Mage::registry('current_product');
if($_product) {
//output code with _setCustom var
} else {
//output normal tracking code
}
自定义变量集的代码如下所示:
$this->addText('
<!-- BEGIN GOOGLE ANALYTICS CODE -->
<script type=\"text/javascript\">
var _gaq = _gaq || [];
_gaq.push([\'_setAccount\', \'UA-25272379-1\']);
_gaq.push([\'_setCustomVar\', 1, \'Product View\',\''.$_product->getSku().'\', 3]);
_gaq.push([\'_trackPageview\']);
(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>
<!-- END GOOGLE ANALYTICS CODE -->
');
答案 2 :(得分:0)
如果您使用Google Analytics的异步插入代码,无论您将代码放在何处,它都只会在页面加载完成后应用。
因此,只要它们在HTML代码中内联(非异步),您就可以在之前添加_gaq.push()
异步代码如下:
(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';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
})();