지금이 문제에 대한 좋은 해결책은 없습니다. 가장 좋은 방법은 시간 초과를 추가하여 리디렉션을 지연시키는 것입니다. 현재 _trackPageview에 대한 콜백이 없습니다. 반환하면 추적이 시작되었음을 의미하지만 __utm.gif 요청이 완료 될 때까지 페이지 뷰를 성공적으로 등록했음을 보장하지는 않습니다.
1 초 제한 시간이 너무 길 수 있습니다. 나는 보통 200-400ms 정도의 타임 아웃을 유지한다.
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-X']);
_gaq.push(['_trackPageview']);
_gaq.push(function() {
setTimeout(function(){
window.location.href = newUrl;
}, 200);
});
편집 : 나는 원래 처음이 답변을 게시하고 그 이후 Google 웹 로그 분석은 먼 길을왔다 이후 2 년이되었습니다
. 당신이 analytics.js를 사용하는 범용 웹 로그 분석으로 마이그레이션 한 경우에 해당 될 것입니다
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-X']);
_gaq.push(['_set','hitCallback',function(){
window.location.href = newUrl;
}]);
_gaq.push(['_trackPageview']);
그리고 :
지금이 작업을 수행 할 수있는 적절한 방법이
ga('create', 'UA-XXXXXXX-X')
ga('send', 'pageview', {
'hitCallback': function() {
window.location.href = newUrl;
}
});
편집 2
Google 애널리틱스 코드가 차단되거나 변경된 경우에도 코드가 실행되도록하기위한보다 적절한 방법입니다. 확장 또는 adBlocker에 의해.
var t = undefined;
var myCode = function(){
window.clearTimeout(t);
t = undefined;
window.location.href = newUrl;
};
t = setTimeout(myCode, 3000);
ga('create', 'UA-XXXXXXX-X')
ga('send', 'pageview', {
'hitCallback': myCode
});
는'window.location.href = url' 대신'윈도우를 사용하는 것을 시도했다 http://stackoverflow.com/questions/8147065/google-analytics-async-events-tracking-callback –
참조하십시오. location.replace (url)'? – Eduardo
window.location.href = url :( – Amir