2009-07-17 10 views
19

Mam problemy z Google AdSense i ładuje się przed moim jQuery i zabija moje kody, więc pomyślałem, że postaram się dołączyć javascript Google Adsense do odpowiedniego div przy użyciu funkcji gotowości dokumentu , oto kod Próbuję napisać:jQuery dołącza Google Adsense do 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> 

Ale nie jestem tak dobry pisanie JavaScript/jQuery, więc jeśli ktoś może mi pomóc wdrożyć to, że byłoby fantastycznie.

Błąd w FF, który aktualnie otrzymuję, to "Błąd: google_protectAndRun nie jest zdefiniowany". Nie jestem pewien co to oznacza, ale domyślam się, że napisałem kod jQuery nieprawidłowo .. lol

+0

OK, więc spróbowałem innym kątem i nadal otrzymuję ten sam błąd. Stworzyłem komponent w Joomla, który wyświetla kod reklamy Google - http://www.sportsneo.com/google-ads I pomyślałem, że zadzwonię do niego używając Ajaxify - który działa dobrze na innych stronach I 've done with ajax content, ale z jakiegoś powodu ten kod adsense google mnie nienawidzi .. http://www.sportsneo.com/fantasy-killed-my-hsc <- strona, na której ma polegać kod AdSense ładunek (prawa strona) w FF przechodzi na pustą stronę z błędem, a IE nie wyświetla niczego w polu, w którym powinien się znajdować .. :( – SoulieBaby

Odpowiedz

19

Sposób, w jaki to robię, polega na tym, że chcę umieścić reklamę na miejscu.

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

Następnie umieść kod Google w pojemniku na końcu strony.

<div id="adsense" style="display:none;">all the google javascript goes here</div> 

Następnie używam jQuery, aby przenieść element iframe, który tworzy kod AdSense po załadowaniu strony.

Jeśli po prostu spróbujesz przenieść element #adsense, otrzymasz pustą stronę. Jeśli spróbujesz zrobić to w jakikolwiek inny sposób, skończysz z pustą stroną. Firma Google zbudowała aktywne metody sprawdzania, czy kod nie został przeniesiony. Jeśli tak, twoja strona będzie pusta. Dlaczego Google to zrobił jest poza mną, ale stwierdziłem, że to obejście zadziała dla mnie ...

+11

Jakie są zasady Google dotyczące robienia tego? Czy naruszasz warunki korzystania z AdSense? –

+2

Zgadzam się z tym, co mówi Scott .. Niektórzy muszą się poddać weryfikacji, jeśli naruszają sens reklam, ponieważ nie wprowadzamy żadnych zmian w kodzie AdSense. –

+1

Czy ktoś zapytał na forum Adsense, czy jest to naruszenie zasady Google Adsense Policy –

3

Nie można włączyć zewnętrznych skryptów w ten sposób.

Aby dołączyć javascript po załadowaniu strony, należy użyć funkcji jQuery's jQuery.getScript(), ale nie wiem, czy to by działało dla Google Adsense.

Nieco więcej informacji można znaleźć tutaj:

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

+0

Dzięki za link, próbowałem tego przed przyjazdem tutaj, dla z jakiegoś powodu kod adsense zabija moje inne skrypty jquery w IE ..:/Sprawdzę rzecz getScript .. :) – SoulieBaby

0

miałem dokładnie ten sam problem. Ostatecznie rozwiązałem go, używając jQuery do załadowania z src wskazującym na plik html zawierający javascript Google AdSense. Jest to raczej nieeleganckie, ponieważ kod Google AdSense tworzy . I zdarza mi się pracować z aplikacją na Facebooku, więc w moim przypadku mam (Reklama Google) w postaci (tej, której użyłem do obejścia błędu przeglądarki Firefox) w (moja aplikacja na Facebooku). Ale działa.

+0

