Mexpanel

July 8, 2019 ยท View on GitHub

API wrapper for Mixpanel

Installation

If available in Hex, the package can be installed by adding mexpanel to your list of dependencies in mix.exs:

def deps do
  [
    {:mexpanel, "~> 0.1.0"}
  ]
end

Usage

Mixpanel provides 2 endpoints: track and engage.

For both these endpoints, this library provides a struct with builder functions. The new function expects all mandatory parameters, additional properties can be set with functions

Track

alias Mexpanel.TrackRequest
track = TrackRequest.new("123", "user signed up", %{name: "Leif Gensert"})
          |> TrackRequest.time(DateTime.utc_now())
          |> TrackRequest.ip("144.10.58.141")
          |> TrackRequest.distinct_id("user:1")

Mexpanel.request(track)

Engage

For the engage endpoint you will need to specify an operation. See the official documentation for all available operations.

alias Mexpanel.EngageRequest
engage = EngageRequest.new("123", "user:1")
          |> EngageRequest.time(DateTime.utc_now())
          |> EngageRequest.ip("144.10.58.141")
          |> EngageRequest.set(%{name: "Leif Gensert"})

Mexpanel.request(engage)