Forced quit and completion code on Inquisit Web


Author
Message
deh
deh
New Member (27 reputation)New Member (27 reputation)New Member (27 reputation)New Member (27 reputation)New Member (27 reputation)New Member (27 reputation)New Member (27 reputation)New Member (27 reputation)New Member (27 reputation)
Group: Forum Members
Posts: 7, Visits: 40
Hi,

I am running online Inquisit studies, and found that participants who quited in the middle of the study using (ctrl + Q) are redirected to the end of study page where the completion code is.
I don't want to fully pay participants who dropped in the middle of the study, so I hope only those who actually completed all the blocks to be redirected to the end of study page. Is there a way to solve this issue?

Thank you,
Da Eun
Dave
Dave
Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)Supreme Being (854K reputation)
Group: Administrators
Posts: 10K, Visits: 59K
deh - 8/17/2020
Hi,

I am running online Inquisit studies, and found that participants who quited in the middle of the study using (ctrl + Q) are redirected to the end of study page where the completion code is.
I don't want to fully pay participants who dropped in the middle of the study, so I hope only those who actually completed all the blocks to be redirected to the end of study page. Is there a way to solve this issue?

Thank you,
Da Eun

What you can do is implement a script.abort() condition if a CTRL+B (skipping a block) or CTRL+Q (quitting the experiment) response is detected during any of the trials:

<expt myexpt>
/ ontrialend = [
    if (expt.myexpt.response == "Ctrl+'Q'" || expt.myexpt.response == "Ctrl+'B'") {
        script.abort(true);
    };
]

/ blocks = [1=a; 2=b]
</expt>

<page aintro>
^This is block A.
</page>

<block a>
/ preinstructions = (aintro)
/ trials = [1-4 = atrial]
</block>

<page bintro>
^This is block B.
</page>

<block b>
/ preinstructions = (bintro)
/ trials = [1-4 = btrial]
</block>

<trial atrial>
/ stimulusframes = [1=atext]
/ validresponse = ("a", "b")
/ correctresponse = ("a")
</trial>

<trial btrial>
/ stimulusframes = [1=btext]
/ validresponse = ("a", "b")
/ correctresponse = ("b")
</trial>

<text atext>
/ items = ("Press A")
</text>

<text btext>
/ items = ("Press B")
</text>

<data>
/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem response latency correct defaults.finishpage)
/ separatefiles = true
</data>

<summarydata>
/ columns = (script.startdate script.starttime script.subjectid script.groupid script.sessionid defaults.finishpage)
/ separatefiles = true
</summarydata>

This would not catch all offenders, specifically not those who skip or quit in a part of the procedure that doesn't formally detect responses (e.g. instruction pages), but I don't think there's any better or more comprehensive way.
Those fully completing the task will land on the finish page containing the confirmation code. Those who do quit or skip (with the caveat mentioned above), the script would just exit without any further action, i.e. no redirection to the finish page.

You can try the code out for yourself here: https://mili2nd.co/2kub

deh
deh
New Member (27 reputation)New Member (27 reputation)New Member (27 reputation)New Member (27 reputation)New Member (27 reputation)New Member (27 reputation)New Member (27 reputation)New Member (27 reputation)New Member (27 reputation)
Group: Forum Members
Posts: 7, Visits: 40
Dave - 8/18/2020
deh - 8/17/2020
Hi,

I am running online Inquisit studies, and found that participants who quited in the middle of the study using (ctrl + Q) are redirected to the end of study page where the completion code is.
I don't want to fully pay participants who dropped in the middle of the study, so I hope only those who actually completed all the blocks to be redirected to the end of study page. Is there a way to solve this issue?

Thank you,
Da Eun

What you can do is implement a script.abort() condition if a CTRL+B (skipping a block) or CTRL+Q (quitting the experiment) response is detected during any of the trials:

<expt myexpt>
/ ontrialend = [
    if (expt.myexpt.response == "Ctrl+'Q'" || expt.myexpt.response == "Ctrl+'B'") {
        script.abort(true);
    };
]

/ blocks = [1=a; 2=b]
</expt>

<page aintro>
^This is block A.
</page>

<block a>
/ preinstructions = (aintro)
/ trials = [1-4 = atrial]
</block>

<page bintro>
^This is block B.
</page>

<block b>
/ preinstructions = (bintro)
/ trials = [1-4 = btrial]
</block>

<trial atrial>
/ stimulusframes = [1=atext]
/ validresponse = ("a", "b")
/ correctresponse = ("a")
</trial>

<trial btrial>
/ stimulusframes = [1=btext]
/ validresponse = ("a", "b")
/ correctresponse = ("b")
</trial>

<text atext>
/ items = ("Press A")
</text>

<text btext>
/ items = ("Press B")
</text>

<data>
/ columns = (date time subject group session blocknum blockcode trialnum trialcode stimulusitem response latency correct defaults.finishpage)
/ separatefiles = true
</data>

<summarydata>
/ columns = (script.startdate script.starttime script.subjectid script.groupid script.sessionid defaults.finishpage)
/ separatefiles = true
</summarydata>

This would not catch all offenders, specifically not those who skip or quit in a part of the procedure that doesn't formally detect responses (e.g. instruction pages), but I don't think there's any better or more comprehensive way.
Those fully completing the task will land on the finish page containing the confirmation code. Those who do quit or skip (with the caveat mentioned above), the script would just exit without any further action, i.e. no redirection to the finish page.

You can try the code out for yourself here: https://mili2nd.co/2kub

Thank you! It worked out beautifully.
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search