2009-07-17 15 views
19

estoy teniendo problemas con AdSense de Google y la carga antes de mi jQuery y matar a mis códigos, así que pensé que iba a tratar de añadir el javascript Google Adsense para el div apropiado utilizando la función de lista de documentos , aquí está el código que estoy tratando de escribir:jQuery anexar Google Adsense a 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> 

Pero no soy tan bueno escribiendo Javascript/jQuery así que si alguien me podría ayudar a implementar este sería fantástico.

El error en FF Actualmente estoy recibiendo es "Error: google_protectAndRun no está definido". No estoy seguro de lo que eso significa, pero supongo que he escrito el código jQuery equivocado .. lol

+0

Ok, así que probé con otro ángulo, y sigo teniendo el mismo error. Creé un componente en Joomla que solo muestra el código de anuncio de Google - http://www.sportsneo.com/google-ads Y pensé en llamarlo usando Ajaxify, que funciona bien para otros sitios que He terminado con el contenido de Ajax, pero por alguna razón este código de AdSense de Google me odia ... http://www.sportsneo.com/fantasy-killed-my-hsc <- la página donde se supone que el código de google adsense debe carga (lado derecho) en FF va a una página en blanco con el error y IE no muestra nada en el cuadro donde se supone que debe ir ... :( – SoulieBaby

Respuesta

19

A mi modo de hacerlo es por tener un marcador de posición en el lugar que desea que aparezca el anuncio.

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

luego colocar el Google de código en un recipiente al final de la página.

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

Luego utilizo jQuery para mover el marco flotante crea el código de AdSense una vez que la página se haya cargado.

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

Si simplemente intenta mover el div #adsense terminará con una página en blanco. Si intenta hacer esto de otra manera, terminará con una página en blanco. Google había incorporado formas activas para verificar que el código no se moviera. Si es así, tu página estará en blanco. Por qué google ha hecho esto me supera, pero he encontrado que esta solución funciona para mí ...

+11

¿Cuál es la política de Google al hacer esto? ¿Estás violando los términos de servicio de AdSense? –

+2

Estoy de acuerdo con lo que dice Scott. Algunas necesitan ser clérigos si esto es una violación de ad sense tos, ya que no haremos ningún cambio en el código de AdSense. –

+1

Have any1 preguntó en el foro de Adsense si esto es una violación de la Política de Google Adsense –

3

No puede incluir secuencias de comandos externos de esa manera.

Para incluir javascript después de que la página se ha cargado, se debe utilizar jQuery jQuery.getScript() función, pero no sé si eso fuera a trabajar para Google Adsense.

Un poco más de información se puede encontrar aquí:

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

+0

Gracias por el enlace, lo intenté antes de venir aquí, por alguna razón por la que el código de AdSense mata a mis otros guiones de jquery en IE ...:/Verificará lo de getScript ... :) – SoulieBaby

0

tenía este mismo problema. Finalmente lo resolví usando jQuery para cargar un archivo src que apunta a un archivo html que contiene el JavaScript de Google AdSense. Esto es bastante poco elegante, ya que el código de Google AdSense crea un . Y, me da la casualidad de estar trabajando con una aplicación de Facebook, por lo que en mi caso, tengo una (del anuncio de Google) en un (el que solía moverse por el error de Firefox) en un (mi aplicación de Facebook) Pero funciona.

+0

solo una recomendación, aprende a usar las herramientas de edición de publicaciones para resaltar sus etiquetas HTML como código (y como cualquier código). entonces tu publicación tendrá sentido :) – jaywon

0

La respuesta de Danny explicaba la solución básica para esto después de que experimenté sin éxito extensivamente por mi cuenta, ¡así que gracias! Sin embargo, necesitaba una solución más elaborada ya que tenía una cantidad desconocida de anuncios que quería reemplazar en una página determinada, así que esto es lo que hice:

El esquema básico de html (php), formato de Danny al estilo - nota mi incremento del recuento de anuncios, basado en varios factores de filas de una consulta db, es decir,tal que es imposible conocer el recuento de antemano:

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

que separa el css para la div adsense voy a crear en un momento ya que tengo una para cada div adslide creado anteriormente:

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

Aquí, se coloca en la parte inferior de la página, consigo los anuncios reales de google en el hTML, el recuento se determina por la cantidad de ranuras que tengo para ellos desde arriba:

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

Y finalmente CYCL e a través de todos los anuncios de AdSense escritos en el html y rellenarlos, uno por uno, en las ranuras adslide creadas en el html, asegurándose de que cada anuncio y ranura solo se usen/completen una vez quitándolos o su clase después de que 'm hecho con ellos:

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

Este es un extremadamente raro error de google. Solo puedo suponer que está relacionado con cierta protección que Google creó para evitar que las personas oculten sus anuncios (colocándolos fuera de la pantalla o detrás de otros elementos html o algo así) para tratar de recopilar recuentos de impresiones sin mostrar anuncios (es decir, para poner un millón de estos en el html pero el usuario nunca los vería, y usted recoge el efectivo hasta que google lo descubra). Sin embargo, el hecho de que este error no se muestre en IE y Safari, pero lo hace en Firefox y Chrome de Google ... Eso es extraño. Definitivamente deberían arreglar esto de su lado.

Para aquellos que están trabajando con el mismo software: me encontré con este problema a mí mismo cuando se implementa un carrusel jQuery (http://sorgalla.com/projects/jcarousel/) que tenían anuncios se mezclaban con el usuario envió fotos en el carrusel .

0

Sólo el código de trabajo

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

No quitar, mover div completa.

1

Después de intentar y fallar con los códigos aquí, terminé tomando el objeto jQuery que estaba usando y colocándolo en una nueva página html. Una vez que hice eso, acabo de utilizar un iframe para colocarlo en la página con el adsense.

Ahora, adsense y jQuery se ejecutan al mismo tiempo sin problemas.

0

En el link en la página que se estaba cargando a través de ajax, establecí data-ajax="false" y luego en la página que estaba cargada pido al usuario que use el botón Atrás.

0

Utilizo esta variante. ¡Todo bien!

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

En adsense.html ponemos el código de AdSense 'AsIs'.

+13

Google prohíbe poner adsense en un iframe y puede deshabilitar su cuenta por hacer esto. –

1

Añadir un DIV oculto con código de AdSense en su página en alguna parte:

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

uso de JavaScript crear DIV dinámica para su anuncio a la carga:

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

código jQuery para insertar el anuncio:

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

Esto funciona para mí.

+0

¿Cómo puedo generar un lugar aleatorio para el anuncio de google? Por ejemplo, tengo 10 artículos de publicación y quería que 2 de ellos se reemplazaran por anuncio de Google, pero al azar. ¿Cómo puedo hacerlo @krisrak? –

0

Así es como lo haría. Simple y corto.

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

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