reachGoal
Совет
Для работы с JavaScript API необходимы навыки работы с HTML и JavaScript. Если вы не обладаете такими навыками, обратитесь к разработчику или вебмастеру вашего сайта.
Передача информации о достижении цели.
ym(XXXXXX, 'reachGoal', target[, params[, callback[, ctx]]]);
Параметр |
Значение по умолчанию |
Тип |
Описание |
|
— |
String |
Идентификатор цели. Задается на странице редактирования счетчика при создании или изменении цели типа «JavaScript-событие». |
|
— |
Object |
|
|
— |
Function |
Callback-функция, вызываемая после отправки данных о просмотре. |
|
— |
Object |
Контекст, доступный в callback-функции по ключевому слову |
Поля объекта |
|||
|
— |
Double |
Цена цели. Можно указать доход в валюте или в условных единицах. |
|
— |
String |
Используйте это поле, если хотите передать цену цели в валюте. Метрика распознает трехбуквенный код валюты по ISO 4217. Если передается другая валюта, будут отправлены нулевые значения вместо валюты и суммы. |
* Обязательный параметр.
Если вы хотите отслеживать одно и то же действие в нескольких местах, достаточно создать одну цель типа JavaScript-событие и вызывать метод reachGoal
с идентификатором этой цели каждый раз, когда она достигнута.
Если же у вас есть несколько разных событий, создайте отдельную цель для каждого события и отслеживайте их раздельно. В этом случае у целей должны быть разные идентификаторы.
Внимание
При задании идентификатора цели не используйте следующие символы: / \ & # ? = ". Если вы хотите добавить в идентификатор символ +, вместо него укажите %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="Заказать" /> </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
, разместите в любой части страницы следующий код:Общее решениеРешение для 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="Заказать"/> </form> ...
Как передавать доход с помощью атрибута-селектора
Чтобы в качестве
order_price
передавать доход со всех странниц сайта, на которых он задан атрибутом-селектором (например,class
илиid
), передавайте в Метрику вместе с данными о доходе имя селектора.
Найдите в коде вашего сайта фрагмент, где задан подобный селектор. Пример:
<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="Заказать" />
Передача дохода по цели динамически с помощью 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">Дакимакура с JoJo</div> <div class="price">3000.5 руб</div> <input class="price-input hidden" value="3000.5" /> </div> ... </form>
XXXXXX
— номер вашего счетчика;TARGET_NAME
— идентификатор цели.
Узнайте больше
Полезные ссылки |
Онлайн-обучение |
* Обязательный параметр.