Google Analytics의 개발 작업을 조회수로 삼는 방법이 있습니까?


151

Google Analytics를 사용할 수 있도록 페이지 하단에 필요한 JavaScript를 추가했습니다. 유일한 문제는 그것이 모든 개발 작업을 히트로 간주한다는 것입니다. 아마 그 페이지의 일부를 하루에 백 번 볼 때 내 독서가 실제로 왜곡 될 것입니다. 특정 IP 주소에서 끄는 방법이 있습니까, 아니면 빌드 프로세스에 빌드해야하므로 배포를 위해 빌드 할 때만 추가됩니까?


6
어떤 언어 / 기술을 개발하고 있습니까? 호스트 이름 = 127.0.0.1 또는 localhost (또는 로컬 인스턴스가 무엇이든) 인 경우 분석 스크립트 블록을 표시하지 않는 작업을 수행 할 수 있기 때문 입니다. 서버 측 코드 한 줄 ...이어야한다
davewasthere

4
왜 누군가가 이것을 슈퍼 유저에게 옮기고 싶어하는지 모르겠습니다. 그것은 분명히 프로그래밍 / 개발 질문입니다.
Thomas Owens

asp.net, vs2005를 사용하고 있으며 웹 프로젝트입니다.
uriDium

umatrix 또는 uBlock 과 같은 스크립트 차단기로 사용할 수 있습니다 . Google 분석 스크립트를 포함한 모든 광고 스크립트를 차단합니다.
사이먼

답변:


102

예, 웹 로그 분석 설정으로 이동하여 사이트를 수정하고 + 필터 추가를 사용하여 IP 주소를 제외하는 필터를 정의합니다.

과거 데이터는 필터가 적용된 상태에서 재생성되지 않으므로 앞으로 나아갈 수있는 이점 만 있습니다.


17
[신규 생성] 필터는 향후 데이터에만 적용됩니다.
viam0Zah

1
완벽 해. 나는 이것을 적극적으로하고 있습니다. Google Analytics에 필요한 자바 스크립트를 아직 추가하지 않았습니다. 필터를 제자리에 놓고 배치합니다.
uriDium

7
이 질문을 무작위로 보았습니다 ... 개발 환경에 다른 UA-ID를 사용하고 싶습니다. 그것이 바로 지금하는 일입니다. 나는 이것이 IP 주소와 물건을 차단하는 것보다 더 나은 접근법이라고 생각합니다.
karry

3
실제로 훨씬 쉬운 방법이 있습니다. 이 기술은 미래의 데이터에도 적용됩니다. ga 객체를 초기화 할 때 명시 적 쿠키 도메인을 설정하면됩니다. 참조 : developers.google.com/analytics/devguides/collection/…
Darren

2
개발 환경에 따라 호스트 이름을 제외 할 수도 있습니다. asp.net으로 개발하여을 포함하는 모든 호스트 이름을 제외했습니다 localhost. 일반적으로 하위 도메인 아래에 테스트 환경이있는 경우 해당 환경을 제외하십시오.
CularBytes

205

나는 자바 스크립트를 사용하는 간단한 접근법을 좋아합니다. 어디에서나 작동합니다.

<script type="text/javascript">
if (document.location.hostname.search("myproductiondomainname.com") !== -1) {

//google analytics code goes here

}
</script>

3
매우 우아한 솔루션 :)
Sushant Gupta

28
감사. 개인적으로 사용 if (document.location.hostname == "example.com") { /* ga code */ } else { _gaq = {push: function(arg) {console.log("ga:", arg)}}}하면 코드의 어느 곳에서나 일부 이벤트 추적기 및 사용자 정의 _gaq 호출을 안전하게 사용할 수 있으며 동시에 개발자 환경에서 GA 호출을 디버깅 할 수 있습니다.
seriyPS

1
약간 더 읽기 쉬운 또 다른 해결책은 정규 표현식 리터럴을 사용하는 것입니다.if(/example\.com/.test(window.location.hostname)) { /* GA code */ }
mjswensen

