Kameleoon.Client (kameleoon_client v0.8.5)

Copy Markdown

Elixir wrapper over a native Kameleoon client Rustler resource.

Summary

Types

t()

@type t() :: %Kameleoon.Client{
  environment: String.t() | nil,
  events: GenServer.server(),
  native: term(),
  site_code: String.t() | nil
}

Functions

add_data(client, visitor_code, data, opts \\ [])

@spec add_data(t(), String.t(), struct() | [struct()], keyword()) ::
  :ok | {:error, Kameleoon.Error.t()}

evaluate_audiences(client, visitor_code)

@spec evaluate_audiences(t(), String.t()) :: :ok | {:error, Kameleoon.Error.t()}

flush(client, visitor_code)

@spec flush(t(), String.t()) :: :ok | {:error, Kameleoon.Error.t()}

flush_instant(client, visitor_code)

@spec flush_instant(t(), String.t()) :: :ok | {:error, Kameleoon.Error.t()}

get_datafile(client)

@spec get_datafile(t()) ::
  {:ok, Kameleoon.Types.DataFile.t()} | {:error, Kameleoon.Error.t()}

get_engine_tracking_code(client, visitor_code)

@spec get_engine_tracking_code(t(), String.t()) ::
  {:ok, String.t()} | {:error, Kameleoon.Error.t()}

get_remote_data(client, key)

@spec get_remote_data(t(), String.t()) ::
  {:ok, String.t()} | {:error, Kameleoon.Error.t()}

get_remote_visitor_data(client, visitor_code, opts \\ [])

@spec get_remote_visitor_data(t(), String.t(), keyword()) ::
  :ok | {:error, Kameleoon.Error.t()}

get_variation(client, visitor_code, feature_key, opts \\ [])

@spec get_variation(t(), String.t(), String.t(), keyword()) ::
  {:ok, Kameleoon.Types.Variation.t()} | {:error, Kameleoon.Error.t()}

get_variations(client, visitor_code, opts \\ [])

@spec get_variations(t(), String.t(), keyword()) ::
  {:ok, %{required(String.t()) => Kameleoon.Types.Variation.t()}}
  | {:error, Kameleoon.Error.t()}

get_visitor_code(client, cookies, default_visitor_code \\ nil)

@spec get_visitor_code(t(), Kameleoon.CookieAccessor.t(), String.t() | nil) ::
  {:ok, String.t(), Kameleoon.CookieAccessor.state()}
  | {:error, Kameleoon.Error.t()}

get_visitor_warehouse_audience(client, visitor_code, custom_data_index, opts \\ [])

@spec get_visitor_warehouse_audience(t(), String.t(), non_neg_integer(), keyword()) ::
  :ok | {:error, Kameleoon.Error.t()}

initialize(client, opts \\ [])

@spec initialize(
  t(),
  keyword()
) :: :ok | {:error, Kameleoon.Error.t()}

is_feature_active?(client, visitor_code, feature_key, opts \\ [])

@spec is_feature_active?(t(), String.t(), String.t(), keyword()) ::
  {:ok, boolean()} | {:error, Kameleoon.Error.t()}

is_ready?(client)

@spec is_ready?(t()) :: {:ok, boolean()} | {:error, Kameleoon.Error.t()}

on_datafile_update(client, fun)

@spec on_datafile_update(t(), (-> any()) | nil) :: :ok | {:error, Kameleoon.Error.t()}

set_forced_variation(client, visitor_code, experiment_id, variation_key \\ nil, opts \\ [])

@spec set_forced_variation(
  t(),
  String.t(),
  non_neg_integer(),
  String.t() | nil,
  keyword()
) ::
  :ok | {:error, Kameleoon.Error.t()}

track_conversion(client, visitor_code, goal_id, opts \\ [])

@spec track_conversion(t(), String.t(), non_neg_integer(), keyword()) ::
  :ok | {:error, Kameleoon.Error.t()}