Millisecond Forums

groupassignment via url parameter

https://forums.millisecond.com/Topic19490.aspx

By cjlab - 8/8/2016

Hello,

We are trying to launch a new study mirroring our previous one. In the past study, subject id was generated by the url parameter "subjectnumber", although this didn't actually refer to subject number. We used it in our batch script below to specify which task participants would do first. 

<batch>
/subjects = (1 of 4)
/groupassignment = subjectnumber
/file = "child-attribution-GNAT.iqx"
</batch>

<batch>
/subjects = (2 of 4)
/groupassignment = subjectnumber
/file = "child-APP.iqx"
</batch>

<batch>
/subjects = (3 of 4)
/groupassignment = subjectnumber
/file = "high_load.iqx"
</batch>

<batch>
/subjects = (4 of 4)
/groupassignment = subjectnumber
/file = "low_load.iqx"
</batch>

Group ID was then generated by the url parameter "groupnumber", meaning what version of the task they would do:

 For instance: 
<expt>
/groupassignment = groupnumber
/subjects = (1 of 4)
/blocks = [1= preinstruction; 2=scenarios_practice; 3= trialinstruction;
4= scenarios_positive01; 5= scenarios_negative01; 6= scenarios_positive02; 7=scenarios_negative02; 8= finish]
</expt>

Everything worked fine! Now, as we are trying to start the second study we are running into troubles with groupnumber. Links for the first task (below) work. 

This link http://research.millisecond.com/ubcparentinglab/Newstudy.web?subjectnumber=1&groupnumber=2 works.

But links for the second and third tasks (subjectnumber):
http://research.millisecond.com/ubcparentinglab/Newstudy.web?subjectnumber=2&groupnumber=2 
and
http://research.millisecond.com/ubcparentinglab/Newstudy.web?subjectnumber=3&groupnumber=2
don't.

We get this error message: "Could not load file http://www.millisecond.com/myaccount/scripts/ubcparentinglab/Newstudy/high-load.iqx. HTTP status code 404"

It seems like our new batch script is working because the error message identifies the correct subjectnumber (high-load), but that the group number is not.

Any thoughts?

Thanks!


By Dave - 8/8/2016

#1: The parameter name for the groupnumber is *not* "groupnumber". You have set the experiment up to retrieve the group id from a parameter called "groupassignment":
function GetGroupId(){    var snum = GetQueryVariable("groupassignment");    if ( snum == null || snum == "")    {        throw "Unable to get group id from url query paramter 'groupassignment'";     }   return snum;}

#2: The 404 error(s), however, are completely unrelated to this. HTTP status code 404 means "File not found", and that is exactly the case here. You assign people with subject id 2 to a script called "low-load.iqx", and people with an id of 3 to a script called "high-load.iqx".

<batch>
/subjects = (2 of 3)
/groupassignment = subjectnumber
/file = "low-load.iqx"
</batch>

<batch>
/subjects = (3 of 3)
/groupassignment = subjectnumber
/file = "high-load.iqx"
</batch>

Neither of those two scripts currently exists on the server -- the script's that *are* on the server, as far as I can see, are called "low_load.iqx" and "high_load.iqx", respectively (note the underscore). If you fix your <batch> syntax to reference the proper file names

<batch>
/subjects = (2 of 3)
/groupassignment = subjectnumber
/file = "low_load.iqx"
</batch>

<batch>
/subjects = (3 of 3)
/groupassignment = subjectnumber
/file = "high_load.iqx"
</batch>

everything should work just fine.
By cjlab - 8/10/2016

Thank you so much! Such an obvious mistake, but I swear I've checked multiple times.


By briancjo - 12/3/2016

Dave - Monday, August 08, 2016
#1: The parameter name for the groupnumber is *not* "groupnumber". You have set the experiment up to retrieve the group id from a parameter called "groupassignment":
function GetGroupId(){    var snum = GetQueryVariable("groupassignment");    if ( snum == null || snum == "")    {        throw "Unable to get group id from url query paramter 'groupassignment'";     }   return snum;}

#2: The 404 error(s), however, are completely unrelated to this. HTTP status code 404 means "File not found", and that is exactly the case here. You assign people with subject id 2 to a script called "low-load.iqx", and people with an id of 3 to a script called "high-load.iqx".

<batch>
/subjects = (2 of 3)
/groupassignment = subjectnumber
/file = "low-load.iqx"
</batch>

