A tiny utility for working with anonymous ids
on the server and in the browser.
Install with npm:
npm install --save anonymous-id
Or with yarn:
yarn add anonymous-id
import anonymousId from 'anonymous-id'
anonymousId() // generate or pull id from cookie/localStorage
anonymousId('exampleId') // call the function with string or number to set as id, otherwise pass in options
import { get, set } from 'anonymous-id'
set({ key: 'my_anon_id' }) // ajs-C1E42A94-FCE2-4851-87DD-695F576C5368 -> cookie or localStorage
get({ key: 'my_anon_id' }) // cookie or localStorage -> ajs-C1E42A94-FCE2-4851-87DD-695F576C5368
These are the base options that can be passed in to both get and set functions:
anonymousId({
debug: true, // log operations to stdout
preset: String, // prefix/generateId/stores to use
cookie: String, // cookie string to use (browser default is document.cookie)
localStorage: Object // Storage object to use (browser default is window.localStorage)
})
For setting anonymous ids, you can specify an id
field which will pass the options to setAnonymousId()
. If you don't set the id
option, then getAnonymousId()
will be called with the options:
const id = await promptEmailFromUser()
anonymousId({ id })
And for getting anonymous ids, you can pass control if the preset tries to persist data:
console.log(document.cookie) // 'a=true'
const { cookie } = anonymousId({ persist: false })
console.log(document.cookie) // 'a=true'
console.log(cookie) // 'a=true; ajs_anonymous_id=ajs-B31C9E91-D741-4146-913B-0E80199648D0'
All contributions are super welcome! anonymous-id
is MIT-licensed.