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

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

· 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');
}
примечание

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

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

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

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, то подстановку идентификатора нужно убрать.

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