이 접근법은 Azure 사이트 (또는 유사한 설정)가있는 경우 개발자 및 프로덕션 페이지를 모두 볼 수 있기 때문에 훨씬 더 좋습니다. IE xxxxx.azurewebsites.net으로 이동 하면 세션을 선택하지 않습니다. 감사! 간단한 수정 작업도 5 분이 걸렸습니다.
Jhayes2118

11
위에 제공된 솔루션을 자세히 설명합니다 (ga는 객체 이름이라고 가정). var ga; if (document.location.hostname == "example.com") { /* GA script here */ } else { console.log("Running non-production google analytics replacement now"); ga = function(arg) { console.log("ga:", arguments);};} ga('create', 'UA-xxxxx', 'auto'); ga('send', 'pageview');
Bryan

34

2014 년이지만 기존의 모든 솔루션에 여전히 만족하지 않습니다 ...

  • IP 필터에는 고정 IP 주소가 필요합니다. 집이나 커피 숍에서 일하는 경우 어떻게합니까?
  • 호스트 이름을 확인하면 개발 환경에서 적중이 제거되지만 라이브 사이트를 디버깅하는 경우 어떻게됩니까?
  • 서버 구성 편집이 번거롭고 고급이며 여러 도메인이 복잡합니다.
  • 선택 해제 확장 프로그램은 모든 웹 사이트의 조회수를 차단하거나 요청한 사람에 따라 전혀 방문하지 않습니다.

그래서 내 브라우저 확장 프로그램을 만들었습니다 ... https://chrome.google.com/webstore/detail/lknhpplgahpbindnnocglcjonpahfikn

  • 내가가는 곳마다 날 따라와
  • 개발 환경과 라이브 / 퍼블릭 도메인에서 작동합니다.
  • 그것은 내가 개발하고있는 사이트와 나에게만 영향을 미칩니다.
  • 한 번의 클릭으로 켜거나 끕니다.
  • 실제로 분석에 데이터를 보내지 않는지 쉽게 확인할 수 있습니다.

선택한 도메인에 대해서만 항상 "개발자 쿠키"를 컴퓨터에 설정하여 작동합니다. 그런 다음 웹 로그 분석으로 데이터를 보내기 전에 스크립트에서이 쿠키를 확인하면됩니다. 확장 프로그램 설정에서 쿠키에 대한 고유 한 NAME 및 VALUE를 맞춤 설정합니다. 팀원이 쉽게 사용할 수 있으므로 개발자, 컨텐츠 제작자, 교정자 및 조직 내 모든 사람이 통계를 늘리지 않고도 페이지를 모두 볼 수 있습니다.

코드를 페이지에 넣는 방법의 예 ...

자바 스크립트

if (window.location.host==="mydomain.com" || window.location.host==="www.mydomain.com") {
   if (document.cookie.indexOf("COOKIENAME=COOKIEVALUE") === -1) {
      // Insert Analytics Code Here
   }
}

PHP

if ($_SERVER['HTTP_HOST']==="mydomain.com" || $_SERVER['HTTP_HOST']==="www.mydomain.com") {
   if (@$_COOKIE["COOKIENAME"] !== "COOKIEVALUE") {
      // Insert Analytics Code Here
   }
}

호스트 이름이 실제 사이트의 도메인 ( "mydomain.com")과 같은지 확인하면 "localhost"또는 "beta.mydomain.com"과 같은 테스트 도메인에서 보는 동안 모든 방문자가 분석 데이터를 보내지 않습니다. . 위의 예에서 "www.mydomain.com"및 "mydomain.com"은 방문을 기록하려는 두 개의 유효한 도메인입니다.

라이브 사이트는 값이 일치하는 개발자 쿠키가없는 한 예상대로 데이터를 분석에 보냅니다. 기기에 고유 한 쿠키가 설정되어 있으면 Google 웹 로그 분석 또는 기타 선호하는 분석 도구의 총계에 대한 방문이 계산되지 않습니다.

솔루션을 공유하고 확장 프로그램을 사용하여 쿠키를 유지하십시오.


이것은 훌륭한 솔루션입니다. 감사!
Nate

