wecounsel / rudder

A RudderStack Client for Elixir

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rudder

Elixir package for interacting with RudderStack HTTP API

Installation

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

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

Create a client

client = Rudder.Client.new(write_key: "abc123", data_plane_url: "https://example.com")

Identify

Rudder.identify(client, %Rudder.Identity{
  user_id: "123",
  context: %{ip: '10.81.20.10'},
  traits: %{email: user.email }
})

See Docs

Track

Rudder.track(client, %Rudder.Event{
  user_id: "123",
  name: "Item Sold",
  properties: %{revenue: 9.95, shipping: 'Free'}
})

See Docs

Page

Rudder.page(client, %Rudder.Page{
  user_id: "123",
  name: "Page View",
  properties: %{title: "Home", path: "/"}
})

See Docs

Screen

Rudder.screen(client, %Rudder.Screen{
  user_id: "123",
  name: "Screen View",
  properties: %{prop1: "5"}
})

See Docs

Group

Rudder.group(client, %Rudder.group{
  user_id: "123",
  group_id: "group-a",
  traits: %{
    name: "Company",
    industry: "Industry",
    employees: 123
  },
  context: %{
    ip: "14.5.67.21"
  }
})

See Docs

Alias

Rudder.alias(client, %Rudder.Alias{
  user_id: "123",
  previous_id: "456",
  context: %{
    traits: %{
      trait1: "new-val"
    },
    ip: "14.5.67.21"
  }
})

See Docs

Merge

Rudder.merge(client, %Rudder.Merge{
  user_id: "123",
  merge_properties: [
    %{type: "email", value: "someone@example.com"},
    %{type: "mobile", value: "+15555552263"}
})

See Docs

Batch

Rudder.batch(client, %Rudder.Batch{
  items: [
    %Rudder.Identity{
      user_id: "123",
      context: %{ip: '10.81.20.10'},
      traits: %{email: user.email }
    },
    %Rudder.Page{
      user_id: "123",
      name: "Page View",
      properties: %{title: "Home", path: "/"}
    }
  ]
)

See Docs

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/rudder.

About

A RudderStack Client for Elixir

License:MIT License


Languages

Language:Elixir 100.0%