View Source Rudder
Elixir package for interacting with RudderStack HTTP API
installation
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
Create a client
client = Rudder.Client.new(write_key: "abc123", data_plane_url: "https://example.com")
identify
Identify
Rudder.identify(client, %Rudder.Identity{
user_id: "123",
context: %{ip: '10.81.20.10'},
traits: %{email: user.email }
})
See Docs
track
Track
Rudder.track(client, %Rudder.Event{
user_id: "123",
name: "Item Sold",
properties: %{revenue: 9.95, shipping: 'Free'}
})
See Docs
page
Page
Rudder.page(client, %Rudder.Page{
user_id: "123",
name: "Page View",
properties: %{title: "Home", path: "/"}
})
See Docs
screen
Screen
Rudder.screen(client, %Rudder.Screen{
user_id: "123",
name: "Screen View",
properties: %{prop1: "5"}
})
See Docs
group
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
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
Merge
Rudder.merge(client, %Rudder.Merge{
user_id: "123",
merge_properties: [
%{type: "email", value: "someone@example.com"},
%{type: "mobile", value: "+15555552263"}
})
See Docs
batch
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.