mirror of
https://github.com/umami-software/umami.git
synced 2025-12-06 01:18:00 +01:00
collect pagetitle, update subdivision2 data type
This commit is contained in:
parent
55a586fe27
commit
6c302a7325
8 changed files with 3511 additions and 12 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue