cupertino
v1.6.2
Published
Simple library for cross-domain user identification
Downloads
7
Readme
Cupertino
Library for generating a unique user ID for site visitors, enabling easy cross-domain user identification. The tool will generate the same user id for a given visitor based on their browser & connection characteristics. This tool aims to provide developers & marketers a reliable, deterministic identifier in order to mitigate noise in user analytics and enable a full picture of user activity across all web domains. This tool does not rely on 🍪's.
<script src="https://unpkg.com/cupertino/cupertino.min.js" data-cupertino-event="cupertino"></script>
<script>
window.addEventListener("cupertino", function(evt) {
loadTrackingTools(evt.detail.cupertino);
});
</script>
Installation
Include on webpage using unpkg
<script src="https://unpkg.com/cupertino/cupertino.min.js"></script>
Configuration Options
Configuration options are declared in html data attributes
<script src="https://unpkg.com/cupertino/cupertino.min.js"
data-cupertino-event="window-event-key"
data-cupertino-storage="localstorage-key"
data-cupertino-global="global-variable"
data-cupertino-defer="true"></script>
| parameter | details | required | default |
|-----------|---------------------------------------------------|----------|---------|
| data-cupertino-event | The user identifier will be available in localStorage by referencing this key and will be available in the cupertino event handler by referencing event.detail.<data-cupertino-event>
(see code example above) | no | cupertino
|
| data-cupertino-global | This will define the visitor identifier as a global variable|no|false
|
| data-cupertino-storage | Specific the localStorage key to persist the uid
. By defauilt, localStorage is off. | no | false
|
| data-cupertino-defer | Setting this to true
will prevent Cupertino from generating an identifier automatically and will instead expose a global function Cupertino
that can be called to return the identifier | no | false
|
Features
- Uses ipify, an Open Source IP Lookup API to enhance the entropy when generating the
uid
hash. This requires a network request - Includes local timezone stamp to enhance entropy
- Uses base 64 encoded canvas rendering to enhance entropy
- Uses localStorage to persist generated
uid
locally to avoid regenerating the hash each page-load, which negates the IP lookup network request and the hash computation - < 3 kb brotli-compressed over the wire via unpkg
- Uses MurmurHash3
Demoing the tool
Clone the repository and run npm run demo
which will launch a simple webserver at http://localhost:3000/
Or, just observe that your User ID is the same between this and that 😎