Honeypot questions and other anti-bot measures | XM Community
Skip to main content

Hi all

I'm a PhD student using Qualtrics for an expression of interest form for recruiting participants for research. I'm encountering a lot of bots on my form despite having all of Qualtrics' security features enabled and a reCAPTCHA verification question in the survey.

I have tried adding Honeypot questions (e.g., a superfluous “What is your age in years?” question) and have been able to successfully hide them using the below JavaScript:

Qualtrics.SurveyEngine.addOnload(function()

{

jQuery("#"+this.questionId).prev('.Separator').hide();

jQuery("#"+this.questionId).hide();

});

However, the bots do not seem to be answering these questions. They answer everything else and are only leaving these hidden questions blank, which defeats the purpose of having them.

Does anyone have any suggestions?

I’m also open to hearing about other anti-bot measures I could include in my survey to assist with security as I need a verifiable way of telling bots and genuine participants apart for the purposes of research integrity. 

Thanks, 
Maddie 

I think the bots can see that the question is hidden and that’s why there are not answering it.

 

You could try changing its opacity to zero:

Qualtrics.SurveyEngine.addOnload(function () {
const quest = this;
const qc = quest.getQuestionContainer();
const buttons = document.querySelector("#Buttons");

// Change the opacity of the question to 0
qc.style.opacity = 0; // Delete this line to see where the question goes

// Move the question after the buttons row
buttons.insertAdjacentElement("afterend", qc);
});

 

Another option would be to move the question out of the page, i.e., it will be present in the DOM tree but rendered outside the viewable area:

Qualtrics.SurveyEngine.addOnload(function () {
const quest = this;
const qc = quest.getQuestionContainer();

qc.style.position = "fixed";
qc.style.left = "-100px";
qc.style.top = "-100px";
});

 

However, its possible that these are not bots, but instead humans working on server farms. Maybe add a few questions like “Select Slightly Disagree” etc.


Thank you so much @ahmedA. This is really helpful and greatly appreciated. If you have any other suggestions for anti-bot measures, please feel free to share them.


Leave a Reply