2009-07-17 9 views
19

Ich habe Probleme mit Google AdSense und es Laden vor meinem jQuery und das Töten meiner Codes, so dass ich dachte, ich würde versuchen, das Google AdSense-Javascript an die entsprechende div mit der Dokument bereit Funktion , hier ist der Code, den ich zu schreiben bin versucht:jQuery append Google Adsense an div

<script language="javascript" type="text/javascript"> 
$(document).ready(function(){ 
    $(".googleBanners").html("<script language='javascript' type='text/javascript'>\n" + "google_ad_client = 'pub-8487967187298044';\n" + "google_ad_slot = '1088799521';\n" + "google_ad_width = 250;\n" + "google_ad_height = 250;\n" + "</" + "script>\n" + "<script language='javascript' src='http://pagead2.googlesyndication.com/pagead/show_ads.js' type='text/javascript'>" + "</" + "script>"); 
}); 
</script> 

Aber ich bin nicht so gut schreiben Sie Javascript/jQuery so, wenn jemand mir helfen, dies zu realisieren könnte, die fantastisch sein würde.

Der Fehler in FF, die ich gerade bekomme, ist "Fehler: google_protectAndRun ist nicht definiert". Ich bin mir nicht sicher, was das bedeutet, aber ich schätze, ich habe den jQuery-Code falsch geschrieben. Lol

+0

Ok, also versuchte ich einen anderen Winkel, und ich bekomme immer noch denselben Fehler. Ich habe eine Komponente in Joomla erstellt, die nur den Google-Anzeigencode anzeigt - http://www.sportsneo.com/google-ads Und ich dachte, ich würde es mit Ajaxify aufrufen - das funktioniert gut für andere Websites, die ich habe mit ajax Inhalt gemacht, aber aus irgendeinem Grund hasst mich dieser google AdSense Code .. http://www.sportsneo.com/fantasy-killed-my-hsc <- die Seite, wo der Google AdSense-Code soll laden (rechte Seite) in FF geht es auf eine leere Seite mit dem Fehler und IE zeigt nichts in der Box, wo es gehen soll .. :( – SoulieBaby

Antwort

19

Die Art, wie ich dies tue, ist durch einen Platzhalter vor Ort, ich möchte die Anzeige erscheinen.

<html> 
    <body> 
     <div id="googleadgoeshere"></div> 
    </body> 
</html> 

Dann platzieren Sie den Google-Code in einem Container am Ende der Seite.

Ich benutze dann jQuery, um den iframe zu verschieben, den der AdSense-Code erstellt, sobald die Seite geladen ist.

$(window).load(function(){ 
    $("#adsense").find("iframe").appendTo("#googleadgoeshere"); 
    $("#adsense").remove(); 
}); 

Wenn Sie versuchen, nur die #adsense div bewegen Sie mit einer leeren Seite am Ende wird. Wenn Sie dies auf eine andere Weise versuchen, erhalten Sie eine leere Seite. Google hat aktive Methoden eingebaut, um zu überprüfen, dass der Code nicht verschoben wird. Wenn dies der Fall ist, ist Ihre Seite leer. Warum Google dies getan hat, ist jenseits meiner, aber ich habe diese Problemumgehung gefunden, um für mich zu arbeiten ...

+11

Wie sieht die Google-Richtlinie dazu aus? Verstoßen Sie gegen die AdSense-Nutzungsbedingungen? –

+2

Ich stimme mit dem überein, was Scott sagt ... Einige müssen einen Hinweis geben, wenn dies eine Verletzung von AdSenseTos ist, da wir keine Änderungen im AdSense-Code vornehmen. –

+1

Haben any1 im AdSense-Forum gefragt, ob dies eine Verletzung der Google Adsense-Richtlinie ist –

3

Sie können externe Skripte auf diese Weise nicht einschließen.

Um Javascript nach dem Laden der Seite zu integrieren, sollten Sie jQuery jQuery.getScript() Funktion verwenden, aber ich weiß nicht, ob das für Google Adsense funktionieren würde.

http://geek.littleredstring.com/17-load-adsense-last-jquery

+0

Danke für den Link, habe ich versucht, bevor Sie hierher kommen, für Irgendein Grund der AdSense-Code tötet meine anderen Jquery-Skripte in IE ..:/Will das GetScript-Ding auschecken .. :) – SoulieBaby

0

Ich hatte genau dieses gleiche Problem:

Ein wenig mehr Informationen finden Sie hier. Ich löste es schließlich, indem ich jQuery verwendete, um ein mit einem src zu laden, das auf eine HTML-Akte zeigt, die das Google AdSense Javascript enthält. Dies ist ziemlich unelegant, da der Google AdSense-Code eine erstellt. Und ich arbeite zufällig mit einer Facebook-Anwendung, also in meinem Fall habe ich eine (die Google Ad) in einer (die ich um den Firefox-Fehler zu umgehen) in einer (meine Facebook-App). Aber es funktioniert.

+0

nur eine Empfehlung, lernen, wie die Post-Editing-Tools zu verwenden Markieren Sie Ihre HTML-Tags als Code (sowie Code). dann macht dein Beitrag Sinn :) – jaywon

0

Dannys Antwort erklärte die grundlegende Lösung dafür, nachdem ich erfolglos ausgiebig selbst experimentierte, also danke! Allerdings brauchte ich eine ausgefeiltere Lösung, da ich eine unbekannte Anzahl von Anzeigen hatte, die ich auf einer bestimmten Seite ersetzen wollte. Hier ist, was ich getan habe:

