Introduction to JS Tracking Library

Data can be sent to Sherlock via a JavaScript tracking library.

The library has no dependencies. To include it in your site, simply add the following snippet:

<script type="text/javascript">
(function() {
  var sherlock = window.sherlock = window.sherlock || {q: []};
  var calls = ['load', 'identify', 'group', 'track'];
  for (var i = 0; i < calls.length; i++) (function(call) {
    sherlock[call] = function() { sherlock.q.push([call, arguments]); };
  })(calls[i]);
  var s = document.createElement('script'); s.src = 'https://cdn.sherlockscore.com/tracker.js'; s.async = true;
  var f = document.getElementsByTagName('script')[0]; f.parentNode.insertBefore(s, f);
})();
</script>

To use the library, you must first set your API key. For example, if your API key was f7d504aa5a384372ba30aa4e7db8d162, you would use the following JavaScript call:

sherlock.load("f7d504aa5a384372ba30aa4e7db8d162");

You should set up this Sherlock library in your top-level template; the same place you add the snippet:

<script type="text/javascript">
(function() {
  var sherlock = window.sherlock = window.sherlock || {q: []};
  var calls = ['load', 'identify', 'group', 'track'];
  for (var i = 0; i < calls.length; i++) (function(call) {
    sherlock[call] = function() { sherlock.q.push([call, arguments]); };
  })(calls[i]);
  var s = document.createElement('script'); s.src = 'https://cdn.sherlockscore.com/tracker.js'; s.async = true;
  var f = document.getElementsByTagName('script')[0]; f.parentNode.insertBefore(s, f);
})();
</script>
<script type="text/javascript">
  sherlock.load(apiKey);
</script>