collect pagetitle, update subdivision2 data type

This commit is contained in:
Francis Cao 2023-02-28 17:40:18 -08:00
parent 55a586fe27
commit 6c302a7325
8 changed files with 3511 additions and 12 deletions

View file

@ -47,6 +47,7 @@
(dnt && doNotTrack()) ||
(domain && !domains.includes(hostname));
const tracker_delay_duration = 300;
const _data = 'data-';
const _false = 'false';
const attr = currentScript.getAttribute.bind(currentScript);
@ -68,6 +69,7 @@
let listeners = {};
let currentUrl = `${pathname}${search}`;
let currentRef = document.referrer;
let currentPageTitle = document.title;
let cache;
/* Collect metrics */
@ -92,22 +94,35 @@
.then(text => (cache = text));
};
const trackView = (url = currentUrl, referrer = currentRef, websiteId = website) =>
const trackView = (
url = currentUrl,
referrer = currentRef,
websiteId = website,
pageTitle = currentPageTitle,
) =>
collect(
'pageview',
assign(getPayload(), {
website: websiteId,
url,
referrer,
pageTitle,
}),
);
const trackEvent = (eventName, eventData, url = currentUrl, websiteId = website) =>
const trackEvent = (
eventName,
eventData,
url = currentUrl,
websiteId = website,
pageTitle = currentPageTitle,
) =>
collect(
'event',
assign(getPayload(), {
website: websiteId,
url,
pageTitle,
eventName: eventName,
eventData: eventData,
}),
@ -162,6 +177,7 @@
const handlePush = (state, title, url) => {
if (!url) return;
observeTitle();
currentRef = currentUrl;
const newUrl = url.toString();
@ -172,7 +188,7 @@
}
if (currentUrl !== currentRef) {
trackView();
setTimeout(() => trackView(), tracker_delay_duration);
}
};
@ -189,6 +205,19 @@
observer.observe(document, { childList: true, subtree: true });
};
const observeTitle = () => {
const monitorMutate = mutations => {
currentPageTitle = mutations[0].target.text;
};
const observer = new MutationObserver(monitorMutate);
observer.observe(document.querySelector('title'), {
subtree: true,
characterData: true,
childList: true,
});
};
/* Global */
if (!window.umami) {