Взаимодействие при использовании js-api в случае отсутствия thank-you-page или использования javascript-события как конверсии



1. Пользователь приходит на лендинг (страницу сайта, в примере landing.html) с установленным js-кодом
Пока не определено, какой набор параметров нужно показать - показывается пустая страница либо страница со значениями по умолчанию.

2. Javascript отправляет запрос к api.konvr.ru на получение списка параметров для показа.
Сперва выполняется проверка на то, подходит ли пользователь для эксперимента (пользователь новый, из разрешенного источника, включены ли cookie, отбирается доля трафика), если не подходит - показывается страница по умолчанию (выполняется ф-я konvr_draw). Если подходит - делается два последовательных асинхронных запроса к api.konvr.ru (сперва к js_static.js, потом к api.php).

3. Сервер получает параметры запроса, создает комбинацию параметров для показа, отвечает js-скриптом
Передаются параметры пользователя и данные по рекламной кампании (id клиента, рекламной кампании и API-ключ). После того, как сделан первый показ, сервер запоминает ссылающийся домен и последующие запросы принимает только с него. На генерацию комбинации параметров уходит менее 0.1 секунды.

4. Скрипт на стороне клиента создает лендинг по набору параметров
Посетителю устанавливаются cookie от имени сайта, которые содержат данные об id показа и разыгранную комбинацию параметров, которая будет показываться cookiedays дней без дополнительных обращений к апи, позже посетитель станет "новым" для эксперимента. Полученный скрипт исполняет ф-ю konvr_draw (определенную на стороне клиента), которая собирает и показывает лендинг по полученным номерам параметров (и при самом первом визите исполняется konvr_draw_once)

5. Пользователь читает и взаимодействует с лендингом
Он может переходить на другие страницы, без дополнительных обращений к api "выданные" ему параметры будут отображаться, если код установлен на всем сайте.

6. Пользователь делает целевое действие
В приведенном примере действие - это отправка формы. При нажатии кнопки исполняется ф-я konvr_success('formid'), в которую передается id формы, и событие отправки планируется на 0.5 секунды вперед (если скрипт api не успеет ответить, форма будет отправлена в любом случае)

7. Javascript отправляет асинхронный запрос до отправки формы
Если скрипт api не успеет ответить, форма будет отправлена в любом случае

8. Сервер получает уведомление о конверсии
Отвечает js-скриптом, который отправляет форму, formid.submit()

9. Скрипт на стороне клиента отправляет форму

10. Клиент получает данные своей формы