Google Adsense의 자바 스크립트 오류


79

여러 애드 센스 실행 사이트에서 다음과 같은 오류가 발생했습니다.

[ http : //] googleads.g.doubleclick.net에 메시지를 게시 할 수 없습니다 . 수신자의 출처는 http://www.anekdotz.com 입니다.

URL이 [ http : //] googleads.g.doubleclick.net/pagead/ads?client=ca-pub-9099580055602120&output= 인 프레임에서 URL [ http : //] www.anekdotz.com/을 사용 하여 프레임 에 액세스하려는 안전하지 않은 JavaScript 시도 html & h = 250 & slotname = 9210181593 & w = 300 & flash = 10.0.42 & url = http % 3A % 2F % 2Fwww.anekdotz.com % 2F & dt = 1269901036429 & correlator = 1269901036438 & frm = 0 & ga_vid = 711000587.1269901037 & ga_fc = 0 & java_tz = 900 & ga_fc = 0 & java_tz = 900 u_aw = 1436 & u_cd = 24 u_nplug = 10 u_nmime가 = 1440 & u_ah = 878 & 101 BIW = 1365 & BIH = 806 이드 = 44,901,212 및 푸 = 0 IFI 1 및 DTD = 153 XPC = Xkfk1oufPQ 및 p = HTTP % 3A // www.anekdotz.com = . 도메인, 프로토콜 및 포트가 일치해야합니다.

(Chrome 자바 스크립트 콘솔에서)

광고가 제대로 표시되고 기본 자바 스크립트 코드에 영향을주지 않습니다. 그러나 때로는 이러한 오류가 페이지 로딩 속도를 늦추는 것처럼 보입니다. 이 문제를 어떻게 해결할 수 있습니까?

(저는 신규 사용자이므로 게시 할 수 있도록 URL을 수정했습니다.)


anekdotz.com이 귀하의 웹 사이트입니까?
Pekka

1
여기에도 같은 문제가 있습니다. 이 게시물은 거의 1 년 전의 것입니다! Google 문제라면 어떻게 해결되지 않았습니까!? 또한 사이트의 다른 js도 죽이고 있습니다. 이에 따르면 리더 보드 광고에만 관련된 것 같습니다 .. google.com/support/forum/p/AdSense/…
UpTheCreek

문제를 Google 애드 센스에 제출하십시오 ....
Incognito

@ user257493-애드 센스 그룹 / 지원 페이지에 동일한 문제가있는 사람들의 예가 많이 있으며 수정 된 사람을 본 적이 없습니다. 결국 문제를 제출할 것이지만 시간이 걸린다는 것을 알고 있습니다.
UpTheCreek 2011 년

3
Google지도 iframe과 동일합니다. 예, Google은 규칙을 위반할 수 있습니다. 그것은 현서 순위 ;-) 파괴 나던 희망
야곱 로우

답변:


81

Google은 스크립트를 엉망으로 만들었습니다. 그것에 대해 할 수있는 일이별로 없습니다.

어떤 이유로 http://pagead2.googlesyndication.net/pagead/expansion_embed.js애드 센스 스크립트에 의해 상위 페이지에 포함 된은 ( <iframe>는) 새로운 HTML5 postMessage 기능을 사용하여 광고를 보관하기 위해 새로 작성된 광고에 대한 정보를 보내려고합니다 .

            ha(this, function (f, e) {
                d[Pa](this.a[A]+"|"+f+":"+e, this.la)
            });

네. 멋진 축소 / 난독 화 된 코드가 있습니다. 신뢰 나, Pa이다 'postMessage'!

targetOrigin이 호출 의 인수 this.la는로 설정됩니다 http://googleads.g.doubleclick.net. 그러나 새 iframe이는 그것으로 작성되었습니다 src로 설정 about:blank. 대상 원본과 일치하지 않으므로 브라우저는 메시지 전송을 거부해야합니다. Chrome만이 콘솔 로그에 실제 윙윙 거리는 소리를내는 것 같습니다.

왜이 작업을 수행하는지 전혀 모르겠습니다. 왜 '*'대상 출처로 사용하지 않는지 신경 쓰지 마세요 . 난독 화 된 스크립트에 들어가서 알아 내고 싶지 않습니다. 그러나이 오류로 인해 페이지로드 속도가 느려지지는 않습니다. 일시 중지가 표시되는 경우 일반적으로 다른 외부 스크립트를 해결하고 가져 오는 것입니다.


안녕하세요, 고마워요. 예, 실제로 페이지 속도를 늦추고 있는지 확실하지 않지만 페이지가로드되는 동안 하단에 브라우저 "페이지로드 중"알림이 표시됩니다. 이것은 성가신 일이며 브라우저가 종료 될 때까지 기다려야한다고 생각하는 일부 사용자를 괴롭힐 수도 있습니다. 나는 그들이 이것에 대해 곧 뭔가를하기를 바랍니다.
Arjun

4
나는 또한이 오류, 특히 느린 속도는 아니지만 fb 소셜 앱 통합과 같은 다른 JS가 작동을 멈추고 있음을 깨닫고 있습니다. 이게 아직 고쳐지지 않은 건 어떨까?
Mescalito 2011

추가 할 수 있습니다. 광고 차단기가 설치된 특정 Chrome 세션에서만 발생합니다. 특정 URL에 대해 플러그인을 비활성화했지만 여전히 원본 오류 메시지가 트리거됩니다. 시크릿 창에서 동일한 사이트를 열면 문제가 사라집니다.
Andres SK

이 답변이 2018 년에도 유효합니까?
InTheNameOfScience

15

Google은 URL이 about : blank 인 창에 대해 동일한 출처 정책을 무시하는 브라우저 특성을 악용하여 해당 창에서 XMLHttpRequest를 제출하거나이 경우 모든 사이트에 postMessage 요청을 제출할 수 있도록합니다.

내가 아는 한 브라우저는 최근에이 동작을 비활성화했습니다. 패치 된 브라우저가 하나 있어야합니다.

이 고장난 기능이 광고로 수익을 올리는 데 영향을주지 않기를 바랍니다.

귀하의 사이트가 귀하의 잘못없이 Javascript 오류를 생성하는 것은 성가신 일이지만 귀하의 페이지에서 다른 사람의 Javascript를 실행할 때 반드시 수락해야 할 가능성이 있습니다.


"그 창에서 어떤 사이트로든 postMessage 요청을 제출하도록 허용"어떻게 악용합니까? postMessage동일한 출처 제한을 고려하지 않고도 모든 뷰에서 호출 될 수 있습니다.
Eli Gray

1
물론 그렇게 부를 수 있습니다 . 그러나 메시지 자체가 전송되는지 여부는 메시지가 수신 된 시점의 대상 창에에 대한 두 번째 인수로 설명 된 출처가 있는지 여부에 따라 다릅니다 postMessage. 여기서는 그렇지 않은 것 같습니다. (왜 이것이 악용 일 수 있는지에 대해서는 MDC에서 인용합니다. "postMessage가 암호를 전송하는 데 사용 되었다면이 인수는 출처가 암호를 포함하는 메시지의 의도 된 수신자와 동일한 URI 인 것이 절대적으로 중요합니다. , 악의가있는 제 3 자에 의한 암호의 차단을 방지하기 위해 ").
제프 월든

7

브라우저가 다른 웹 사이트의 CSRF 공격을 차단하기 때문에 이는 정상입니다.

googleads...웹 사이트에 액세스하고이 문제를 해결 하려면 웹 crossdomain.xml루트에 이름이 지정된 파일을 만들고 다음 내용으로 채우십시오.

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy 
  SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-access-from domain="googleads.g.doubleclick.net" />
</cross-domain-policy>

테스트하려면 http://your-domain.com/crossdomain.xml 도메인으로 이동하여 해당 페이지에 오류가 없는지 확인하십시오. 또한 와일드 카드 등을 사용할 수 있습니다 (참조 참조). 완료되면 페이지를 새로 고칩니다. 도움이되기를 바랍니다.

라이브 예 : http://www.blanjamudah.com/crossdomain.xml

참조 : http://en.wikipedia.org/wiki/Cross-site_request_forgery http://curtismorley.com/2007/09/01/flash-flex-tutorial-how-to-create-a-crossdomainxml-file/


1
이것은 나를 위해 작동하지 않았으며 Flash Player와 관련이있을 수 있습니다.
fmalina 2015-08-26


4

도메인 및 프로토콜 오류 코드를 검색 한 후이 페이지를 방문하는 경우 :

애드 센스는 이전 소스 코드를 사용할 때 생성되는 교차 도메인 오류를 해결하는 자바 스크립트 의 새로운 비동기 버전 을 출시했습니다 . AJAX가 많은 사이트에서 표준 임베드 코드를 사용했을 때 도메인 간 오류가 발생했습니다. 비동기 코드를 구현하고 적절하게 정의 된 crossdomain.xml과 함께 도메인 간 오류가 사라졌습니다.


1

이것은 실제 원인을 가리는 오류 메시지의 경우 인 것 같습니다. 실제 원인은 아마도 일종의 애드 센스 구성 오류 일 것입니다. 불행히도 애드 센스는 더 관련성 높은 오류 메시지를 제공하기 위해 충분한 검사를 수행하지 않는 것 같습니다.

나도이 오류가 있었고 포럼을 조사한 후이 결론에 도달했는데, 일부 사람들은 은행 계좌 등을 확인한 후 수정되었다고보고했습니다. 제 경우에는 서버 측 환경이 google_ad_client 매개 변수를 엉망으로 만들었 기 때문에 실제 문제는 해당 매개 변수가 null이라는 것입니다. 이 문제를 해결하면 광고가 표시되고 더 이상 오류 메시지가 표시되지 않습니다.

따라서 실제로는 동일 출처 정책과 관련이 없습니다. 이제 애드 센스 코드가 정확하므로 이제는 서버뿐만 아니라 localhost에서 실행할 때도 광고를 표시 할 수 있습니다.


1

비슷한 문제가 생겼습니다. 관련이 있는지 확실하지 않지만 어쨌든 설명하겠습니다.

내 페이지에 두 개의 광고가 게재되었고 페이지 끝에서이 스크립트를 한 번만 호출하여 코드를 "리팩터링"하고 싶었습니다.

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

내 광고가 깨져서이 스크립트 태그를 각 광고 var 스크립트 바로 뒤에 배치해야한다는 것을 알았습니다.

<script type="text/javascript"><!--
google_ad_client = "ca-pub-872346872364872364";
google_ad_slot = "719238712983";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>

그러나 변경 사항을 되 돌렸을 때 첫 번째 스크립트 태그는 여전히 내 페이지 하단에 배치되어 내 스크립트 태그 중 다른 하나를 광고로로드하려고했습니다. 이것은 실패했고 당신이 본 오류가 발생했습니다.

따라서 두 개의 광고 스크립트 태그를 서로 뒤에 유지하고 다른 위치는 사용하지 않는지 확인하십시오. 예 :

<script type="text/javascript"><!--
google_ad_client = "ca-pub-872346872364872364";
google_ad_slot = "719238712983";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

1

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>아래가 아닌 광고 위의 페이지 상단으로 이동 하여이 문제를 해결했습니다.


0

Google Adsense 대시 보드의 사이트 탭 (웹 또는 앱 버전). 사이트가 도메인 으로 your-domain.com (또는 어떤 tld)으로 설정되고 하위 도메인으로 www.your-domain.com 으로 설정되어 있는지 확인합니다 .

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