Segmentry.Analytics (segmentry v0.3.0)

Copy Markdown View Source

The Segmentry.Analytics module is the easiest way to send Segment events. It exposes convenience functions for track, identify, screen, alias, group, and page calls.

Functions delegate to the configured service implementation, which can be changed with:

config :segmentry, sender_impl: Segmentry.Analytics.Batcher

By default Segmentry.Analytics.Batcher is used to send events in a batch periodically.

Summary

Types

segment_id()

@type segment_id() :: String.t() | integer()

Functions

alias(a)

@spec alias(Segmentry.Analytics.Alias.t()) :: :ok

alias(user_id, previous_id, context \\ Context.new())

call(event)

@spec call(Segmentry.segment_event()) :: :ok

group(g)

@spec group(Segmentry.Analytics.Group.t()) :: :ok

group(user_id, group_id, traits \\ %{}, context \\ Context.new())

@spec group(segment_id(), segment_id(), map(), Segmentry.Analytics.Context.t()) :: :ok

identify(i)

@spec identify(Segmentry.Analytics.Identify.t()) :: :ok

identify(user_id, traits \\ %{}, context \\ Context.new())

@spec identify(segment_id(), map(), Segmentry.Analytics.Context.t()) :: :ok

page(p)

@spec page(Segmentry.Analytics.Page.t()) :: :ok

page(user_id, page_name \\ "", properties \\ %{}, context \\ Context.new())

@spec page(segment_id(), String.t(), map(), Segmentry.Analytics.Context.t()) :: :ok

screen(s)

@spec screen(Segmentry.Analytics.Screen.t()) :: :ok

screen(user_id, screen_name \\ "", properties \\ %{}, context \\ Context.new())

@spec screen(segment_id(), String.t(), map(), Segmentry.Analytics.Context.t()) :: :ok

send(event)

@spec send(Segmentry.segment_event()) :: :ok

Send any Segment event struct (Track, Identify, Screen, Alias, Group, Page).

track(t)

@spec track(Segmentry.Analytics.Track.t()) :: :ok

track(user_id, event_name, properties \\ %{}, context \\ Context.new())

@spec track(segment_id(), String.t(), map(), Segmentry.Analytics.Context.t()) :: :ok