1
이봐, 이걸 한 걸음 더 나아가 개발자가 분석 코드를 변경하도록 요구하는 대신 ga 객체를 가로 채서 모의 객체로 대체하는 방법을 찾으십시오. 이론적으로 JS가로드 된 후 또는 분석 코드가 실행되기 전에이를 수행 할 수 있습니다. chrome.google.com/webstore/detail/analytics-blocker/…가 있지만 중단되고 지원되지 않는 것 같습니다.
jmort253

25

고정 IP를 사용하지 않는 경우 GA에서 IP 필터를 설정하면 도움이되지 않습니다.

환경 변수를 설정하고 조건부로 표시하십시오. 예를 들어 다음 Ruby on Rails 코드를 사용하십시오.

<% unless RAILS_ENV == "development" %>
    <!-- your GA code -->
<% end %>

모든 운영 체제에서 사용하는 모든 언어 / 프레임 워크로이 동작을 확장 할 수 있습니다. PHP에서는 getenv 함수를 사용할 수 있습니다 . 환경 변수 에 대한 Wikipedia 페이지에서 시스템 진행 방법을 확인하십시오.


개발 기계와 테스트중인 시스템이 동일한 경우에만 적용되므로 제한적으로 사용됩니다.
JoshJordan

1
'개발' '과 비교하는 대신'생산 ''과 비교할 때 가장 널리 사용되는 솔루션이라고 생각합니다. 즉, 사이트가 프로덕션 환경에서 실행되는 한 GA 스크립트를 렌더링합니다. 그렇지 않은 경우 (예 : 스테이징 서버, 개발 또는 테스트 서버) 분명히 이것은 실제 환경을 디버깅하는 경우를 처리하지 않지만 대부분의 ppl에는 적합합니다.
miphe

2
ENV [ "RAILS_ENV"] == "production"
moeabdol

17

이 코드를 사용할 수 있습니다

<script>
var host = window.location.hostname;
if(host != "localhost")
{
    // your google analytic code here
}
</script>

16

NAT 뒤에 있거나 다른 이유로 IP를 Google 웹 로그 분석에 제공 할 수없는 경우 가장 간단한 방법은 브라우저를 열 때부터 Google 웹 로그 분석 도메인을 로컬 호스트 (127.0.0.1)로 설정하는 것입니다. Google 웹 로그 분석은 Google 웹 로그 분석에 대한 지식없이 작업 스테이션으로 전달됩니다.


3
이것이 제가이 문제에 대해 본 가장 간단한 해결책입니다! +1
Nir Levy

GA와 충돌 할 수있는 코드를 개발 (해제 할 수 있음)하기 때문에이 방법을 사용하지 않는 것이 좋습니다. 그리고 당신은 404가 스크립트를 dl하려고 시도 할 것입니다.
webXL

@ webXL, 내 솔루션은 스크립트를 전혀 다운로드하지 않는 것입니다. 개발 시스템을위한 것이며 프로덕션 사용 (배치 호스트)을위한 것이 아닙니다.이 경우 GA가 전혀 사용되지 않을 때 충돌 할 수있는 점을 지적하십시오 개발 된 응용 프로그램에서 개발 기계 ...
astropanic

@astropanic, GA는 하나 이상의 전역을 선언하므로이를 덮어 쓰거나 덮어 쓸 수 있습니다. 개발에서 제외하면 해당 위험이 발생합니다. 그럼에도 불구하고 작은 위험이지만 피할 수있는 위험 일 수 있습니다. 또한 GA가 추적하기 위해 호스트 이름이 일치하지 않아도됩니까?
webXL


16

개발 및 QA 작업을위한 두 번째 Google 웹 로그 분석 추적 코드를 설정했습니다. 실제로 분석 통합을 테스트하고 싶을 때 유용하며, 생산 통계를 피할 수 없습니다.


나는 이것을하는 것을 결코 생각하지 않았지만, 내가할수록 더 좋아한다 :)
Ben Cull

많은 오버 헤드가 필요합니까? 필자는 개발자 팀이 코드를 변경하지 않고 미리보기와 스테이징을 라이브 프로덕션에 직접 게시한다는 인상을 받았습니다.
MXMLLN

