reachGoal
重要
使用 JavaScript API 需要了解 HTML 和 JavaScript。 如果您不了解这些语言,请联系您的网站开发人员或站长。
传输有关已完成目标的信息。
ym(XXXXXX, 'reachGoal', target[, params[, callback[, ctx]]]);
参数 |
默认值 |
类型 |
描述 |
|
— |
String |
目标 ID。 在创建或更改“JavaScript 事件”类型的目标时,在计数器编辑页面中进行设置。 |
|
— |
Object |
|
|
— |
Function |
发送页面浏览数据后调用的回调函数 |
|
— |
Object |
在回调函数中通过 |
|
|||
|
— |
Double |
目标成本。 您可以用货币或常规单位来指定收入。 |
|
— |
String |
如果您想以货币形式传递目标成本,请使用此字段。 Yandex Metrica 识别三个字母的 ISO 4217 货币代码。 如果传递不同的货币,则将发送空值,而不是货币和金额。 |
*必填参数。
如果您想在多个位置跟踪同一行动,只需创建一个 JavaScript 事件目标,并在每次完成目标时使用目标 ID 调用 reachGoal
方法。
如果您有多个不同的事件,请为每个事件创建单独的目标并单独进行跟踪。 在这种情况下,目标必须具有不同的 ID。
注意
设置目标 ID 时,请勿使用以下符号: / \ & # ? = "。 如果要向 ID 添加加号,请输入 %2B
代替 + 字符。
例如
将目标嵌入网站源代码的选项:
表单
... <form action="" method="get" onsubmit="ym(XXXXXX, 'reachGoal', 'TARGET_NAME'); return true;"> ... </form> ...
对于按钮
... <form action=""> ... <input type="button" onclick="ym(XXXXXX, 'reachGoal', 'TARGET_NAME'); return true;" value="Order" /> </form> ...
链接
... <a href="/price.zip" onclick="ym(XXXXXX, 'reachGoal', 'TARGET_NAME'); return true;">Price list</a> ...
对于传输用户参数的链接
... <script type="text/javascript"> var goalParams ={myParam: 123}; function goalCallback (){ console.log('Request sent to Yandex Metrica'); } </script> <a href="/price.zip" onclick="ym(XXXXXX, 'reachGoal', 'TARGET_NAME', goalParams, goalCallback); return true;">Price list</a> ...
页面加载时目标完成
如果您使用的是异步代码片段并使用
script
元素调用目标,请在页面的任何部分插入以下代码:通用解决方案jQuery 解决方案
<script type="text/javascript"> window.onload = function() { ym(XXXXXX, 'reachGoal', 'TARGET_NAME') } </script>
<script type="text/javascript"> $(window).load(function() { ym(XXXXXX, 'reachGoal', 'TARGET_NAME') }); </script>
在表单上按目标设置收入
... <form action=""> ... <input type="button" onclick="ym(XXXXXX, 'reachGoal', 'TARGET_NAME', {order_price: '1000.35', currency: 'RUB'}); return true;" value="Order"/> </form> ...
如何使用属性选择器发送收入数据
要将收入作为
order_price
从网站的所有设置了属性选择器(例如class
或id
)的页面传输,请将选择器名称与收入数据一起传递到 Yandex Metrica。
在网站代码中找到设置此类选择器的片段。 示例:
<div class="ORDER">订单金额:<div class="PRICE">110</div> RUB</div>
将选择器名称添加到向 Yandex Metrica 发送按目标划分的收入的元素代码中。 示例:
<input type="button" onclick="ym(XXXXXX, 'reachGoal', 'BUY', {order_price: document.querySelector('.PRICE')?.textContent}); return true;" value="Order" />
使用 JQuery 按目标动态传递收入
<script type="text/javascript"> jQuery(document).ready(function () { var reachGoalWithDynamicPrice = function () { var dynamicPrice = jQuery('#cart .price-input').reduce(function (total, input) { var price = parseFloat(input.val()) return isNaN(price) ? total : total + price }, 0) var goalParams = { order_price: dynamicPrice, currency: "RUB" } ym(XXXXXX, 'reachGoal', 'TARGET_NAME', goalParams) return true } jQuery('#cart').submit(reachGoalWithDynamicPrice) } </script> <form id="cart" action="/submit_order.php" method="post"> <div class="item"> <div class="name">Pillow with flowers</div> <div class="price">RUB 3000.5</div> <input class="price-input hidden" value="3000.5" /> </div> ... </form>
XXXXXX
—— 计数器编号。TARGET_NAME
—— 目标 ID。
*必填参数。