Взаимодействие с онлайн панелью

Для организации опроса в интернете иногда используются различные онлайн панели, из которых респонденты переходят в анкету. Обычно после завершения опроса необходимо вернуть респондента в панель, указав статус завершения интервью: успешное или респондент не прошёл по скринеру или квоте. Как же это реализовать в SURVEYSTUDIO?

У представителя онлайн панели необходимо получить ссылки, по которым требуется осуществлять переход при завершении интервью. Допустим, они такие:

  • http://example.com/?rid={ID респондента}&status=1 - успешное интервью,
  • http://example.com/?rid={ID респондента}&status=2 - не прошёл по скринеру,
  • http://example.com/?rid={ID респондента}&status=3 - не прошёл по квоте.

Поскольку в эти ссылки нужно подставлять идентификатор респондента, его необходимо сначала получить из панели. Для этого нужно добавить в рабочую ссылку на опрос любой параметр, через который панель будет передавать свои ID:

https://do.survey-studio.com/survey?pkey=ef87c2da&rid={ID респондента}.

Чтобы эти идентификаторы сохранялись на всякий случай, добавьте в начало анкеты текстовый вопрос, например 997, со скриптом перед показом:

let name = 'rid';
let value = parameters[name];

if (Q.isAnswered) return answered;
if (isTesting() && value === undefined) return skip;

if (value === undefined) return exit('Отсутствует идентификатор в параметре ' + name);
Q.openValueTxt = value;
return answered;

В первой строке скрипта нужно указать название параметра ссылки, через который будет передаваться ID, он может быть любым, удобнее, как в ссылке панели. Если панель не передаёт свой ID, то вопрос добавлять не нужно.

Далее в последний вопрос анкеты нужно добавить скрипт после ответа, который будет осуществлять переход по ссылке успешного интервью с подстановкой полученного из панели ID (из Q997):

let link = 'http://example.com/?status=1&rid=' + Q997.openValueTxt;
return exitAndRedirect(link);

Порядок параметров в ссылке не имеет значения, поэтому для удобства написания скрипта их можно поменять местами. Если панель не передаёт свой ID, то обращение к Q997 из скриптов нужно убрать.

После последнего вопроса необходимо добавить ещё один, можно информационный, с любым текстом (он не будет отображаться на экране) и с номером, например, 998. В его скрипт перед показом нужно добавить аналочичный скрипт, но со ссылкой для непрошедших скринер:

let link = 'http://example.com/?status=2&rid=' + Q997.openValueTxt;
return exitAndRedirect(link);

Теперь во всех вопросах скринера, завершающих интервью если респондент не подходит, нужно сделать переход к Q998, вместо завершения.

Если в проекте квот нет, на этом можно остановиться. Но если они есть, и панели требуется сообщать, что респондент не прошёл по квоте, то необходимо в глобальный скрипт «Обработка» добавить такой скрипт с соответствующей ссылкой:

if (isQuotaReached()) {
    let link = 'http://example.com/?status=3&rid=' + Q997.openValueTxt;
    return exitAndRedirect(link);
}

Так как по умолчанию интервью, превысившее квоту, не сохраняется в базу данных, скрипт «Обработка» выполняться не будет - переход по ссылке не сработает. Поэтому нужно включить сохранение таких интервью, добавив в глобальный скрипт «Подготовка» строку:

enableSaveWhenQuotaReached();

Теперь при любом исходе интервью респондент будет возвращён в панель с определённым статусом, если только во время опроса он не закроет браузер.

Комментарии