Оформление
Достижение вызываемой вручную цели
Вызываемая вручную цель — единственный тип, который система не ловит сама: о событии сообщаете вы, когда оно уже произошло. Про остальные типы — в статье про создание цели.
Сообщить о такой цели можно двумя способами. Это одна и та же цель с одним идентификатором — вы выбираете не вид цели, а место, откуда приходит событие:
| Откуда приходит событие | Чем сообщаете | Что передаёте |
|---|---|---|
| Сайт, на котором стоит бандл | reachGoal из JS API — эта страница | id цели; при желании выручку и прибыль |
| Сервер, CRM, мобильное приложение | POST goals/reach | id цели, customerId, sessionId; при желании деньги и время |
Готовый вызов и готовый запрос с подставленным id цели показываются в редакторе самой цели.
Вызов на сайте
js
/* Нажал «добавить в корзину» */
ninja('reachGoal', '5d77fb20-4526-4b67-bd1c-2373e787fcd2')Первый аргумент — идентификатор цели из кабинета. Больше ничего обязательного нет.
Сессию и клиента передавать не нужно
reachGoal выполняется внутри уже запущенного бандла, а бандл держит текущую сессию и идентификатор клиента. Оба значения подставляются в конверсию сами — поэтому в JS-вызове нет полей sessionId и customerId: это не «необязательные» поля, а лишние.
Практическое следствие: конверсия, отправленная с сайта, всегда привязана к текущему визиту и к его рекламному источнику. Ничего сохранять и сопоставлять на своей стороне не нужно.
Если конверсию подтверждают позже
Когда заявку оставляют на сайте, а засчитывать её нужно только после проверки в CRM, возьмите на странице те же идентификаторы и сохраните их рядом с заявкой:
js
const customerId = await ninja('getCustomerIdAsync')
const sessionId = await ninja('getSessionIdAsync')Когда событие подтвердится, отправьте конверсию запросом с этими значениями — Передача конверсий (runtime). Так конверсия, пришедшая из CRM через несколько дней, вернётся к тому же человеку и к тому же визиту, что и вызов на сайте.
Выручка и прибыль
Третьим аргументом передаются деньги события:
js
/* Нажал «добавить в корзину» */
ninja('reachGoal', '5d77fb20-4526-4b67-bd1c-2373e787fcd2', {
revenue: 10,
netProfit: 1.35
})revenue— выручка события;netProfit— чистая прибыль события.
В JS это числа; в запросе те же поля передаются строками. Если деньги не переданы, берутся значения по умолчанию из карточки цели. Без суммы цель учится только на количестве событий.
Когда вызывать
- В момент, когда событие уже произошло, а не когда его пообещали: отменить отправленную конверсию нельзя.
- После первого вызова событие видно в конверсиях цели. Пока их нет, цель настроена, но пуста — брать её в обучение, тесты и стратегии рано.