Die grundlegende html (php) Gliederung, ala Dannys Format - Hinweis meine Inkrementierung der Anzeigenanzahl basierend auf verschiedenen Faktoren von Zeilen aus einer db-Abfrage, dso dass es die Zählung wissen vorher nicht möglich ist:

<html> 
    <body> 
<? while ($r = mysql_fetch_assoc($rs)) { if (true) { ?> 
     <div class="adslide"><?=$ads++?></div> 
<? } } ?> 
    </body> 
</html> 

ich ausgesondert die CSS für den AdSense-Div I in einem Moment schaffen würde, wie ich habe einen für jeden adslide div oben erstellt:

<style> .adsense { display: none; } </style> 

Hier, im unteren Teil der Seite platziert, ich die tatsächlichen Anzeigen von google in den hTML-Code zu erhalten, wird die Zählung bestimmt, wie viele Slots ich für sie oben aus:

<?php for ($i = 0; $i < $ads; $i++) { echo '<div class="adsense">'.$adscript.'</div>'; } ?> 

Und ich CycL schließlich Durch alle AdSense-Anzeigen, die in den HTML-Code geschrieben wurden, und einzeln in die Adslide-Slots, die im HTML-Code erstellt wurden, wird sichergestellt, dass jede Anzeige und jeder Slot nur einmal verwendet wird ist mit ihnen gemacht:

<script> 
// http://stackoverflow.com/questions/1142861/jquery-append-google-adsense-to-div 
$(function() { var b, a = $(".adsense").first(); 
for (; a.length > 0; a = $(".adsense").first()) 
{ b = $(".adslide").first(); b.append(a.find("iframe")); 
    a.remove(); b.removeClass("adslide"); } }); 
</script> 

Dies ist ein äußerst seltsam Fehler von google. Ich kann nur annehmen, dass es mit einem Schutz zusammenhängt, den Google erstellt hat, um zu verhindern, dass Nutzer ihre Anzeigen verstecken (durch Positionierung außerhalb des Bildschirms oder hinter anderen HTML-Elementen oder etwas), um Impressionen zu sammeln, ohne Werbung zu schalten diese im html aber der Benutzer würde sie nie sehen, und Sie sammeln das Geld, bis Google herausfindet). Die Tatsache, dass dieser Bug nicht in IE und Safari auftaucht, sondern in Firefox und Google's eigenem Chrome ... Das ist komisch. Sie sollten das definitiv auf ihrer Seite beheben.

Für diejenigen, die mit der gleichen Software arbeiten: Ich selbst stieß auf dieses Problem bei der Implementierung eines jQuery-Karussells (http://sorgalla.com/projects/jcarousel/), das Anzeigen mit vom Benutzer eingereichten Fotos im Karussell gemischt hatte .

0

Nur dieser Code

var i = 0; 
obj = $(".materialContent p"); 
size = obj.size(); 
for (i=0; i<size; i++) 
{ 
    cur = obj[i]; 
    if (i == 2) 
    { 
     $("#mainTopAdvDiv").appendTo(cur); 
    } 
} 

arbeiten nicht entfernen, voll div bewegen.

1

Nachdem ich versucht habe, mit den Codes hier zu versagen, nahm ich das jQuery-Objekt, das ich benutzte, und legte es in eine neue HTML-Seite. Sobald ich das getan habe, habe ich nur einen iframe verwendet, um es mit dem Adsense auf der Seite zu platzieren.

Jetzt laufen Adsense und jQuery zur gleichen Zeit ohne Probleme.

0

In der link auf die Seite, die über ajax geladen wurde, setze ich data-ajax="false" und dann auf der Seite, die geladen wurde, bitte ich den Benutzer, die Zurück-Taste zu verwenden.

0

Ich benutze diese Variante. Alles gut!

$(document).ready(function() { 
$("div.youtube_ad").html("<iframe src='/adsense.html' width='350' height='290' scrolling='no'></iframe>") 
}); 

In adsense.html geben Sie AdSense-Code 'AsIs'.

+13

Google verbietet das Einfügen von AdSense in einen Iframe und kann dazu führen, dass Ihr Konto deaktiviert wird. –

1

einen versteckten DIV mit AdSense-Code in Ihrer Seite hinzufügen irgendwo:

<div id='adsense' style="display:none"> 
    <script type="text/javascript"><!-- 
     google_ad_client = "ca-pub-xxxxxxxxxxxxxx"; 
     google_ad_slot = "xxxxxxxxxx"; 
     google_ad_width = 300; 
     google_ad_height = 250; 
     //--> 
    </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 
</div> 

Javascript für Ihre Anzeige zu laden dynamische DIV Verwendung erstellen:

$("body").append("<div id='adslot' ></div>"); 

JQuery Code der Anzeige einzufügen:

var ad = $("#adsense").html(); 
$("#adslot").html(ad); 

Das funktioniert für mich.

+0

Wie kann ich einen zufälligen Ort für Google-Werbung erstellen? Zum Beispiel habe ich 10 Posten Artikel und wollte 2 von ihnen ersetzen mit Google-Anzeige aber zufällig.Wie kann ich es @krisrak tun? –

0

So würde ich es machen. Einfach und kurz.

<script> 
$(window).load(function(){ 
    $('#adsense').fadeIn(0); 
}); 
</script> 

<div id="adsense" style="display:none;"> 
    [YOUR ADSENSE SCRIPT HERE] 
</div>