1.6.2 • Published 2 years ago

cupertino v1.6.2

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

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>
parameterdetailsrequireddefault
data-cupertino-eventThe 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)nocupertino
data-cupertino-globalThis will define the visitor identifier as a global variablenofalse
data-cupertino-storageSpecific the localStorage key to persist the uid. By defauilt, localStorage is off.nofalse
data-cupertino-deferSetting 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 identifiernofalse

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 😎

1.2.0

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

1.5.4

2 years ago

1.6.2

2 years ago

1.5.3

2 years ago

1.6.1

2 years ago

1.5.2

2 years ago

1.6.0

2 years ago

1.5.1

2 years ago

1.4.2

2 years ago

1.5.0

2 years ago

1.4.1

2 years ago

1.3.2

2 years ago

1.4.0

2 years ago

1.3.1

2 years ago

1.3.0

2 years ago

1.1.2

2 years ago

0.0.1

4 years ago