Как реализовать аналитику в Facebook с Barba.js
Я использую эту библиотеку barba.js и пытаюсь реализовать аналитику Google и Facebook.
Я реализовал это, как упомянуто в официальной документации, но так как barba.js не перезагружает верхний и нижний колонтитулы снова и снова, а просто перезагружает barba-container
div, который заставлял Google Analytics записывать только просмотр страницы на первой странице, куда попадает пользователь, а не на другие страницы.
Эта проблема была решена путем вызова в onEnterCompleted
Крюк взглядов и его решены.
Но проблема, с которой я сталкиваюсь сейчас, - это аналитика в Facebook, которая упоминается ниже.
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxxxxxxxxxx',
cookie : true,
xfbml : true,
version : 'v3.3'
});
FB.AppEvents.logPageView();
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "https://connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
Если я возьму этот код в представлении Barba.js onEnterCompleted
хук, это будет вспоминаться снова и снова, но я не уверен, что это лучшая практика или нет, или это будет работать так, как ожидалось.
Если кто-то реализовал аналитику в Facebook с помощью barba.js, поделитесь своим примером.
Большое спасибо!
РЕДАКТИРОВАТЬ: Я реализовал Google Analytics таким образом с barba.js после просмотра этой ссылки.
function analytics() {
var path = (window.location.href).replace(window.location.origin, '').toLowerCase();
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'UA-xxxxxxxx-x', {
'page_path': path
});
console.log('view sent', path);
}
Я создал эту функцию и вызвал ее onEnterCompleted
который решил проблему с Google Analytics