Перейти к основному содержимому

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

· 2 мин. чтения

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

Подготовка анкеты

В первую очень нужно убедиться, что ваша анкета завершается с корректными результатами. Это можно сделать с помощью дампа ответов.

Разбираемся со ссылками

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

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

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

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

Чтобы не дать заполнить анкету по ссылке, в которой нет ID, добавьте в первый вопрос скрипт перед показом:

if (isTesting() || isValidation()) return ok;

if (respondent.extId === undefined) {
return exit('Отсутствует идентификатор в параметре extid');
}
note

Бывают ссылки, в которых нет идентификаторов, это нормально, и в таком случае менять рабочую ссылку и добавлять скрипт не требуется.

Прописываем редиректы

В скрипт «Обработка» необходимо добавить ссылки каждого статуса и перенаправить респондента по той, что соответствует результату интервью:

let url;
switch (interview.result) {
case InterviewResult.Completed:
url = 'http://example.com/?status=1&rid=' + respondent.extId
break;

case InterviewResult.Screening:
url = 'http://example.com/?status=2&rid=' + respondent.extId;
break;

case InterviewResult.Overquoting:
url = 'http://example.com/?status=3&rid=' + respondent.extId;
break;
}

if (url && !isValidation()) {
return exitAndRedirect(url);
}

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

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

caution

Если в анкете включён флаг Запретить проверку с очисткой лишних ответов перед сохранением интервью — скрипт «Обработка» не выполняется.