Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

randomization and question by question

More
5 years 2 months ago - 5 years 2 months ago #201064 by FSoave
Hello, I realized I have a bit of complicated structure for my survey and I'm not sure what's the best way to proceed.
Here's the structure:

1) Welcome page (default welcome)
2) Consent page (text only)
3) Demographic (5 array questions)
4) Core (video -> slider, details below)
5) Additional feedback (1 question)

The problem is with 4) Core because I need to show 40 videos (on youtube) and after each of them display a slider for the task. So basically I have 40 pairs of <video -> slider>

The 2 big issues are:
1) I'd like to have a timer when I show the video so the user don't just skip to the slider immediately but is somehow "forced" to stay on the video page for at least few seconds
2) these 40 pairs should be randomized for each user doing the survey

Minro thing (if possible) would be that the 3) Demographic questions were on the same page

Not sure if there's an easy solution and what's best?

Thanks a lot!
Last edit: 5 years 2 months ago by FSoave.
The topic has been locked.
More
5 years 2 months ago #201065 by holch
This all sounds pretty doable.

I would use "group by group" display.
1. and 2. are standard, so I think we can skip that.
3. Then I would create one group for demographics, put all these into the same group.
4. I would create 40 groups, each containing 1 video (probably best as a text display question) and one slider. I remember that there is a solution to block the submit button until a video is finished or for a certain time (you should search the forum for that). Ideally I would hide both, the slider questions AND the 'next' button until the video is over.
You can put the same Code into the field "Randomization group" for each of the 40 groups (on question group/page level, not on question level!!!) and the combinations of video and slider will rotate between the 40 possible positions.
5. one group for the aditional feedback.

Help us to help you!
  • Provide your LS version and where it is installed (own server, uni/employer, SaaS hosting, etc.).
  • Always provide a LSS file (not LSQ or LSG).
Note: I answer at this forum in my spare time, I'm not a LimeSurvey GmbH employee.
The topic has been locked.
More
5 years 2 months ago - 5 years 2 months ago #201155 by FSoave
Hello and thanks!
I've just found a recent solution to autoplay video and hide next button till the end of the video

I have a question, assuming I have 40 groups made of 2 questions (video + slider) as we just said
For each group, what would work very well would be to hide the video, once it has finished playback, and then display the slider (along with the next button).

In the previous link I have that code to do something similar but because I want to act on both video and slider within the same js script..I'm not clear where should I put that code? In the question or in the group?

Also I was checking the docs to understand how to refer to the slider in my js code but it seems quite messy (not even clear if I have to work with espressionscript or if it's a completely different thing? )

does each slider have an ID that I can use in js/jquery? if so where is it/how do I set it?

Thanks!
Last edit: 5 years 2 months ago by FSoave.
The topic has been locked.
More
5 years 2 months ago #201156 by holch
If you want the video disappear, why not just show your survey Question by question? Then you don't have to worry about hiding the slider at first and then hide the video and show the slider. You would just have to block the "next" button for the video until it ends, then you can move to the next page where the slider is.

Help us to help you!
  • Provide your LS version and where it is installed (own server, uni/employer, SaaS hosting, etc.).
  • Always provide a LSS file (not LSQ or LSG).
Note: I answer at this forum in my spare time, I'm not a LimeSurvey GmbH employee.
The topic has been locked.
More
5 years 2 months ago #201157 by FSoave
but then this messes up with the initial group I have (demographic) + how would I randomise each video (keeping track of which slider correspond to which video)?
The topic has been locked.
More
5 years 2 months ago #201158 by holch
If you keep the Video and the Slider in the same group and randomize the groups, there would be no problem, they are still joined together.

And yes, you could not show your 5 demographics questions on the same page, because unfortunately we do not have a difference between logical question groups and visual question groups (pages) at the moment, a concept that I am advocating for quite some time now, but the developers seem not to understand it and what advantages it could bring to separate the question groups from the display of questions on the same page. Feel free to leave a comment: bugs.limesurvey.org/view.php?id=9416

Help us to help you!
  • Provide your LS version and where it is installed (own server, uni/employer, SaaS hosting, etc.).
  • Always provide a LSS file (not LSQ or LSG).
Note: I answer at this forum in my spare time, I'm not a LimeSurvey GmbH employee.
The topic has been locked.
More
5 years 2 months ago #201159 by holch
Of course it is a trade off to show the 5 demographic questions one by one instead of on the same page, but it will probably save you some custom code (and thus the possibility of errors) for the 40 video+slider combinations.

Help us to help you!
  • Provide your LS version and where it is installed (own server, uni/employer, SaaS hosting, etc.).
  • Always provide a LSS file (not LSQ or LSG).
Note: I answer at this forum in my spare time, I'm not a LimeSurvey GmbH employee.
The topic has been locked.
More
5 years 2 months ago #201160 by FSoave
thanks..I've actually thought it through and I think I really need those deomgraphics to be on the same page. I mean, everyone would get so bored byt scrolling pages with 1 single question that they will probably quit even before reaching the actual survey. So frustrating. (I've left comment in the link you gave, thanks!).

Back to the previous step..is there a way to target (maybe through an id?) the slider in js? I've managed to target the whole block (which is good) with something like $('#question115') where the number 115 is different for each question..but I'm wondering if there's another better way?

Thanks!
The topic has been locked.
More
5 years 2 months ago #201161 by holch
I don't really agree. Actually in online research the question by question approach has become a defacto standard (with certain exceptions).

My experience is, that the more questions you have on your page, the higher the chance that people drop out.

If it is not very, very short questions, I would generally recommend to have them on separate pages.

In my former job we were running thousands of surveys and generally we ran ALL questions by questions, with very, very few exceptions. I think the risk is a lot higher for your respondents to get fed up with your 40 videos and slider questions than the 5 demographic questions, which can generally be responded super quick.

