
URLパラメータアクションを取得する
Get URL Parameterアクションは、参加者のURLから1つの名前付きパラメータを読み込み、それを選択した変数に直接書き込みます。それはイベントシステムのVariable Actionsカテゴリに位置しています。
概要

参加リンクには、Labvancedが自動的に読み込む以上の情報、クラウドソーシングプラットフォーム独自のターゲティングパラメータ、または別の研究から渡される値が含まれる場合があります。Get URL Parameterは、そのリンクから特定の名前付きパラメータを引き出し、直接変数に保存する方法です。
一般的な使用例
- クラウドソーシングプラットフォームの独自のパラメータ(例えばBesampleの
tc)を直接変数に読み込み、研究ロジックのブランチを作成する。 - 親研究から埋め込まれたサブスタディに静的値を渡す、サブスタディオブジェクトの
Query Parametersフィールドを介して。 - 追加パラメータを付加した独自の参加リンクを構築する(カスタムURLパラメータを参照)、その中の1つを変数に戻して読み込む。
仕組み
Get URL Parameterにアクセスするには、タスクエディタでイベントシステムを開き、新しいイベントを作成します。最初にトリガーを選択してください。例えばOn Frame Startやボタンクリックなど、読み込みを開始するものです。その後、Add Action → Variable Actionsで、Get URL Parameterを選択します。
| オプション | 説明 |
|---|---|
Parameter name | URL上に表示されるパラメータの正確な名前を、&または=をなしで記述します(例えばtc、ではなく&tc=)。大文字と小文字が区別されます。 |
Save in Variable | 値を受け取る変数。通常の変数選択メニューに表示され、どの変数でも機能します。 注意: URLの値は常にテキストであるため、文字列変数が自然なデフォルトです。値が厳密に数値であり、さらに計算処理を行う場合には数値変数を使用します。 |

アクションは、含まれるイベントが発火する瞬間に1回だけ値を読み込みます。これはライブバインディングではないため、他の何かがその値を必要とする前に、十分早くトリガーしてください。名前付きパラメータがURLに存在しない場合、結果は変数のデータタイプによります。文字列変数は空の文字列に設定されますが、数値変数は0に設定されます(アクションが読み込んだ空の文字列は数値に変換されます)。
パラメータの値は原則として常に文字列です。URL上のすべてはテキストだからです。文字列変数はその自然なマッチですが、値が厳密に数値である場合、例えばtcの国コードの場合、実際にはさらに数学的な操作を行う必要がある場合には数値変数がより良い選択肢です。
URLパラメータアクション vs URL_Search_Paramsシステム変数
厳密には、どちらか一方ではありません。URL_Search_Paramsは、リンク上のすべてを自動的に記録し、設定する必要はありません。Get URL Parameterは、あらかじめ名前が付けられた特定の値が1つだけ必要な場合、シンプルな選択肢です:1つのアクション、JSONなし、コードなしです。また、実験デザインが要求する場合にはURL_Search_ParamsとRun JavaScript Actionを組み合わせることも可能です。
動作例で両方の方法を比較してください: グローバル変数からカスタムURLを取得、同じURLパラメータを両方の方法で読み取るライブラリ研究ですので、結果を直接比較することができます。そのライブラリリンクは、研究のイントロ画面を開き、そこからコピーするためのリンクを渡します。下記のURLは、tcがすでに付加された同じプレイヤーモードリンクですので、比較にすぐにお進みいただけます。
このURLをブラウザにコピーして、自分で試してみてください:
https://www.labvanced.com/player.html?id=88576&tc=276
ワークフローテクニック
- パラメータ名を正確に一致させる。 一致は大文字と小文字を区別するので、
tcとTCは異なるパラメータとして扱われます。 - 完全なクエリ・フラグメントではなく、単純な名前を記入する。 フィールドは
tcを取ります。&tc=やtc=ではなく、アクションが内部で残りの一致を構築します。 - 欠落したパラメータのデフォルトを考慮する。 この変数をチェックする
Requirement Actionは、空の文字列(文字列変数)または0(数値変数)をテストする必要があり、nullとはならないべきです。パラメータが欠落している可能性がある場合です。 - 値が必要になる前にトリガーする。 読み込みはイベントが発火するときに1回行われるため、値が表示または分岐するフレームの前に十分早く実行されるトリガーに配置します。
研究 & 例シナリオ
クラウドソーシングプラットフォーム独自のパラメータを読む
どのクラウドソーシングプラットフォームも、Labvancedがすでに自動で読み込むパラメータ以外の独自のパラメータを参加リンクに追加できます。パラメータ名がわかっていれば、Get URL Parameterがそれを直接読み込むことができます。どのプラットフォームから送信されたとしても。例えば、Besample研究はtc(ターゲット国)を追加できます。Get URL Parameterを追加し、Parameter nameをtcに設定し、Save in Variableをカスタム変数(例えばTarget_Country)に設定すれば、値はすぐにロジックを分岐する準備が整います。特定の設定については、Besampleの統合を参照してください。
サブスタディに値を渡す
サブスタディオブジェクトは、Get URL Parameterを使用して、子研究が親研究が参加リンクに付加した静的値を読むことを可能にします。このオブジェクトのQuery Parametersフィールドを介して、例えば参加コードや2つのリンクされた研究の間のポイント値を保持することができます。