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
// 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