<batch>
/subjects = (3 of 3)
/groupassignment = subjectnumber
/file = "high-load.iqx"
</batch>

Neither of those two scripts currently exists on the server -- the script's that *are* on the server, as far as I can see, are called "low_load.iqx" and "high_load.iqx", respectively (note the underscore). If you fix your <batch> syntax to reference the proper file names

<batch>
/subjects = (2 of 3)
/groupassignment = subjectnumber
/file = "low_load.iqx"
</batch>

<batch>
/subjects = (3 of 3)
/groupassignment = subjectnumber
/file = "high_load.iqx"
</batch>

everything should work just fine.

supreme leader,

having a similar problem. Some of my participants when entering a subject id receive a popup message. "Failed to get subject id. the url has no parameters."
This also happened to me. I ended up refreshing the page to no avail. I had to reopen the browser and run the inquisit web player prior to starting the web script for it to work.
I've searched around and can't find an answer. It might be my batch file setup or how i set up subject ids for my web script. 

here is my batch script.

<batch>
/ subjects = (1 of 2)
/ file = "JoBrianDemoS1.iqx"
/ file = "BJoQ1.iqx"
/ file = "Disc2WebRulesA.iqx"
/ file = "Disc2Web.iqx"
/ file = "ST-IAT-SC.iqx"
/ file = "IPANAT.iqx"
/ file = "CBFinal.iqx"
/ file = "ST-IAT-DPD.iqx"
/ file = "BJoQ2.iqx"
/ file = "DebriefS.iqx"
</batch>

<batch>
/subjects = (2 of 2)
/ file = "JoBrianDemoF2.iqx"
/ file = "BJoQ1.iqx"
/ file = "Disc1WebRulesA.iqx"
/ file = "Disc1Web.iqx"
/ file = "ST-IAT-SC.iqx"
/ file = "IPANAT.iqx"
/ file = "CBFinal.iqx"
/ file = "ST-IAT-DPD.iqx"
/ file = "BJoQ2.iqx"
/ file = "DebriefF.iqx"
</batch>

1.I did not include /groupassignment = subjectnumber because with batch, i understand that inquisit will automatically assign odd subject ids to condition (1of2) and even subject ids to condition (2of2). Do i need to add /groupassignment = subjectnumber to be specific? 

2. In setting up the web scripts, for subject ids, I chose "user entered" and for group ids, I chose "url parameter". I wonder if the group id is creating an error based on the error i receive.
The problem is i don't want random assignment with or without or sequential. I want the subject id odd/even to determine which batch to run. I thought the "url parameter" would help bypass those 3 options, but since I don't have a url parameter (nor more importantly do not really understand what that means). Prior you mentioned to choose "url parameter" and send participants a link with the groupid, but i thought i worked around that with the batch subject id. 
-another scenario, if i just took out condition 2 in my web script, so there is only one group/condition, how could i set up the group ids to prevent any errors.

3.are there any subject related IT problems that could be creating this issue like pop ups or what have you.

any help as per usual is helpful. 
By Dave - 12/4/2016

briancjo - Sunday, December 04, 2016
Dave - Monday, August 08, 2016
#1: The parameter name for the groupnumber is *not* "groupnumber". You have set the experiment up to retrieve the group id from a parameter called "groupassignment":
function GetGroupId(){    var snum = GetQueryVariable("groupassignment");    if ( snum == null || snum == "")    {        throw "Unable to get group id from url query paramter 'groupassignment'";     }   return snum;}

#2: The 404 error(s), however, are completely unrelated to this. HTTP status code 404 means "File not found", and that is exactly the case here. You assign people with subject id 2 to a script called "low-load.iqx", and people with an id of 3 to a script called "high-load.iqx".

<batch>
/subjects = (2 of 3)
/groupassignment = subjectnumber
/file = "low-load.iqx"
</batch>

<batch>
/subjects = (3 of 3)
/groupassignment = subjectnumber
/file = "high-load.iqx"
</batch>

Neither of those two scripts currently exists on the server -- the script's that *are* on the server, as far as I can see, are called "low_load.iqx" and "high_load.iqx", respectively (note the underscore). If you fix your <batch> syntax to reference the proper file names

<batch>
/subjects = (2 of 3)
/groupassignment = subjectnumber
/file = "low_load.iqx"
</batch>

<batch>
/subjects = (3 of 3)
/groupassignment = subjectnumber
/file = "high_load.iqx"
</batch>

everything should work just fine.

supreme leader,

