reachGoal

重要

使用 JavaScript API 需要了解 HTML 和 JavaScript。 如果您不了解这些语言,请联系您的网站开发人员或站长。

传输有关已完成目标的信息。

ym(XXXXXX, 'reachGoal', target[, params[, callback[, ctx]]]);

参数

默认值

类型

描述

目标*

String

目标 ID。 在创建或更改“JavaScript 事件”类型的目标时,在计数器编辑页面中进行设置。

params

Object

会话参数

callback

Function

发送页面浏览数据后调用的回调函数

ctx

Object

在回调函数中通过 this 关键字访问的上下文

params 对象字段:

order_price 或 price

Double

目标成本。 您可以用货币或常规单位来指定收入。

currency

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 元素调用目标,请在页面的任何部分插入以下代码:

<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 从网站的所有设置了属性选择器(例如 classid)的页面传输,请将选择器名称与收入数据一起传递到 Yandex Metrica。

  1. 在网站代码中找到设置此类选择器的片段。 示例:

    <div class="ORDER">订单金额:<div class="PRICE">110</div> RUB</div>
    
  2. 将选择器名称添加到向 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。

与我们聊天

发送电子邮件

选择一个问题以查找解决方案。

Yandex Metrica 中的目标对于任何来源都以相同的方式工作。 可能还没有已从此来源完成目标的用户。

这些建议没有帮助

请注意:我们的支持团队永远不会主动给您打电话。 请勿按照自称为 Yandex Metrica 支持团队来电者的指示操作。

发生这种情况的原因可能如下:

  • Yandex Metrica 中的目标条件并未涵盖所有可能性。 例如,目标设置为转到订单确认页面,但该网站还允许在不访问此页面的情况下即时结帐。
  • 网站用户的浏览器插件会阻止 Yandex Metrica 计数器,因此不会将此用户计入在内。
  • 用户的防病毒系统具有严格的隐私设置。
  • 用户的互联网连接速度较慢,导致 Yandex Metrica 计数器未加载到目标页面上。
这些建议没有帮助

请注意:我们的支持团队永远不会主动给您打电话。 请勿按照自称为 Yandex Metrica 支持团队来电者的指示操作。


*必填参数。

上一篇
下一篇