Skip to content

Commit

Permalink
Add matomo tracking to genetics app (#4)
Browse files Browse the repository at this point in the history
  • Loading branch information
alepev authored Jul 5, 2023
1 parent eb52a35 commit b3bb5a8
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 1 deletion.
3 changes: 2 additions & 1 deletion apps/genetics/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@
<link rel="icon" type="image/png" href="/favicon.png" />
<link rel="shortcut icon" href="/favicon.png" />
<link rel="manifest" href="/manifest.json" />

<script src="/matomo/get_logged_in_user.js"></script>
<script src="/matomo/init_matomo.js"></script>
<title>Open Targets Genetics</title>
</head>
<body>
Expand Down
24 changes: 24 additions & 0 deletions apps/genetics/public/matomo/get_logged_in_user.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/**
Returns a promise of logged-in user id.
This function assumes response header contains 'user' entry.
*/
function getLoggedInUser() {
return new Promise(function(resolve, reject) {
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
if (this.readyState === this.HEADERS_RECEIVED) {
var user = request.getResponseHeader('user');
if (user != null) {
resolve(user);
} else {
reject();
}
}
};
request.onerror = function() {
reject();
};
request.open('HEAD', document.location, true);
request.send(null);
});
}
40 changes: 40 additions & 0 deletions apps/genetics/public/matomo/init_matomo.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
var _paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */

(function() {
function registerUserVisit() {
getLoggedInUser()
.then(function(user) {
_paq.push(['setUserId', user]);
})
.finally(function() {
_paq.push(['setCustomUrl', window.location.href]);
_paq.push(['setDocumentTitle', window.document.title]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
});
}
var pushState = history.pushState;
history.pushState = function() {
pushState.apply(history, arguments);
registerUserVisit();
};
registerUserVisit();
})();

(function() {
var u = 'DISABLED';
if (u === 'DISABLED') {
return
}
_paq.push(['setTrackerUrl', u + 'matomo.php']);
_paq.push(['setSiteId', '1']);
var d = document,
g = d.createElement('script'),
s = d.getElementsByTagName('script')[0];
g.type = 'text/javascript';
g.async = true;
g.defer = true;
g.src = u + 'matomo.js';
s.parentNode.insertBefore(g, s);
})();

0 comments on commit b3bb5a8

Please sign in to comment.