Google Analytics-한 페이지에 여러 추적기 (쿠키 충돌)
나는 다른 사람들의 웹 사이트 (위젯의 일종)에 내장되어야하는 웹 애플리케이션을 작성하고 있습니다. Google Analytics를 사용하여 임베딩 웹 사이트에서 내 스크립트의 모든 인스턴스를 방문하는 모든 사람들을 추적하고 있습니다. 문제는 해당 웹 사이트의 자체 Google Analytics 계정을 방해하지 않도록 사용 방법을 모른다는 것입니다. 추적기 변수를 네임 스페이스에 저장하고 있으므로 그렇게해야한다고 생각했지만 GA가 쿠키 (__utma, __utmz 등)에 설정을 저장하고 두 추적기에서 해당 쿠키를 사용한다는 사실을 깨닫지 못했습니다. 같은 페이지에 두 개가 있습니다. 예를 들어 _setVar를 사용하여 Google Analytics에 일종의 사용자 정의 변수를 저장하고 임베딩 사이트가 동일한 작업을 수행하면 서로의 값을 덮어 씁니다.
물론 Google이 쿠키 이름을 사용자 지정 이름으로 변경하는 방법을 제공하면 가장 쉬울 수 있지만 방법을 찾을 수 없습니다. 쿠키 도메인 또는 경로를 사용하여 별도의 쿠키를 강제하는 것에 대해 생각했지만 도메인 또는 경로를 실제 도메인 / 경로가 아닌 다른 것으로 설정하면 다시로드 한 후 페이지에서 쿠키를 읽을 수 없기 때문에 작동하지 않습니다. ..
한 페이지에 두 개의 추적기를두고 서로의 설정을 덮어 쓰지 않도록 별도의 쿠키를 사용하는 방법을 아는 사람이 있습니까?
또는 그것이 완전히 불가능하다면 GA와 유사한 기능을 가진 다른 분석 서비스가 있습니까? (이벤트 및 캠페인 추적과 같은 고급 기능이 있어야합니다 ...)
이제 새로운 비동기 추적 코드로 쉽게 만들 수 있습니다. :)
https://developers.google.com/analytics/devguides/collection/gajs/#MultipleCommands
웹 페이지에 Google 애널리틱스 추적 코드의 여러 인스턴스를 설치하여 계정의 여러 속성으로 데이터를 보낼 수 있습니다. https://support.google.com/analytics/answer/1032400?hl=ko
또는 창의력을 발휘하고 Google의 지침에 따라 다음을 수행 할 수 있습니다. https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#multipletrackers
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXX-Y', 'auto');
ga('create', 'UA-XXXX-Y', 'auto', {'name': 'newTracker'});
ga('send', 'pageview');
ga('newTracker.send', 'pageview');
</script>
Google Analytics는 동일한 페이지에있는 여러 추적기와 원활하게 작동하므로 다른 쿠키 이름을 사용할 필요가 없습니다. Google Analytics-여러 계정에 대한 다중 추적기 질문에 대한 답변을 참조하십시오 . .
최신 정보
여러 추적기 를 사용 하는 것은 작동 방법이지만 몇 가지 함정이 있습니다. 그 중 하나, 즉 각각에 대해 서로 다른 사용자 세분화를 적용 할 수 없습니다. John Henson은 GA가 다른 쿠키를 사용하도록 강제 하는 해결 방법을 보여줍니다 . 확인해야 할 수도 있습니다.
누군가 여전히이 문제가 있고 쉽게 붙여 넣기를 원하는 경우, 내 문제는 Google 추적을 사용하고있을 수있는 다른 사람의 페이지에 추가되는 내 코드에 대해 내 Google 추적을 사용하는 것입니다. 나는 이것을 테스트하고 예상대로 작동하는지 확인했습니다.
var _gaq = _gaq || [];
_gaq.push(['some_unique_name._setAccount', 'UA-xxxxxxxx-1']);
_gaq.push(['some_unique_name._trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
이벤트도 사용하고 있습니다
_gaq.push(['some_unique_name._trackEvent', 'Event Category', 'Event Action', 'Event Label']);
누구든지 문제를 발견하면 알려주세요.
Török에 의해 나열된 문서 에 따르면 정답은 _setCookiePath 를 사용 하는 것 같습니다 . 이로 인해 각 추적기는 완전히 다른 쿠키를 사용합니다.
웹 사이트의 예제 코드 :
<script type=”text/javascript”>
var pageTracker = _gat._getTracker(”UA-11111-1″);
pageTracker._setDomainName(’domain.com’);
pageTracker._setCookiePath(’/subdirectory/’);
pageTracker._trackPageview();
var otherTracker = _gat._getTracker(”UA-22222-1″);
otherTracker._setDomainName(’domain.com’);
otherTracker._trackPageview();
</script>
한 도메인에서 다른 도메인으로 링크 할 때 다른 도메인에 게시하는 모든 링크는 다음과 같아야합니다.
<a href="pageTracker._linkByPost('otherdomain.com/petStoreCart/legalTerms.php');"
이렇게하면 위 스크립트에서 쿠키 ( 소스 ) 를 설정하는 데 사용할 Google 애널리틱스 특정 쿼리 문자열 값이 추가됩니다 .
Google에서이 관행에 대해 권장하는 것 같습니다.
단일 웹 페이지에 Google 웹 로그 분석 추적 코드의 여러 인스턴스를 설치하는 것은 지원되는 구현이 아닙니다. 하나를 제외한 모든 인스턴스를 제거하고 추적하려는 모든 페이지에 올바른 프로필의 코드가 설치되어 있는지 확인하는 것이 좋습니다.
https://support.google.com/analytics/bin/answer.py?hl=en-GB&answer=1032400
I have used this structure on our site and clients sites and it works like a charm...
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script> <script type="text/javascript">
try {
//Original tracking
var pageTracker_ORIG = _gat._getTracker("UA-XXXXXXX-1");
pageTracker_ORIG._setDomainName('.sleepinggiantmedia.co.uk');
pageTracker_ORIG._trackPageview();
//New Analytics tag
var pageTracker_SGM = _gat._getTracker("UA-XXXXXXX-1");
pageTracker_SGM._setDomainName('.sleepinggiantmedia.co.uk');
pageTracker_SGM._trackPageview();
} catch(err) {}
var otherTracker = _gat._getTracker(”UA-22222-1″);
otherTracker._setDomainName(’domain.com’);
otherTracker._trackPageview();
This person is having the same problem on the Google Analytics help fourm. I'd suggest taking a look at the thread. But regularly GA doesn't support multiple trackers.
I like Clicky myself, but it costs money.
ReferenceURL : https://stackoverflow.com/questions/1239042/google-analytics-multiple-trackers-on-one-page-cookie-conflict
'IT story' 카테고리의 다른 글
한 Git 저장소를 다른 저장소로 리베이스하는 방법은 무엇입니까? (0) | 2021.01.07 |
---|---|
이 정규식은 어떻게 소수를 찾습니까? (0) | 2021.01.07 |
Visual Studio 디버거에서 하나의 프로세스 분리 (0) | 2021.01.07 |
Apt-Get 설치 설치의 Jenkins 사용자 (0) | 2021.01.07 |
jQuery Mobile이 동적으로 삽입 된 콘텐츠의 스타일 / 테마를 재평가하도록 강제 (0) | 2021.01.07 |