2
@MXMLLN-구성 관리의 수준에 따라 다릅니다. 우리의 경우에는 이미 처리하고있는 설정 파일의 또 다른 행인 ymmv입니다.
Wyatt Barnett

@WyattBarnett-고마워, 나는 그들이 어떻게 생각하는지 볼 것이다.
MXMLLN

14

해결책은 Google 태그 관리자 (GTM)를 사용하여 Google 웹 로그 분석을 처리하는 것입니다. 그러면 사이트 코드에 조건을 쓰지 않고도 프로덕션 도메인에서 Google 웹 로그 분석 만 실행할 수 있습니다. 방법은 다음과 같습니다.

GTM에서 페이지 호스트 이름에 프로덕션 도메인이 포함 된 경우에만 실행되는 트리거를 설정하십시오.

여기에 이미지 설명을 입력하십시오

그런 다음 범용 웹 로그 분석에 대한 태그를 설정하고 방금 만든 트리거를 트리거로 설정하십시오.

여기에 이미지 설명을 입력하십시오



6

해당 웹 속성 ID에 대한 추적을 비활성화하려면 Google 웹 로그 분석 비동기 코드를 실행하기 전에이 행을 추가하십시오.

window['ga-disable-UA-XXXXXX-Y'] = true;

UA-XXXXXX-Y 추적을 사용 중지하려는 웹 속성 ID에 해당합니다.

보낸 사람 : https://developers.google.com/analytics/devguides/collection/gajs/


각각 GA JS 코드 사본이있는 페이지가 많은 사이트에서 작업하고 있습니다. 나는 결국 바닥 글 에서이 역 동성을 만들지 만 그 동안 헤더의 페이지를 높이 추가하면 GA에 대한 모든 호출을 비활성화 할 수 있습니까?
codecowboy

페이지 아래쪽에서 사용되는 것과 동일한 웹 속성 ID를 제공하는 한 가능합니다.
AJP

5

localhost 적중을 사용하지 않으려면 localhost를 제외 할 필터를 작성하십시오. 관리-> 속성-> 설정보기로 이동하십시오. 도움이 필요하면 다음 스크린 샷을 확인하십시오.

ga view 제외 localhost

고정 IP를 사용하여 방문하는 경우 프로덕션 URL 조회를 사용 중지하려면 개발자 쿠키 와 같은 Chrome 확장 프로그램을 사용 하여 Google Analytics 코드 실행을 건너 뛸 수 있습니다.

브라우저에서 이미 Google 웹 로그 분석을 차단하는 광고 차단기를 사용하기 때문에 개인적으로이 작업을 수행하지 않습니다.


4

이 모든 트래픽을 필터링 하려면 맞춤 측정 항목 을 사용하세요 .

앱에서 GA를 초기화 할 때 개발자를 추적하도록 맞춤 플래그를 설정하세요.

// In your header, after the GA code is injected
if( <your_code_to_check_if_is_dev> ) {
  ga('set', 'is_developer', 1 );
}

그런 다음 GA 계정에 필터를 추가하여 이러한 결과를 제거하십시오.

관리> 계정> 모든 필터> 필터 추가> 사용자 정의

여기에 이미지 설명을 입력하십시오


3

Firefox 용 Ad Blocker를 사용합니다. Google Analytics 추적 스크립트를 구체적으로 차단할 수 있습니다. 파이어 폭스는 기본 개발 브라우저이므로 다른 브라우저에서 작업을 테스트해야 할 때까지 훌륭하게 작동합니다.


2

아마 당신에게 도움이되지는 않지만 필요한 JavaScript를 주입하는 사용자 정의 ASP.NET 서버 컨트롤을 작성 하여이 문제를 해결했습니다. 그런 다음 web.config에 라이브 URL을 추가 한 다음 호스트 이름이 web.config의 라이브 URL과 일치하는 경우에만 컨트롤을 표시했습니다.


1

사람들이 언급했듯이 google-analytics.com 도메인을 로컬로 호스팅하거나 개발 네트워크에서 작업 중인지 확인하는 기능을 설정할 수 있습니다.

http://www.google-analytics.com/ga.js가로드 되지 않고 onclick 자바 스크립트 함수를 사용하여 페이지 요소의 클릭 수를 추적하는 데 도움이 된다는 점에 유의 하세요.

