ExAbby.PhoenixHelper (ex_abby v0.3.0)

Provides Phoenix-based A/B testing functions that operate with a Plug.Conn

Summary

Functions

Gets or creates a variation for a session ID.

Retrieves or assigns variations for multiple session-based experiments. Returns {conn, variations_map} where variations_map is %{experiment_name => variation_name}.

Retrieves variations for multiple session-based experiments using session ID directly. Returns a map of %{experiment_name => variation_name}.

Retrieves or assigns a variation for a user-based experiment, searching trials by user_id.

Retrieves or assigns variations for multiple user-based experiments. Returns a map of %{experiment_name => variation_name}.

Links session-based trials to a user for a Phoenix controller.

Records a success for the session-based experiment.

Records a success for a specific session ID.

Records successes for multiple session-based experiments.

Records successes for multiple experiments with a specific session ID. Returns a map of %{experiment_name => result} where result is {:ok, trial} or {:error, reason}

Sets a specific variation for a session-based experiment. Returns {:ok, trial} if successful, {:error, reason} otherwise.

Sets a specific variation for a user-based experiment. Returns {:ok, trial} if successful, {:error, reason} otherwise.

Functions

get_session_exp_variation_by_id(session_id, experiment_name)

Gets or creates a variation for a session ID.

get_session_exp_variations(conn, experiment_names)

Retrieves or assigns variations for multiple session-based experiments. Returns {conn, variations_map} where variations_map is %{experiment_name => variation_name}.

get_session_exp_variations_by_id(session_id, experiment_names)

Retrieves variations for multiple session-based experiments using session ID directly. Returns a map of %{experiment_name => variation_name}.

get_user_exp_variation(map, experiment_name)

Retrieves or assigns a variation for a user-based experiment, searching trials by user_id.

get_user_exp_variations(map, experiment_names)

Retrieves or assigns variations for multiple user-based experiments. Returns a map of %{experiment_name => variation_name}.

record_success_for_session(conn, experiment_name, opts \\ [])

Records a success for the session-based experiment.

record_success_for_session_id(session_id, experiment_name, opts \\ [])

Records a success for a specific session ID.

record_successes_for_session(conn, experiment_names, opts \\ [])

Records successes for multiple session-based experiments.

record_successes_for_session_id(session_id, experiment_names, opts \\ [])

Records successes for multiple experiments with a specific session ID. Returns a map of %{experiment_name => result} where result is {:ok, trial} or {:error, reason}

set_session_exp_variation(conn, experiment_name, variation_name)

Sets a specific variation for a session-based experiment. Returns {:ok, trial} if successful, {:error, reason} otherwise.

set_user_exp_variation(map, experiment_name, variation_name)

Sets a specific variation for a user-based experiment. Returns {:ok, trial} if successful, {:error, reason} otherwise.