having a similar problem. Some of my participants when entering a subject id receive a popup message. "Failed to get subject id. the url has no parameters."
This also happened to me. I ended up refreshing the page to no avail. I had to reopen the browser and run the inquisit web player prior to starting the web script for it to work.
I've searched around and can't find an answer. It might be my batch file setup or how i set up subject ids for my web script. 

here is my batch script.

<batch>
/ subjects = (1 of 2)
/ file = "JoBrianDemoS1.iqx"
/ file = "BJoQ1.iqx"
/ file = "Disc2WebRulesA.iqx"
/ file = "Disc2Web.iqx"
/ file = "ST-IAT-SC.iqx"
/ file = "IPANAT.iqx"
/ file = "CBFinal.iqx"
/ file = "ST-IAT-DPD.iqx"
/ file = "BJoQ2.iqx"
/ file = "DebriefS.iqx"
</batch>

<batch>
/subjects = (2 of 2)
/ file = "JoBrianDemoF2.iqx"
/ file = "BJoQ1.iqx"
/ file = "Disc1WebRulesA.iqx"
/ file = "Disc1Web.iqx"
/ file = "ST-IAT-SC.iqx"
/ file = "IPANAT.iqx"
/ file = "CBFinal.iqx"
/ file = "ST-IAT-DPD.iqx"
/ file = "BJoQ2.iqx"
/ file = "DebriefF.iqx"
</batch>

1.I did not include /groupassignment = subjectnumber because with batch, i understand that inquisit will automatically assign odd subject ids to condition (1of2) and even subject ids to condition (2of2). Do i need to add /groupassignment = subjectnumber to be specific? 

2. In setting up the web scripts, for subject ids, I chose "user entered" and for group ids, I chose "url parameter". I wonder if the group id is creating an error based on the error i receive.
The problem is i don't want random assignment with or without or sequential. I want the subject id odd/even to determine which batch to run. I thought the "url parameter" would help bypass those 3 options, but since I don't have a url parameter (nor more importantly do not really understand what that means). Prior you mentioned to choose "url parameter" and send participants a link with the groupid, but i thought i worked around that with the batch subject id. 
-another scenario, if i just took out condition 2 in my web script, so there is only one group/condition, how could i set up the group ids to prevent any errors.

3.are there any subject related IT problems that could be creating this issue like pop ups or what have you.

any help as per usual is helpful. 

Re. #1: > Do i need to add /groupassignment = subjectnumber to be specific?

No. Assignment by subject number is the default. Not specifying /groupassignment at all is equivalent to specifying /groupassignment = subjectnumber.

Re #2: > for group ids, I chose "url parameter"

Subject ids and group ids are two separate things. If you instructed the web experiment to obtain the group id from a query parameter, you need to make sure that you pass said query parameter in to the launch page. Otherwise you will rightly get an error message.

> if i just took out condition 2 in my web script, so there is only one group/condition, how could i set up the group ids to prevent any errors.

If neither your <batch> elements nor any of the scripts run by the <batch>es rely on the group id for condition assignment, it simply does not matter. You can set the experiment to generate either a random or sequential group id -- it does not make any difference if no script ever uses the group id for anything.

By briancjo - 12/4/2016

Dave - Sunday, December 04, 2016
briancjo - Sunday, December 04, 2016
Dave - Monday, August 08, 2016
#1: The parameter name for the groupnumber is *not* "groupnumber". You have set the experiment up to retrieve the group id from a parameter called "groupassignment":
function GetGroupId(){    var snum = GetQueryVariable("groupassignment");    if ( snum == null || snum == "")    {        throw "Unable to get group id from url query paramter 'groupassignment'";     }   return snum;}

#2: The 404 error(s), however, are completely unrelated to this. HTTP status code 404 means "File not found", and that is exactly the case here. You assign people with subject id 2 to a script called "low-load.iqx", and people with an id of 3 to a script called "high-load.iqx".

<batch>
/subjects = (2 of 3)
/groupassignment = subjectnumber
/file = "low-load.iqx"
</batch>

<batch>
/subjects = (3 of 3)
/groupassignment = subjectnumber
/file = "high-load.iqx"
</batch>

Neither of those two scripts currently exists on the server -- the script's that *are* on the server, as far as I can see, are called "low_load.iqx" and "high_load.iqx", respectively (note the underscore). If you fix your <batch> syntax to reference the proper file names

