【发布时间】:2011-10-06 23:53:37
【问题描述】:
我正在尝试启用revenue tracking in Optimizely。
我已经定制了 Optimizely 知识库提供的 jQuery sn-p,并在结帐过程完成之前将其安装在最后一页。
这是我试图将我的 sn-p 连接到的“完成预订”按钮:
onmousedown我要触发这个函数:
<script type="text/javascript">
var optimizely = optimizely || [];
$("input[value='Complete Booking'].submit").live("mousedown", function() {
optimizely.push(['trackEvent', 'booking_complete', total]);
});
</script>
有一个名为 total 的变量存在于 DOM 中的其他位置,其中包含所购买商品的总价。
但是,当我安装此脚本时,它不会跟踪收入。我怀疑在我重写官方 Optimizely 函数时存在 jQuery 问题。有人对此有所了解吗?
更新
我意识到我可能需要调用 $(document).ready(function() 才能触发 jQuery。我现在也以美分而不是美元传递价值。还尝试使用.submit() 而不是.onmousedown()。我还将推送中的值更改为add_cart_button_clicked,就像在the revenue tracking tutorial on Optimizely's site 中一样。这是我更新的代码,但仍然无法正常工作。
<script type="text/javascript">
$(document).ready(function(){
var optimizely = optimizely || [];
var revenueInCents = total * 100;
$("input[value='Complete Booking'].submit").submit(function() {
optimizely.push(['trackEvent', 'add_cart_button_clicked', revenueInCents]);
});
}
</script>
【问题讨论】:
-
它可能不起作用,因为您在可能正在提交表单的按钮上推送“booking_complete”事件。因此,甚至在您的跟踪调用被处理之前,用户就被从页面中取出。
-
首先,确保
total是美分值。即,$4.53 应该作为 453 传递。其次,你能确认你的 jQuery 选择器是正确的吗?.submit(一个 CSS 类)应该是:submit(一个嘶嘶声选择器)吗? -
total确实需要以美分为单位@yahelc。好打电话给那个。我还包括我试图将操作附加到的按钮的代码:<input class="submit" type="submit" value="Complete Booking">
标签: javascript jquery optimizely