0

我正在使用 Magento 内置的 Googleanalytics 模块,该模块适用于页面浏览量,但不适用于转换。该帐户在 Google 上设置得很好,但它没有在结帐/单页/成功页面中添加 addTrans 部分。

今天早上我做了很多挖掘,发现观察者确实正确地观察到了“checkout_onepage_controller_success_action”,并且确实运行了。它执行以下操作:

$block = Mage::app()->getFrontController()->getAction()->getLayout()->getBlock('google_analytics');
    if ($block) {
        $block->setOrderIds($orderIds);
    }

我做了一些回显,它确实检索了块,它还正确设置了订单 ID。但是,在块本身中,如果我回显 $this->getOrderIds(); 它是空的。

我的下一个想法是,也许它可能在页面上使用了两个 GA 块,并且可能将数据传递给第一个,但回显了第二个的 HTML,但我不知道如何开始检查!Googleanalytics.xml 文件中只有一个块,我不会在其他任何地方使用该块名称!

有没有人经历过类似的?或者知道我可以从这里去哪里吗?

编辑:如果 $this->getOrderIds() 返回一个数组,则 Ga.php 块包含事务代码,但它没有这样做。然而,观察者正在做 $block->setOrderIds($order_ids); 它正在通过一个包含订单 ID 的数组。所以观察者将 ids 传递给块,并且块正在接收它们(设置 setBlockIds 的方法并回显参数,确实显示了数组),但是当块尝试访问自己的数据时,它突然不那里($block->getData() 返回一个属性数组,但没有 order_ids 属性)。

我还想可能是它在设置订单 ID 之前回显了块 HTML,所以我添加了一些变量来检查它,但事实并非如此 - 它肯定会在尝试再次获取它们之前设置 order_ids,但它仍然无法正常工作!

我完全被难住了!我现在唯一的想法是修改 Ga.php 块以使用 Magento 的注册表而不是它自己的 _data 属性,这真的不是一个好方法!

4

1 回答 1

0

我想我是一个彻头彻尾的工具。Magento 没有在实时站点上跟踪转换,因为我没有将帐户代码放在配置部分,但我在我的测试站点上有。

我之前将自己的分析代码放入模板中,因此我跟踪了页面浏览量。

当我没有看到任何转化时(尽管将帐户代码放在我的测试站点中),我开始在测试站点下订单,然后查看订单成功页面的来源。Firefox 将其源作为新请求加载...它会自动转到空购物篮页面。很明显,它没有显示 addTrans 或任何东西,因为它已经这样做了。

对萤火虫的快速检查表明它正在正常工作。

所以最后,经过一天的搜索,我不得不在后台将“否”更改为“是”,然后输入帐户代码。伟大的。

于 2012-09-05T16:18:53.697 回答