Skip to content

barnebys/analytics-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Latest Stable Version Build Status

Barnebys Analytics

This is an helper for Node to build tracking URL for Barnebys Analytics with ease.

Install

yarn install @barnebys/analytics-node

Track clicks

// Create the URL Builder with your tracking domain & secret
const { UrlBuilder } = require("@barnebys/analytics-node");
const urlBuilder = new UrlBuilder("analytics.mydomain.sh", "secret");

urlBuilder.programId = "123";
urlBuilder.kind = "click";
urlBuilder.url = "http://www.barnebys.com/";
urlBuilder.dimension1 = "a";
urlBuilder.dimension2 = "b";
urlBuilder.dimension3 = "c";

urlBuilder.isSponsored = <boolean>;
urlBuilder.dealType = <string>;
urlBuilder.source = <string>; // e.g. "searchalert", "widget", "facebook", "google"
urlBuilder.medium = <string>; // e.g. "paid_social", "email" To be discussed, just a suggestion and not used yet
urlBuilder.fpVerified = <boolean>; // Indicates if the fingerprint has been verified

// Get the signed tracking URL
const url = urlBuilder.createURL()

Track leads

const { UrlBuilder } = require("@barnebys/analytics-node");
const urlBuilder = new UrlBuilder("analytics.mydomain.sh", "secret");
...
urlBuilder.affiliate = true;
...

Impressions

Generate the URL from PHP and use a lazy loader that loads the tracking pixel when visible in the browser window. If you do not have a compatible lazy loader we recommend using this lazy loader which is written in vanilla js.

For most compatibility - place the script below before your </body> tag.

<script type="text/javascript">
    (function(w, d){
        var b = d.getElementsByTagName('body')[0];
        var s = d.createElement("script"); s.async = true;
        var v = !("IntersectionObserver" in w) ? "8.5.2" : "10.3.5";
        s.src = "https://cdnjs.cloudflare.com/ajax/libs/vanilla-lazyload/" + v + "/lazyload.min.js";
        w.lazyLoadOptions = {
            threshold: 0
        };
        b.appendChild(s);
    }(window, document));
</script>

Generating impression URL

// Create the URL Builder with your tracking domain & secret
const { UrlBuilder } = require("analytics-node");
const urlBuilder = new UrlBuilder("analytics.mydomain.sh", "secret");

// Create the impression passing on UrlBuilder, program id and optional dimensions 1-3
const impression = new Impression(
    urlBuilder,
    "123",
    "a",
    "b",
    "c",
    "d",
    "e"
);


// Get the URL for the tracking pixel
const url = impression.url

// Or output image tag for lazy load
const tag = impression.image

About

NPM Library

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •