# segmentry v0.3.0 - Table of Contents

> Elixir client for Segment, built on Req

## Modules

- [Segmentry](Segmentry.md): 
- [Segmentry.Analytics](Segmentry.Analytics.md): 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.
- [Segmentry.Analytics.Batcher](Segmentry.Analytics.Batcher.md): Default service implementation. Uses the
[Segment Batch HTTP API](https://segment.com/docs/sources/server/http/#batch)
to put events in a FIFO queue and send on a regular basis.
- [Segmentry.Analytics.Sender](Segmentry.Analytics.Sender.md): Alternative service implementation that sends every event as it is called. The HTTP call
is made in a `Task.start_link/1` so it does not block the GenServer; ordering is **not** guaranteed.
- [Segmentry.Http](Segmentry.Http.md): Underlying implementation for making calls to the Segment HTTP API, built on `Req`.
- [Segmentry.Http.Noop](Segmentry.Http.Noop.md): No-op `Req` adapter used when `:send_to_http` is set to `false`. Logs the
request at `:debug` level and replies with `200 OK` without making any network
call.

- Event structs
  - [Segmentry.Analytics.Alias](Segmentry.Analytics.Alias.md): An [`alias`](https://segment.com/docs/connections/spec/alias/) event — merges
two user identities by associating `userId` with a `previousId`.

  - [Segmentry.Analytics.Context](Segmentry.Analytics.Context.md): Shared [context](https://segment.com/docs/connections/spec/common/#context)
attached to an event — library info, IP, locale, app, device, and so on.
  - [Segmentry.Analytics.Group](Segmentry.Analytics.Group.md): A [`group`](https://segment.com/docs/connections/spec/group/) event —
associates a user with a `groupId` (account/organization) and its `traits`.

  - [Segmentry.Analytics.Identify](Segmentry.Analytics.Identify.md): An [`identify`](https://segment.com/docs/connections/spec/identify/) event —
ties a user to their `traits` (name, email, plan, etc.).

  - [Segmentry.Analytics.Page](Segmentry.Analytics.Page.md): A [`page`](https://segment.com/docs/connections/spec/page/) event — records a
web page view, named by `name`, with optional `properties`.

  - [Segmentry.Analytics.Screen](Segmentry.Analytics.Screen.md): A [`screen`](https://segment.com/docs/connections/spec/screen/) event — the
mobile equivalent of `Segmentry.Analytics.Page`, recording a screen view.

  - [Segmentry.Analytics.Track](Segmentry.Analytics.Track.md): A [`track`](https://segment.com/docs/connections/spec/track/) event — records
an action a user performed, named by `event`, with optional `properties`.

