View Source Mixpanel

Module Version Hex Docs Total Downloads License Last Updated CI

Elixir client for the Mixpanel API.

Installation

The package can be installed as:

  1. Add mixpanel_api_ex to your list of dependencies in mix.exs:
  def deps do
    [{:mixpanel_api_ex, "~> 1.1.1"}]
  end
  1. Ensure mixpanel_api_ex is started before your application:
  def application do
    [applications: [:mixpanel_api_ex, :your_app]]
  end
  1. Ensure your Project Token was placed in config file:

    config :mixpanel_api_ex, :config,
    project_token: "<Put Project Token here>",
    active: true
  2. Disable sending requests to API for tests:

    config :mixpanel_api_ex, :config,
     project_token: "<Put Project Token here>",
     active: false

EU Data Residency

  config :mixpanel_api_ex, :config,
      base_url: "https://api-eu.mixpanel.com"

Supported HTTP clients

At the moment httpc and hackney are supported. httpc is default option. To switch to hackney specify following in the config:

  config :mixpanel_api_ex, :http_adapter, Mixpanel.HTTP.Hackney

Usage

  1. Track events with Mixpanel.track/3 function:
  iex> Mixpanel.track("Signed up", %{"Referred By" => "friend"}, distinct_id: "13793")
  :ok
  iex> Mixpanel.track("Level Complete", %{"Level Number" => 9}, distinct_id: "13793", time: 1358208000, ip: "203.0.113.9")
  :ok
  1. Track profile updates with Mixpanel.engage/4 function:
  iex> Mixpanel.engage("13793", "$set", %{"Address" => "1313 Mockingbird Lane"}, ip: "123.123.123.123")
  :ok
  iex> Mixpanel.engage("13793", "$set", %{"Birthday" => "1948-01-01"}, ip: "123.123.123.123")
  :ok
  1. Mixpanel.engage/2 works with batches:
  iex> Mixpanel.engage([{"13793", "$set", %{"Address" => "1313 Mockingbird Lane"}}, {"13793", "$set", %{"Birthday" => "1948-01-01"}}], ip: "123.123.123.123")
  :ok
  1. Mixpanel.create_alias/2 create an alias for a district ID, merging two profiles:
  iex> Mixpanel.create_alias("13793", "13794")
  :ok