tylko zalecenie, naucz się korzystać z narzędzi do edycji postów podświetlić tagi HTML jako kod (jak również dowolny kod). wtedy post będzie miał sens :) – jaywon

0

Odpowiedź Danny'ego wyjaśniła podstawowe rozwiązanie tego problemu, po tym jak bez powodzenia eksperymentowałem na własną rękę, dzięki! Potrzebowałem jednak bardziej złożonego rozwiązania, ponieważ miałem nieznaną liczbę reklam, które chciałem zamienić na danej stronie, więc oto co zrobiłem:

Podstawowy zarys html (php), a mianowicie format Danny'ego - uwaga moje zwiększenie liczby reklam, w oparciu o różne czynniki w wierszach z zapytania db, tjtakie, że niemożliwe jest, aby znać liczbę wcześniej:

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

ja oddzielone z css dla div adsense będę tworzyć w momencie jak mam po jednym dla każdego div adslide utworzonego powyżej:

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

Tutaj umieszczone w dolnej części strony, uzyskać rzeczywiste reklamy od Google w html, liczba jest określana przez ile slotów mam dla nich z góry:

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

I wreszcie I CYKL e przez wszystkie reklamy AdSense zapisane w html i wstaw je, jeden po drugim, w sloty reklamowe, które zostały utworzone w html, upewniając się, że każda reklama i slot są używane/wypełniane tylko raz, usuwając je lub ich klasę po I „m sporządzono z nich:

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

jest to niezwykle dziwne bug z google. Mogę tylko założyć, że jest to związane z ochroną google stworzoną, aby uniemożliwić ludziom ukrywanie swoich reklam (przez umieszczanie ich poza ekranem lub za innymi elementami HTML), aby spróbować zebrać liczbę wyświetleń bez wyświetlania reklam (tzn. Aby umieścić milion te w html, ale użytkownik nigdy ich nie zobaczy, a ty zbierasz gotówkę, dopóki go nie dowie się). Jednak fakt, że ten błąd nie pojawia się w IE i Safari, ale robi to w Firefoksie i Google'owym Chrome ... To dziwne. Naprawdę powinni to naprawić po swojej stronie.

Dla tych, którzy pracują z tym samym oprogramowaniem: Sam wpadłem na ten problem podczas implementowania karuzeli jQuery (http://sorgalla.com/projects/jcarousel/), które zawierało reklamy połączone ze zdjęciami przesłanymi przez użytkownika w karuzeli .

0

Tylko ten kod działa

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

Nie należy usuwać, przesuwać pełną div.

1

Po próbach i niepowodzeniu z tutaj zawartymi kodami, w końcu wziąłem obiekt jQuery, którego używałem i umieszczałem go na nowej stronie HTML. Kiedy to zrobiłem, po prostu użyłem elementu iframe, aby umieścić go na stronie z adsensem.

Teraz adsense i jQuery działają w tym samym czasie bez żadnych problemów.

0

Na stronie ładowanej za pomocą link do strony, która była ładowana przez ajax, ustawiłem data-ajax="false", a następnie na stronie, która została załadowana, proszę użytkownika o użycie przycisku wstecz.

0

Używam tego wariantu. Wszystko dobrze!

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

W adsense.html umieścisz kod AdSense "Asi".

+13

Google zabrania umieszczania reklam AdSense w elemencie iframe i może wyłączyć to konto. –

1

Dodaj ukryty div z kodu AdSense na stronie gdzieś:

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

użyciu JavaScript tworzenia dynamicznych DIV do umieszczenia reklamy na obciążenia:

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

kodu jQuery, aby wstawić reklamę:

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

To działa dla mnie.

+0

W jaki sposób mogę wygenerować losowe miejsce dla reklamy Google? Na przykład mam 10 pozycji postów i chciałam 2 z nich zastąpić reklamą google, ale losowo. Jak mogę to zrobić @krisrak? –

0

Tak to zrobię. Prosty i krótki.

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

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