AdWords文档介绍了如何Track transaction-specific conversion values 说明PHP代码如下:
<!-- Google Code for Purchase Conversion Page -->
<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = 1234567890;
var google_conversion_language = "en";
var google_conversion_format = "1";
var google_conversion_color = "666666";
var google_conversion_label = "xxxxXXx1xXXX123X1xX";
if (<? echo $totalValue ?>) {
var google_conversion_value = <? echo $totalValue ?>;
var google_conversion_currency = <? echo $currency ?>;
}
var google_remarketing_only = false;
/* ]]> */
</script>
<script type="text/javascript"
src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt=""
src="//www.googleadservices.com/pagead/
conversion/1234567890/?value=
<? echo $totalValue ?>&currency_code=<? echo $currency ?>
&label=xxxxXXx1xXXX123X1xX&guid=ON&script=0">
</div>
</noscript>
</body>
这向我表明了两件事:
我们需要将订单总价值放入$totalValue
变量和货币值转换为$currency
.应将其放置在</body>
在页面上除了在订单完成时创建自己的自定义“谢谢”页面并将其添加到自定义页面模板中所需的位置之外,什么是连接到默认“谢谢”页面的最佳方式?
WooCommerce文档中有一些内容Custom tracking code for the thanks page 只是简单地挂在woocommerce_thankyou
. 缩小后看起来像:
add_action( \'woocommerce_thankyou\', \'my_custom_tracking\' );
function my_custom_tracking( $order_id ) {
// Lets grab the order
$order = wc_get_order( $order_id );
// Do whatever else
}
但没有特别提到AdWords。
我通过自己的测试知道,一旦我们定义$order = wc_get_order( $order_id );
我们可以简单地使用以下方法获取变量:
$totalValue = $order->get_total();
$currency = $order->currency;
这将产生这样一个完整的功能:
add_action( \'woocommerce_thankyou\', \'my_custom_tracking\' );
function my_custom_tracking( $order_id ) {
$order = wc_get_order( $order_id );
$totalValue = $order->get_total();
$currency = $order->currency;
?>
<!-- Google Code for Purchase Conversion Page -->
<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = 1234567890;
var google_conversion_language = "en";
var google_conversion_format = "1";
var google_conversion_color = "666666";
var google_conversion_label = "xxxxXXx1xXXX123X1xX";
if (<?php echo $totalValue ?>) {
var google_conversion_value = <?php echo $totalValue ?>;
var google_conversion_currency = <?php echo $currency ?>;
}
var google_remarketing_only = false;
/* ]]> */
</script>
<script type="text/javascript"
src="//www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt=""
src="//www.googleadservices.com/pagead/
conversion/1234567890/?value=
<?php echo $totalValue ?>&currency_code=<?php echo $currency ?>
&label=xxxxXXx1xXXX123X1xX&guid=ON&script=0">
</div>
</noscript>
<?php
}
但不允许我们把它放在
</body>
正如AdWords文档所述。
我在WooCommerce for AdWords中找不到任何关于交易特定值的信息,至少没有明确的信息。有很多插件,但如果只需添加一个函数(可能是上面的函数),它们似乎都有点过头了(如果我错了,请纠正我)。
我的问题是:
不管怎样,上述功能都可以正常工作吗是否可以将函数直接放置在</body>
就像谷歌建议的那样对于正确的配置,这里还有什么我可能缺少的吗
最合适的回答,由SO网友:alev 整理而成
作为WooCommerce AdWords Conversion Tracking 插件我可以给你一些问题的答案,以及一些使用插件的理由,尤其是我们的插件。
回答您的问题:
您的功能可能会受损或根本不起作用。原因是WordPress会自动过滤出CDATA标记(内容部分中的所有内容介于<body></body>
). 你对此无能为力。无法关闭过滤器。这是一个很久以前就报告过的错误:http://core.trac.wordpress.org/ticket/3670 有一个实验性的变通方法,但它可能不会适用于所有主题。
理论上是的。但谷歌的指导更像是一种建议。不管怎样,标记都会起作用。如果你把它放在页眉或页脚,或者直接放在标签后面,这并不重要。如果您不想编辑主题模板文件,那么使用WordPress精确定位它是一项非常困难的任务。
是的。您缺少:重复数据消除、禁止跟踪失败的付款、税务和发货排除、避免跟踪管理员和店铺经理。
重复数据消除:如果访问者出于任何原因重新加载thankyou页面,则会跟踪两次(甚至更多次)订单。
付款失败:如果付款失败,仍然会触发Thankyu页面,从而触发您的跟踪代码。
税务和发货:通常你不想跟踪发货和税务,只想跟踪产品价格。要获得不含税和装运的价值,您必须使用get\\u subtotal()。
在我们的插件中,我们有上述所有问题的解决方案。我们正在研究更有趣的功能。
一般来说,如果插件不仅仅包含简单的功能,还使用最佳实践来避免性能拖累并确保安装安全,那么插件可能是一件好事。