次のようなカスタマイズをすることで、同一ユーザーに複数回表示されるアクションについて、前回の表示時にユーザーに最後に表示したステートを、初期表示させることができます。

カスタマイズした場合の挙動例

  • ユーザーAに対して、ページAでアクションAを表示した
  • ユーザーAは、アクションAの最小化表示(ステート1)をクリックし、ステート2が表示された
  • 次のページでも同一アクションAがユーザーAに表示される際、前回表示されたステート2が初期表示される

カスタマイズ例

以下はサンプルコードです。実際には、テンプレートや期待される動作に応じて実装してください。

  • アクションのJS中に記述されたwidget.show();を、次のように書き換えます
// before
widget.show();
// after
widget.onChangeVal('state', function(v) {
    widget.storage.local.store('#{campaign_id}_last_state', v.newVal);
});
var last_state = widget.storage.local.restore('#{campaign_id}_last_state');
if (last_state) {
    widget.setState(Number(last_state));
} else {
    widget.show();
}

注意点

  • このカスタマイズは、Webサイトに配信されるアクションでしか機能しません
  • ステートの保持には、ブラウザのlocalStorageを利用しています。そのため、次の注意点があります
    • ドメインを超えてステートを引き継ぐことはできません
    • localStorageが削除された場合は保持していたステートも消去されます