Skip to content
Idiomatic Clojure wrapper for the Segment.io 2.x Java client
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
docs
src/circleci/analytics_clj
test/circleci/analytics_clj
.gitignore
CHANGELOG.md
LICENSE
README.md
project.clj

README.md

analytics-clj

Idiomatic Clojure wrapper for the Segment.io 2.x Java client

For full documentation on the Segment.io 2.x Java client, see analytics-java.

Build Status

CircleCI

Installation

[circleci/analytics-clj "0.8.0"]

Usage

View the full API.

Initialize an analytics client

(use '[circleci.analytics-clj.core])
(def analytics (initialize "<writeKey>"))

With logging:

(defn logger []
  (reify com.segment.analytics.Log
    (print [this level format args]
      (println (str (java.util.Date.) "\t" level "\t" args)))
    (print [this level error format args]
      (println error))))

(def analytics (initialize "<writeKey>" {:log (logger)}))

Messages

All of the message types can take options. See Spec: Common Fields for a list of common fields between all message types.

Identify

(identify analytics "user-id")

With traits:

(identify analytics "user-id" {:email "bob@acme.com"})

Track

(track analytics "user-id" "signup")

With properties:

(track analytics "user-id" "signup" {:company "Acme Inc."})

A full example:

(track analytics (:id user) "signup" {:company "Acme Inc."} {:context {:language "en-us"}
                                                             :integrations {"AdRoll" false}
                                                             :integration-options {"Amplitude" {:session-id (:id session)}}})

Screen

(screen analytics "1234" "Login Screen")

With properties:

(screen analytics "1234" "Login Screen" {:path "/users/login"})

Page

(page analytics "1234" "Login Page")

With properties:

(page analytics "1234" "Login Page" {:path "/users/login"})

Group

(group analytics "1234" "group-5678")

With traits:

(group analytics "1234" "group-5678" {:name "Segment"})

Alias

(alias analytics "anonymous_user" "5678")

Did we miss something?

We provided a top level enqueue function to allow you to do the following:

(enqueue analytics (doto (YourMessageType/builder)
                         (.userId "user-id")
                         (.properties {"company" "Acme Inc."})))

License

Copyright © 2019 CircleCI

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.

You can’t perform that action at this time.