wake-up-neo.net

Javascript-Fehler von Google Adsense

Auf einigen meiner AdSense-Websites erhalte ich die folgenden Fehlermeldungen:

Nachricht kann nicht an [ http: //] googleads.g.doubleclick.net gesendet werden. Empfänger hat Ursprung http://www.anekdotz.com .

Unsicherer JavaScript-Versuch, auf Frame mit URL [ http: //] www.anekdotz.com/ von Frame mit URL [ http: //] googleads zuzugreifen .g.doubleclick.net/pagead/ads? client = ca-pub-9099580055602120 & output = html & h = 250 & slotname = 9210181593 & w = 300 & flash = 10.0.42 & url = http% 3A% 2F% 2Fwww.anekdotz.com% 2F & dt = 1269901036429 = 711.000.587,1269901037 & ga_sid = 1269901037 & ga_hid = 654.061.172 & ga_fc = 0 & u_tz = -240 & u_his = 2 & u_Java = 1 & u_h = 900 & u_w = 1440 & U_AH = 878 & u_aw = 1436 & u_cd = 24 & u_nplug = 10 & u_nmime = 101 & biw = 1365 & BuH = 806 & eid = 44.901.212 & fu = 0 & IFI = 1 & dtd = 153 & XPC = Xkfk1oufPQ & p = http% 3A // www.anekdotz.com . Domänen, Protokolle und Ports müssen übereinstimmen.

(von der Chrome Javascript-Konsole)

Die Anzeigen werden anscheinend ordnungsgemäß geschaltet und haben keinen Einfluss auf meinen nativen Javascript-Code. Manchmal scheinen diese Fehler jedoch das Laden der Seite zu verlangsamen. Wie kann ich dieses Problem beheben?

(Ich habe die URLs geändert, damit ich dies posten kann, da ich ein neuer Benutzer bin.)

79
Arjun

Google hat ihr Skript durcheinander gebracht. Man kann nicht viel dagegen tun.

Aus irgendeinem Grund versucht http://pagead2.googlesyndication.net/pagead/expansion_embed.js, Das in den AdSense-Skripten auf der übergeordneten Seite enthalten ist, Informationen über die Anzeige in einen neu geschriebenen <iframe> Zu senden, der mit dem neuen HTML5- postMessage Einrichtung:

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

Ja. Einige Nizza verkleinerten/verschleierten Code dort. Vertrau mir, Pa ist 'postMessage'!

Das Argument targetOrigin in diesem Aufruf this.la Wird auf http://googleads.g.doubleclick.net Gesetzt. Der neue iframe wurde jedoch mit src auf about:blank Geschrieben. Dies stimmt nicht mit dem Zielursprung überein, daher muss der Browser das Senden der Nachricht ablehnen. Nur Chrome scheint jedoch einen tatsächlichen Fehler im Konsolenprotokoll zu hinterlassen.

Keine Ahnung, warum es das überhaupt macht, egal warum es nicht nur '*' Als Ziel verwendet. Origin ... Ich habe nicht wirklich das Gefühl, in das verschleierte Drehbuch zu waten, um es herauszufinden. Dieser Fehler sollte jedoch nicht dazu führen, dass das Laden der Seite verlangsamt wird. Wenn Sie Pausen sehen, werden normalerweise andere externe Skripte aufgelöst und abgerufen.

79
bobince

Google versucht, eine Browser-Eigenheit auszunutzen, bei der einige Browser dieselbe Origin-Richtlinie für Fenster ignorieren und dabei als URL "about: blank" angeben. Dadurch kann dieses Fenster XMLHttpRequest- oder in diesem Fall postMessage-Anforderungen an eine beliebige Site senden.

Soweit ich weiß, haben Browser dieses Verhalten kürzlich deaktiviert. Sie müssen einen solchen gepatchten Browser haben.

Hoffentlich wirkt sich diese fehlerhafte Funktionalität nicht auf Ihre Fähigkeit aus, mit den Anzeigen Geld zu verdienen.

Es ist ärgerlich, wenn Ihre Website ohne eigenes Verschulden Javascript-Fehler generiert. Sie müssen dies jedoch akzeptieren, wenn Sie das Javascript einer anderen Person auf Ihrer Seite verwenden.

14
thomasrutter

Dies ist normal, da Ihr Browser CSRF-Angriffe von anderen Websites verhindert.

Erlauben googleads... Um auf Ihre Website zuzugreifen und dieses Problem zu beheben, erstellen Sie eine Datei mit dem Namen crossdomain.xml in deinem webroot und fülle es mit folgendem Inhalt:

<?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>

Wechseln Sie zum Testen zu Ihrer Domain http://Ihre-Domain.com/CrossDomain.xml und vergewissern Sie sich, dass für diese Seite keine Fehler vorliegen. Sie dürfen auch Platzhalter usw. verwenden (siehe Referenz). Wenn Sie fertig sind, aktualisieren Sie Ihre Seite. Ich hoffe, das hilft.

Live-Beispiel: http://www.blanjamudah.com/crossdomain.xml

Referenz: http://en.wikipedia.org/wiki/Cross-site_request_forgeryhttp://curtismorley.com/2007/09/01/flash-flex-tutorial-how- zum-erstellen-einer-crossdomainxml-datei /

7
risnandar

Für diejenigen, die nach der Suche nach dem Domänen- und Protokollfehlercode auf dieser Seite landen:

AdSense hat ein neues asynchrone Version seines Javascript veröffentlicht, das die domänenübergreifenden Fehler behebt, die bei der Verwendung des älteren Einbettungscodes auftreten. Als wir ihren Standard-Einbettungscode auf unserer AJAX-lastigen Site verwendeten, erhielten wir den domänenübergreifenden Fehler. Als wir ihren asynchronen Code implementiert haben und in Kombination mit einer richtig definierten crossdomain.xml , ist der domänenübergreifende Fehler verschwunden.

4
jfrprr

Eine crossdomain.xml-Datei im Site-Stammverzeichnis, die den Zugriff auf googleads.g.doubleclick.net ermöglicht, sollte das Problem beheben.

Siehe diese Seite, http://www.warriorforum.com/adsense-ppc-seo-discussion-forum/458906-adsense-blank-space-problem.html

4
Chaoley

Einfach bewegen <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> oben auf der Seite über den Anzeigen, anstatt unten, hat dies für mich behoben

1
Vinnie James

Habe gerade ein ähnliches Problem. Ich bin mir nicht sicher, ob es damit zusammenhängt, aber ich erkläre es trotzdem.

Ich hatte zwei Anzeigen auf meiner Seite und wollte den Code "umgestalten", indem ich dieses Skript nur einmal am Ende der Seite aufrief:

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

Meine Anzeigen sind kaputt gegangen und ich habe herausgefunden, dass dieses Skript-Tag direkt nach jedem Anzeigen-Var-Skript platziert werden muss:

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

Aber als ich meine Änderungen rückgängig gemacht hatte, war das erste Skript-Tag immer noch am Ende meiner Seite platziert und versuchte so, ein anderes meiner Skript-Tags als Anzeige zu laden. Dies ist fehlgeschlagen und ich habe diesen Fehler erhalten, den Sie gesehen haben.

Stellen Sie also sicher, dass Sie die beiden Anzeigenskript-Tags nacheinander und an keinem anderen Ort speichern, z. B .:

<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
Peter

Dies scheint ein Fall zu sein, in dem die Fehlermeldung die wahre Ursache maskiert. Die wahre Ursache ist wahrscheinlich eine Art von Adsense-Fehlkonfiguration; Leider scheint Adsense nicht genügend Überprüfungen durchzuführen, um eine relevantere Fehlermeldung zu erhalten.

Ich selbst hatte diesen Fehler und kam zu diesem Ergebnis, nachdem ich die Foren durchgesehen hatte. Einige Leute berichteten, dass der Fehler behoben wurde, nachdem sie ihr Bankkonto überprüft hatten oder was auch immer. In meinem Fall hat meine serverseitige Umgebung mit dem Parameter google_ad_client rumgespielt, sodass das eigentliche Problem darin bestand, dass dieser Parameter null war. Nachdem ich das behoben hatte, wurden Anzeigen geschaltet und es wurde keine Fehlermeldung mehr angezeigt.

In der Praxis hat dies also wirklich nichts mit der Richtlinie für denselben Ursprung zu tun. Jetzt, da der AdSense-Code korrekt ist, kann ich sogar jetzt Anzeigen schalten, wenn sie sowohl auf localhost als auch auf dem Server ausgeführt werden.

1
mahemoff

Auf der Registerkarte Sites in Ihrem Google Adsense-Dashboard (Web- oder App-Version). Stellen Sie sicher, dass Ihre Site mit your-domain.com (oder welcher auch immer tld) als Domain und www.your-domain.com als Subdomain eingerichtet ist.

0
JayChase