IE : onclick = "javascript : pageTracker._trackPageview ( '/ made / up / folder / reference');

jQuery 또는 기타 강력한 JavaScript 함수가 작동하지 못하게하는 JavaScript 오류가 발생합니다.


1

이를위한 추가 옵션으로, 여러 사이트와 개발자가있는 개발 서버가 있습니다. 이것은 내가 세 가지 주요 옵션에 특히 만족하지 않았다는 것을 의미했습니다.

  • 많은 개발자들에게 파일 문제가 있으며 인적 오류가 발생합니다.
  • 모든 사이트 등에서 if / else 개발 블록
  • GA 웹 사이트 구성-일부 고객은 자체 GA 계정을 가지고 있습니다. 잊어 버리거나 간과 될 수있는 모든 사이트 에서 완료 되어야합니다.

다른 답변에서 다양한 옵션을 구현하는 대신 다음과 같은 방식으로 문제에 접근했습니다. 사이트 별이 아닌 전체 httpd.conf에서 아파치 모듈 mod_substitute 를 사용하여 다른 답변의 hosts 파일 수정이 모든 개발 사이트와 모든 개발자에게 자동으로 미치는 영향을 시뮬레이션했습니다.

모듈 활성화

CentOS : /etc/conf/httpd.conf다음 줄을 열고 추가하십시오

LoadModule substitute_module modules/mod_substitute.so

우분투 / 데비안 : 다음 명령을 실행

sudo a2enmod substitute

모듈이 활성화되면 httpd 전역 구성 파일에 다음 줄을 추가하십시오.

CentOS :/etc/conf/httpd.conf

우분투 / 데비안 :/etc/apache2/httpd.conf

# Break Google Analytics
AddOutputFilterByType SUBSTITUTE text/html 
Substitute "s|.google-analytics.com|.127.0.0.1|n"

그런 다음 아파치를 다시 시작하십시오.

CentOS :service httpd restart

우분투 / 데비안 :/etc/init.d/apache2 restart

아파치가 페이지를 제공 할 때 .google-analytics.com과 일치하는 모든 텍스트를 .127.0.0.1로 바꾸면 페이지가 아래 예제와 유사한 분석 코드로 렌더링됩니다.

var _gaq = _gaq || [];
_gaq.push(['_setAccount', '']);
_gaq.push(['_trackPageview']);

(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.127.0.0.1/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

1

이 게시물이 너무 오래되었다는 것을 알고 있지만 어떤 솔루션도 내 요구를 충족시키지 못했습니다. GA (및 FB)에서 개발 작업을 제거하고 싶을뿐만 아니라 회사 내 일부 직원을 GA 및 FB에 포함시키지 않기를 원했습니다. 그래서 나는 사람들이 플러그인없이 분석에서 제외하거나 도메인 IP를 배제하는 비교적 쉬운 방법을 원했습니다 (노트북을 가진 사람들이 방황하는 것처럼).

사용자가 이동하여 링크를 클릭하여 GA 및 FB 추적을 거부 할 수 있는 웹 페이지 를 만들었습니다 . 사이트에 쿠키를 배치합니다. 그런 다음 해당 쿠키를 확인하여 GA 및 FB에 데이터를 보내야하는지 결정합니다.

나는 원래 이것을 달리아 (Dahlia) 라는 사이트에 설치 했는데, 그것은 그리스 정교회 결혼식과 세례를위한 아이템을 만드는 부티크 제조업체입니다 .

코드는 다음과 같습니다.

모든 웹 페이지의 헤더에 다음 코드를 넣습니다.

<script>
//put in your google analytics tracking id below:
var gaProperty = 'UA-XXXXXXXX-X';

// Disable tracking if the opt-out cookie exists.
var disableStr = 'ga-disable-' + gaProperty;
if (document.cookie.indexOf(disableStr + '=true') > -1) {
  window[disableStr] = true;
  window['ga-disable-UA-7870337-1'] = true;  //This disables the tracking on Weebly too.
} else {
   //put in your facebook tracking id below:
  fbq('init', 'YYYYYYYYYYYYYYY');
  fbq('track', 'PageView');
}
</script>

제공된 공간에 GA 및 FB 추적 ID를 추가하십시오. 이것은 원래 Weebly (쇼핑 CMS) 사이트 용으로 작성되었습니다. 따라서 Weebly를 사용하지 않는 경우 Weebly를 언급하는 행을 제거 할 수 있습니다.

그런 다음 헤더에 다음 코드를 사용하여 "do-not-track"이라는웹 페이지를 만들었습니다 .

<script>
//put in your own google analytics tracking id below:
var gaProperty = 'UA-XXXXXXXX-X';
var disableStr = 'ga-disable-' + gaProperty;

// Opt-out function
function gaOptout() {
  document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/';
  window[disableStr] = true;
  gaOptoutCheck();
}

// Check Opt-out function
function gaOptoutCheck() {
    var name = "ga-disable-"+gaProperty+"=";
    var ca = document.cookie.split(';');
    var found = "false";
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) == 0) found = "true";
    }
    if (found == "true") alert("Cookie is properly installed");
    else alert("COOKIE NOT FOUND");
}
</script>