<batch>
/subjects = (2 of 3)
/groupassignment = subjectnumber
/file = "low_load.iqx"
</batch>

<batch>
/subjects = (3 of 3)
/groupassignment = subjectnumber
/file = "high_load.iqx"
</batch>

everything should work just fine.

supreme leader,

having a similar problem. Some of my participants when entering a subject id receive a popup message. "Failed to get subject id. the url has no parameters."
This also happened to me. I ended up refreshing the page to no avail. I had to reopen the browser and run the inquisit web player prior to starting the web script for it to work.
I've searched around and can't find an answer. It might be my batch file setup or how i set up subject ids for my web script. 

here is my batch script.

<batch>
/ subjects = (1 of 2)
/ file = "JoBrianDemoS1.iqx"
/ file = "BJoQ1.iqx"
/ file = "Disc2WebRulesA.iqx"
/ file = "Disc2Web.iqx"
/ file = "ST-IAT-SC.iqx"
/ file = "IPANAT.iqx"
/ file = "CBFinal.iqx"
/ file = "ST-IAT-DPD.iqx"
/ file = "BJoQ2.iqx"
/ file = "DebriefS.iqx"
</batch>

<batch>
/subjects = (2 of 2)
/ file = "JoBrianDemoF2.iqx"
/ file = "BJoQ1.iqx"
/ file = "Disc1WebRulesA.iqx"
/ file = "Disc1Web.iqx"
/ file = "ST-IAT-SC.iqx"
/ file = "IPANAT.iqx"
/ file = "CBFinal.iqx"
/ file = "ST-IAT-DPD.iqx"
/ file = "BJoQ2.iqx"
/ file = "DebriefF.iqx"
</batch>

1.I did not include /groupassignment = subjectnumber because with batch, i understand that inquisit will automatically assign odd subject ids to condition (1of2) and even subject ids to condition (2of2). Do i need to add /groupassignment = subjectnumber to be specific? 

2. In setting up the web scripts, for subject ids, I chose "user entered" and for group ids, I chose "url parameter". I wonder if the group id is creating an error based on the error i receive.
The problem is i don't want random assignment with or without or sequential. I want the subject id odd/even to determine which batch to run. I thought the "url parameter" would help bypass those 3 options, but since I don't have a url parameter (nor more importantly do not really understand what that means). Prior you mentioned to choose "url parameter" and send participants a link with the groupid, but i thought i worked around that with the batch subject id. 
-another scenario, if i just took out condition 2 in my web script, so there is only one group/condition, how could i set up the group ids to prevent any errors.

3.are there any subject related IT problems that could be creating this issue like pop ups or what have you.

any help as per usual is helpful. 

Re. #1: > Do i need to add /groupassignment = subjectnumber to be specific?

No. Assignment by subject number is the default. Not specifying /groupassignment at all is equivalent to specifying /groupassignment = subjectnumber.

Re #2: > for group ids, I chose "url parameter"

Subject ids and group ids are two separate things. If you instructed the web experiment to obtain the group id from a query parameter, you need to make sure that you pass said query parameter in to the launch page. Otherwise you will rightly get an error message.

> if i just took out condition 2 in my web script, so there is only one group/condition, how could i set up the group ids to prevent any errors.

If neither your <batch> elements nor any of the scripts run by the <batch>es rely on the group id for condition assignment, it simply does not matter. You can set the experiment to generate either a random or sequential group id -- it does not make any difference if no script ever uses the group id for anything.


"If you instructed the web experiment to obtain the group id from a query parameter, you need to make sure that you pass said query parameter in to the launch page. "
I currently have the default launch page. How do I "pass said query parameter in to the launch page??
By Dave - 12/4/2016

briancjo - Sunday, December 04, 2016
Dave - Sunday, December 04, 2016
briancjo - Sunday, December 04, 2016
Dave - Monday, August 08, 2016
#1: The parameter name for the groupnumber is *not* "groupnumber". You have set the experiment up to retrieve the group id from a parameter called "groupassignment":
function GetGroupId(){    var snum = GetQueryVariable("groupassignment");    if ( snum == null || snum == "")    {        throw "Unable to get group id from url query paramter 'groupassignment'";     }   return snum;}

#2: The 404 error(s), however, are completely unrelated to this. HTTP status code 404 means "File not found", and that is exactly the case here. You assign people with subject id 2 to a script called "low-load.iqx", and people with an id of 3 to a script called "high-load.iqx".

