設定値を利用する

KARTE の管理画面上で設定した変数を、アプリで利用することができます。
これによりアプリをリリースすることなく、挙動をコントロールすることが可能です。

接客の設定

接客の新規作成を行い、設定値を変更するを選択してください。

作成した接客は、対象イベントが変数取得 (_fetch_variables) となるように自動で設定されます。

カスタマイズエディタで設定した静的変数をアプリで利用できます。

アプリ側の実装

変数の更新

Variables クラスのFetchWithCompletion()を実行することで管理画面で設定した変数を取得できます。
FetchWithCompletionは任意のタイミングで実行できますが、アプリケーション起動時に呼び出すことを推奨します。起動時に一度変数を取得すれば、その後いつでも変数が参照可能です。

using Io.Karte;

Variables.FetchWithCompletion ((isSuccess) => {
    if (isSuccess) {
        //fetch成功時の処理
    }
});

FetchWithCompletion()変数取得(_fetch_variables) イベントを発行し、これをトリガーに配信された1つまたは複数の接客の変数を全てキャッシュします。
また、該当する接客が返却された時に表示準備 (_message_ready) を発行します。

📘

変数名の重複

配信された複数の接客間で同名の変数が定義されていた場合、接客の配信優先度が高いものが優先されます。配信優先度が等しい場合は接客の最終更新日時が最近のものが優先されます。

📘

キャッシュのリセット

FetchWithCompletion()による_fetch_variablesイベントのトラッキングに成功した時、過去にキャッシュされていた変数値は全てリセットされます。該当する接客が1つもない場合も同様です。

キャッシュされた変数は次の方法で利用できます。

変数の参照

変数名を指定して変数を取得し、任意の型を指定して値を取得できます。

Variables userNameVar = Variables.GetVariable("user_name");
// 取得失敗時のデフォルト値として"Unknown"を指定
string userName = userNameVar.GetString("Unknown");

Variable userAgeVar = Variables.GetVariable("user_age");
// 取得失敗時のデフォルト値として-1を指定
int userAge = userAgeVar.GetInt(-1);

変数値はstring bool int double で参照可能です。

管理画面上で指定したタイプに関わらず、内部的に変数値は文字列として扱われ、参照メソッドは指定した型に変換した値を返します。例えば、数値フォーマットではない変数をInt()で参照した場合等、変換に失敗すると第1引数で指定されたデフォルト値を返します。

  • 管理画面上で画像 カラー URLタイプとした変数も文字列型として取得できます。
  • 日付型として送られたユーザ情報変数は UNIX 時間の数値として扱われます。

効果測定

変数をバナー表示等に利用した時、接客の効果測定のために表示イベントmessage_openやクリックイベントmessage_clickをトラッキングしたい場合があります。
表示に利用した変数のインスタンスのリストをVariableクラスのトラックメソッドに渡して計測できます。

Variable bannerImageUrlVar = Variables.GetVariable("top_banner_image_url");
Variable bannerClickLinkVar = Variables.GetVariable("top_banner_image_click_link");

if (bannerImageUrlVar.GetString("") != "" &&
    bannerClickLinkVar.GetString("") != "") {
    // imageUrlとclickLinkを利用してバナーを表示
    // ...
    
    Variable[] variables = new Variable[] { bannerImageUrlVar, bannerClickLinkVar };
    Variables.TrackWithVariables(variables, "message_open");
  
    // バナークリック時はeventNameにmessage_clickを渡す
    // KarteVariables.TrackOpen(variables, "message_click");
}

ユーザ情報変数

ユーザデータを利用したい場合は、ユーザ情報変数を追加した後、追加したユーザ情報変数を参照する静的変数を設定してください。

例:ユーザの名前を利用したい場合

  1. _user_nameという名前のユーザ情報変数を全ての期間 | ユーザタグ | 名前 | 最新の値として設定します。
  2. 静的変数user_nameを値 #{_user_name}で設定します。
  3. アプリ側でvariable.GetVariable("user_name").String()のように参照できます。

ユーザ情報変数に指定されたデフォルト値は、参照メソッドに渡されたデフォルト値よりも優先されます。