본문에 다음 코드가 있습니다.

<a href="javascript:gaOptout()">Click here to opt-out of Google and Facebook Analytics</a>
<br><br>
Please visit this page on every computer, laptop, phone, tablet, etc. that you use; 
and for all browser you use on each of those devices.
<br><br>
If you ever remove cookies from browser, you will need to repeat this process for that browser.
<br><br><br>
<a href="javascript:gaOptoutCheck()">
Click to check if cookie is set</a>
<br><br>

다음은 Weebly 사이트에 대한 전체 기사입니다.

이것이 누군가를 돕기를 바랍니다!


1

반응 형 애플리케이션이 있고 앱을 추출한 경우 (CRA에서도 작동 할 수 있음) index.html페이지 에서 아래 코드 스 니펫을 사용할 수 있습니다 .

<script type="text/javascript">
  if("%NODE_ENV%"==="production"){
  //your analytics code
  }

0

요청 호스트 변수를 가져옵니다.

따라서 다음과 같이 분석 자바 스크립트 주위에 if 문을 래핑하십시오 (Ruby-esque pseudocode).

<body>
<shtuff>dfsfsdf</shtuff>
if not (request.host == 'localhost')
  #analytics code here
elsif (request.host == the server's ip/domain)
  #analytics code here
else
  #do nothing
end
</body>

0

로컬 개발을 위해 PHP 변수가 설정되어있어 작업 할 때 데이터 / 피드백 등을 제공하는 터미널을 제공합니다.

XAMPP를 사용하므로 tmp에 대한 env 변수가 다음과 같습니다.

$isLocal = (getenv("tmp") == '\xampp\tmp') ? true : false;

xampp를 사용하지 않기 때문에 프로덕션 서버에 존재하지 않습니다.

if($isLocal){
  // do something, eg. load my terminal
}

...이 질문에만 해당 :

<?php if(!$isLocal){ ?>
  <!-- Insert Google Analytics Script Here -->
<?php } // end google analytics local check ?>

이 솔루션은 호출 할 "ga"개체가 없으므로 JS에서 이벤트 및 전환 추적 코드를 엉망으로 만들 수 있습니다. 그렇게하면 전체 JS가 충돌하고 다른 많은 문제가 발생할 수 있습니다.
omgitsdrobinoha 님

0

오늘은 내 컴퓨터와 다른 컴퓨터에서 Chrome 용 μBlock Origin이 기본적으로 Google 애드 센스를 차단하고 있음을 확인했습니다. 인터넷 검색 후이 기사를 찾았습니다 . 또한 μBlock Origin Firefox, μ Adblock for Firefox 및 Ad Muncher for Windows는 기본적으로 애드 센스를 차단합니다. 대부분의 다른 옵션은 애드 센스를 차단하도록 구성 할 수있는 것으로 표시됩니다.

이것은 IP가 종종 동적이기 때문에 작동하는 것으로 보이며 유용하므로 Chrome에 로그인되어있는 동안 Chrome 확장 프로그램이 나를 따라갈 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.