This library provides an Elixir HTTP client for PostHog. See the repository for more information.
Installation
This library was built by the community and is not maintained by the PostHog core team.
The package can be installed by adding posthog
to your list of dependencies in mix.exs
:
def deps do[{:posthog, "~> 0.1"}]end
Configuration
config :posthog,api_url: "https://us.i.posthog.com",api_key: "<ph_project_api_key>"
Optionally, you can pass in a :json_library
key. The default JSON parser is Jason.
Capturing events
You can send custom events using capture
:
Posthog.capture("user_signed_up", %{distinct_id: distinct_id_of_the_user})
Tip: We recommend using a
[object] [verb]
format for your event names, where[object]
is the entity that the behavior relates to, and[verb]
is the behavior itself. For example,project created
,user signed up
, orinvite sent
.
Setting event properties
Optionally, you can also include additional information in the event by setting the properties value:
Posthog.capture("user_signed_up", %{distinct_id: distinct_id_of_the_user,properties: %{login_type: "email",is_free_trial: true}})
Batching events
To capture multiple events at once, use batch()
:
Posthog.batch([{"user_signed_up", [distinct_id: distinct_id_of_the_user], nil}])
Feature flags
PostHog's feature flags enable you to safely deploy and roll back new features.
Feature flags are not supported yet in our Elixir SDK. However, you can integrate them into your project by using the PostHog API.
Thanks
Thanks to nkezhaya for contributing this library.