<batch>
/subjects = (2 of 3)
/groupassignment = subjectnumber
/file = "low-load.iqx"
</batch>

<batch>
/subjects = (3 of 3)
/groupassignment = subjectnumber
/file = "high-load.iqx"
</batch>

Neither of those two scripts currently exists on the server -- the script's that *are* on the server, as far as I can see, are called "low_load.iqx" and "high_load.iqx", respectively (note the underscore). If you fix your <batch> syntax to reference the proper file names

<batch>
/subjects = (2 of 3)
/groupassignment = subjectnumber
/file = "low_load.iqx"
</batch>

<batch>
/subjects = (3 of 3)
/groupassignment = subjectnumber
/file = "high_load.iqx"
</batch>

everything should work just fine.

supreme leader,

having a similar problem. Some of my participants when entering a subject id receive a popup message. "Failed to get subject id. the url has no parameters."
This also happened to me. I ended up refreshing the page to no avail. I had to reopen the browser and run the inquisit web player prior to starting the web script for it to work.
I've searched around and can't find an answer. It might be my batch file setup or how i set up subject ids for my web script. 

here is my batch script.

<batch>
/ subjects = (1 of 2)
/ file = "JoBrianDemoS1.iqx"
/ file = "BJoQ1.iqx"
/ file = "Disc2WebRulesA.iqx"
/ file = "Disc2Web.iqx"
/ file = "ST-IAT-SC.iqx"
/ file = "IPANAT.iqx"
/ file = "CBFinal.iqx"
/ file = "ST-IAT-DPD.iqx"
/ file = "BJoQ2.iqx"
/ file = "DebriefS.iqx"
</batch>

<batch>
/subjects = (2 of 2)
/ file = "JoBrianDemoF2.iqx"
/ file = "BJoQ1.iqx"
/ file = "Disc1WebRulesA.iqx"
/ file = "Disc1Web.iqx"
/ file = "ST-IAT-SC.iqx"
/ file = "IPANAT.iqx"
/ file = "CBFinal.iqx"
/ file = "ST-IAT-DPD.iqx"
/ file = "BJoQ2.iqx"
/ file = "DebriefF.iqx"
</batch>

1.I did not include /groupassignment = subjectnumber because with batch, i understand that inquisit will automatically assign odd subject ids to condition (1of2) and even subject ids to condition (2of2). Do i need to add /groupassignment = subjectnumber to be specific? 

2. In setting up the web scripts, for subject ids, I chose "user entered" and for group ids, I chose "url parameter". I wonder if the group id is creating an error based on the error i receive.
The problem is i don't want random assignment with or without or sequential. I want the subject id odd/even to determine which batch to run. I thought the "url parameter" would help bypass those 3 options, but since I don't have a url parameter (nor more importantly do not really understand what that means). Prior you mentioned to choose "url parameter" and send participants a link with the groupid, but i thought i worked around that with the batch subject id. 
-another scenario, if i just took out condition 2 in my web script, so there is only one group/condition, how could i set up the group ids to prevent any errors.

3.are there any subject related IT problems that could be creating this issue like pop ups or what have you.

any help as per usual is helpful. 

Re. #1: > Do i need to add /groupassignment = subjectnumber to be specific?

No. Assignment by subject number is the default. Not specifying /groupassignment at all is equivalent to specifying /groupassignment = subjectnumber.

Re #2: > for group ids, I chose "url parameter"

Subject ids and group ids are two separate things. If you instructed the web experiment to obtain the group id from a query parameter, you need to make sure that you pass said query parameter in to the launch page. Otherwise you will rightly get an error message.

> if i just took out condition 2 in my web script, so there is only one group/condition, how could i set up the group ids to prevent any errors.

If neither your <batch> elements nor any of the scripts run by the <batch>es rely on the group id for condition assignment, it simply does not matter. You can set the experiment to generate either a random or sequential group id -- it does not make any difference if no script ever uses the group id for anything.


"If you instructed the web experiment to obtain the group id from a query parameter, you need to make sure that you pass said query parameter in to the launch page. "
I currently have the default launch page. How do I "pass said query parameter in to the launch page??

You need to include it in the URL you give out to participants. If you told Inquisit Web "hey, read the group number from a query parameter called 'thisisthegroupnumber'", the URL needs to have that parameter properly defined as in

http://research.millisecond.com/yourusername/yourexperimentname.web?thisisthegroupnumber=42

However: If -- as you stated -- you do not even use the group number for anything in your scripts, why would you actually want to do that???