README.md

# Mixpanel

[![Build Status](https://travis-ci.org/asakura/mixpanel_api_ex.svg?branch=master)](https://travis-ci.org/asakura/mixpanel_api_ex)
[![Hex.pm](https://img.shields.io/hexpm/v/mixpanel_api_ex.svg?style=flat-square)](https://hex.pm/packages/mixpanel_api_ex)
[![Hex.pm](https://img.shields.io/hexpm/dt/mixpanel_api_ex.svg?style=flat-square)](https://hex.pm/packages/mixpanel_api_ex)
[![Inline docs](http://inch-ci.org/github/asakura/mixpanel_api_ex.svg?branch=master&style=flat)](http://inch-ci.org/github/asakura/mixpanel_api_ex)

Elixir client for the Mixpanel API.

## Installation

The package can be installed as:

  1. Add mixpanel to your list of dependencies in `mix.exs`:

        def deps do
          [{:mixpanel, "~> 0.8.0"}]
        end

  2. Ensure mixpanel is started before your application:

        def application do
          [applications: [:mixpanel]]
        end

  3. Ensure your mixpanel token was placed in config file:
  
        config :mixpanel, token: "<Put API token here>"

## 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
        
  2. 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", %{"Address" => "1313 Mockingbird Lane", "Birthday" => "1948-01-01"}, ip: "123.123.123.123")
        :ok