reachGoal
Передача информации о достижении цели.
ym(XXXXXX, 'reachGoal', target[, params[, callback[, ctx]]]);
Параметр | Значение по умолчанию | Тип | Описание |
---|---|---|---|
target * | — | String | Идентификатор цели. Задается на странице редактирования счетчика при создании или изменении цели типа «JavaScript-событие». |
params | — | Object | |
callback | — | Function | Callback-функция, вызываемая после отправки данных о просмотре. |
ctx | — | Object | Контекст, доступный в callback-функции по ключевому слову this. |
Поля объекта params: | |||
order_price или price | — | Double | Цена цели. Можно указать доход в валюте или в условных единицах. |
currency | — | String | Используйте это поле, если хотите передать цену цели в валюте. Метрика распознает трехбуквенный код валюты по ISO 4217. Если передается другая валюта, будут отправлены нулевые значения вместо валюты и суммы. |
Параметр | Значение по умолчанию | Тип | Описание |
---|---|---|---|
target * | — | String | Идентификатор цели. Задается на странице редактирования счетчика при создании или изменении цели типа «JavaScript-событие». |
params | — | Object | |
callback | — | Function | Callback-функция, вызываемая после отправки данных о просмотре. |
ctx | — | Object | Контекст, доступный в callback-функции по ключевому слову this. |
Поля объекта params: | |||
order_price или price | — | Double | Цена цели. Можно указать доход в валюте или в условных единицах. |
currency | — | String | Используйте это поле, если хотите передать цену цели в валюте. Метрика распознает трехбуквенный код валюты по ISO 4217. Если передается другая валюта, будут отправлены нулевые значения вместо валюты и суммы. |
- * Обязательный параметр.
Если вы хотите отслеживать одно и то же действие в нескольких местах, достаточно создать одну цель типа JavaScript-событие и вызывать метод reachGoal с идентификатором этой цели каждый раз, когда она достигнута.
Если же у вас есть несколько разных событий, создайте отдельную цель для каждого события и отслеживайте их раздельно. В этом случае у целей должны быть разные идентификаторы.
Примеры
Варианты установки цели в исходном коде вашей страницы:
- Найдите в коде вашего сайта фрагмент, где задан подобный селектор. Пример:
<div class="ORDER">Сумма заказа: <div class="PRICE">110</div> рублей</div>
- В код элемента, который будет передавать в Метрику доход по цели, добавьте имя селектора. Пример:
<input type="button" onclick="ym(XXXXXX, 'reachGoal', 'BUY', {order_price: document.querySelector('.PRICE')?.textContent}); return true;" value="Заказать" />
...
<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="Заказать" />
</form>
...
...
<a href="/price.zip" onclick="ym(XXXXXX, 'reachGoal', 'TARGET_NAME'); return true;">Прайс</a>
...
...
<script type="text/javascript">
var goalParams = {myParam: 123};
function goalCallback () {
console.log('запрос в Метрику успешно отправлен');
}
</script>
<a href="/price.zip" onclick="ym(XXXXXX, 'reachGoal', 'TARGET_NAME', goalParams, goalCallback); return true;">Прайс</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="Заказать"/>
</form>
...
Чтобы в качестве order_price
передавать доход со всех странниц сайта, на которых он задан атрибутом-селектором (например, class или id), передавайте в Метрику вместе с данными о доходе имя селектора.
<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">Дакимакура с JoJo</div>
<div class="price">3000.5 руб</div>
<input class="price-input hidden" value="3000.5" />
</div>
...
</form>
XXXXXX
— номер вашего счетчика;TARGET_NAME
— идентификатор цели.