IT story

Google Analytics-한 페이지에 여러 추적기 (쿠키 충돌)

hot-time 2021. 1. 7. 20:03
반응형

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

반응형