Forum Discussion
AndreLung-feb8e
2 years agoCommunity Member
I did some tinkering and I think I figured it out. Basically I watch for title changes, which will happen when you open a new section in rise.
Any comments on this are highly appreciated.
<!-- (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
// TODO enter your personal gtag-id here and in the second line
gtag('config', 'G-XXXXXXXXX');
//// how to track page views in rise
// 0) save the old title for later comparison
let oldTitle = document.title;
// 1) select the target node (title changes)
let target = document.querySelector('title');
// 2) create an observer instance; this code will execute when a change is detected
let observer = new MutationObserver(function(mutations) {
if (oldTitle != document.title) {
// console.log("oldTitle: " + oldTitle);
// console.log("title: " + document.title);
// console.log("mutation: " + mutations[0].target.text);
// reset the comparison to the current title
oldTitle = document.title;
// send change event to google analytics
gtag('event', 'page_view', {'page_title': document.title, 'page_location': location.href});
}
});
// 3) configuration of the observer:
let config = { subtree: true, characterData: true, childList: true };
// 4) pass in the target node, as well as the observer options
observer.observe(target, config);
</script>