Help us to help you!
  • Provide your LS version and where it is installed (own server, uni/employer, SaaS hosting, etc.).
  • Always provide a LSS file (not LSQ or LSG).
Note: I answer at this forum in my spare time, I'm not a LimeSurvey GmbH employee.
The topic has been locked.
More
5 years 2 months ago #201162 by holch

Back to the previous step..is there a way to target (maybe through an id?) the slider in js? I've managed to target the whole block (which is good) with something like $('#question115') where the number 115 is different for each question..but I'm wondering if there's another better way?

I am no expert in JS, so you need to wait for someone like Tpartner to show up.

Help us to help you!
  • Provide your LS version and where it is installed (own server, uni/employer, SaaS hosting, etc.).
  • Always provide a LSS file (not LSQ or LSG).
Note: I answer at this forum in my spare time, I'm not a LimeSurvey GmbH employee.
The topic has been locked.
More
5 years 2 months ago #201166 by Joffm
Hi,

I mean, everyone would get so bored byt scrolling pages with 1 single question


I fully agree to @holch.
I'd get bored much more if I had to scroll a page.
And after the respondent had to look at all the videos, a few more questions (and I hope you tell them that there are "just five more question to answer" in a text display) won't make them stop.

My question is:
You did not show us your survey.
So @holch and now I are a bit guessing how it really looks like.

In such cases you should attach a lss export.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
More
5 years 2 months ago #201168 by FSoave
thanks, that's interesting feedback there! So you'd prefer this version to this one ?
I find it so frustrating that I have to answer (left) and then move all the way to the right to click the next button for each question on a single page :blink:
Perhaps there's a way to automatically trigger the next page when an answer is selected?
Anyway, please find the lss attached. there are 2 groups.
It works exactly as I would like it too. the only (minor) issue is that I need to target the sliders individually by checking what's the id of the block through the inspector..it works..but doesn't sound very robust..it'd be perfect if there was a way to have an id for the sliders (eg slider1, slider2).

Thanks a lot!!

File Attachment:

File Name: limesurvey...7621.lss
File Size:26.06 KB
The topic has been locked.
More
5 years 2 months ago #201169 by holch
I personally prefer one question per page here, yes. Might take a little longer, but not much. And your respondent will be more focused on your question. I highly doubt that you will have more dropouts because of question by question.

Help us to help you!
  • Provide your LS version and where it is installed (own server, uni/employer, SaaS hosting, etc.).
  • Always provide a LSS file (not LSQ or LSG).
Note: I answer at this forum in my spare time, I'm not a LimeSurvey GmbH employee.
The topic has been locked.
More
5 years 2 months ago #201179 by Joffm

Perhaps there's a way to automatically trigger the next page when an answer is selected?

Yes, there is, WHEN an answer is selected.
Therefore there is a worlaround for autoproceed in single punch questions like radio buttons.

But how do you decide when a multipunch question or a slider question is answered?
The first "mouse up" event? You can't be sure that the respondent doesn't want to adjust his choice.

I find it so frustrating ...

This is probably due to the low frustration tolerance of the youth. ;)

But feel free to create a theme where the "next"-button is on the left.
This might be the best solution, because the "previous"-button usually is hidden.
Have a look at the "navigator.twig"

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
More
5 years 2 months ago - 5 years 2 months ago #201214 by FSoave
Hi, so to update, I think I've found the solution.
About demographic questions, with the group by group I can eventually have them 1 per page. However I think 2 per page is a good tradeoff since they are small questions.
Then, for the videos I have groups and each group contains 3 questions: video, slider, slider. Each of these groups are in the same randomization group so they are presented randomly

I've managed to:
- show video, until it's end
- then hide the video block
- and display the sliders (2 for now) I need
- the next button only displays after the user has moved both sliders (this is a workaround since if I make the sliders mandatory and the user press 'next' before setting them, the whole group is shown again, including the video, and I don't want the user to watch the video more than once)

this is the code I'm using and it's in the group's Description
Code:
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
  // Hide the "Next" button
  $('#ls-button-submit').hide();
  $('#question115').hide();
  $('#question130').hide();
 
  var vid = document.getElementById("myvideo");
  vid.volume = 0.7;
  vid.onended = function() {
  // Hide video
  //$(this).hide();
  $('#question114').hide();
  // Show sliders
  $('#question115').show();
  $('#question130').show();
 
 
  // Show the "Next" button
  var enableNext1 = false;
  var enableNext2 = false;
 
  var v = $('#answer562798X17X115SQ001slid').change(function() {
    enableNext1 = true;
    if(enableNext2) $('#ls-button-submit').show(); // if also the second one was moved
   });
  var v = $('#answer562798X17X130SQ001slid').change(function() {
    enableNext2 = true;
    if(enableNext1) $('#ls-button-submit').show(); //if also the first one was moved
   });
  } //onended
});
</script>

the only potential issue is that I still don't get how to target correctly the blocks (eg video/slider) is JS. So for the ids (eg #question114 and #answer562798X17X115SQ001slid) I have to look them up from the developer tools and manually change the script for every new group I have.

Another thing which took me way to long to find in the cryptic options is how to center the slider (and it still feels a bad hack). As per image below, I don't have a label (to the left of the slider). To center the slider I had to set the Label column width at 25% and the Text input box width at 50%. (I wish this was written somewhere in the manual)


Find a sample survey attached (I guess you will have to change the ids in the js code as described above)

File Attachment:

File Name: limesurvey...5536.lss
File Size:33.88 KB
Last edit: 5 years 2 months ago by FSoave.
The topic has been locked.
Moderators: tpartnerholch

Lime-years ahead

Online-surveys for every purse and purpose