JQuery добавить Google AdSense для div

У меня проблемы с Google AdSense и его загрузкой перед моим jQuery, и я убиваю свои коды, поэтому я подумал, что я попытаюсь добавить JavaScript AdSense Google к соответствующему элементу 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>

Но я не очень хорошо пишу javascript/jQuery, так что если кто-то может помочь мне реализовать это, это было бы здорово.

В настоящее время я получаю сообщение об ошибке "Ошибка: google_protectAndRun не определен". Я не уверен, что это значит, но я думаю, что я написал код JQuery неправильно.. LOL

10 ответов

Решение

То, как я это делаю, заключается в том, чтобы заполнить место, где я хочу, чтобы объявление показывалось.

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

Затем поместите гугл-код в контейнер в конце страницы.

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

Затем я использую jQuery для перемещения фрейма, создаваемого кодом AdSense, как только страница будет загружена.

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

Если вы просто попытаетесь переместить элемент #adsense, вы получите пустую страницу. Если вы попытаетесь сделать это любым другим способом, вы получите пустую страницу. Google встроил активные способы проверки того, что код не перемещен. Если это так, ваша страница будет пустой. Почему Google сделал это вне меня, но я нашел этот обходной путь для меня...

Вы не можете включать внешние сценарии таким образом.

Чтобы включить JavaScript после загрузки страницы, вы должны использовать функцию jQuery jQuery.getScript(), но я не знаю, будет ли это работать для Google Adsense.

Немного больше информации можно найти здесь:

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

После неудачных попыток с кодами здесь я в итоге взял объект jQuery, который использовал, и поместил его на новую html-страницу. Как только я это сделал, я просто использовал iframe, чтобы разместить его на странице с AdSense.

Теперь AdSense и JQuery работают одновременно без проблем.

Добавьте на свою страницу скрытый DIV с кодом AdSense:

<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, создайте динамический DIV для загрузки своего объявления:

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

Jquery код для вставки рекламы:

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

Это работает для меня.

Ответ Дэнни объяснил основное решение для этого после того, как я безуспешно экспериментировал самостоятельно, так что спасибо! Однако мне нужно было более сложное решение, так как у меня было неизвестное количество объявлений, которые я хотел заменить на данной странице, поэтому вот что я сделал:

Основной html (php) набросок, в формате аля Дэнни - обратите внимание на мое увеличение количества объявлений, основанное на различных факторах строк в запросе db, то есть таких, что невозможно заранее узнать количество:

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

Я выделил CSS для div adsense, который я создам через мгновение, так как у меня есть один для каждого div adslide, созданного выше:

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

Здесь, в нижней части страницы, я получаю фактические объявления от Google в html, количество которых определяется количеством слотов для них сверху:

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

И, наконец, я перебираю все рекламные объявления AdSense, записанные в HTML, и заполняю их, один за другим, в рекламные места, созданные в HTML, чтобы убедиться, что каждое объявление и слот используются / заполняются только один раз, удаляя их или их класс после того, как я закончу с ними:

<script>
// http://stackru.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>

Это очень странная ошибка от Google. Я могу только предположить, что это связано с некоторой защитой, созданной Google для того, чтобы люди не могли скрывать свои объявления (размещая их за кадром или за другими элементами HTML или чем-то еще), чтобы попытаться собрать количество показов без фактического показа рекламы (т. Е. Чтобы вы могли поместить миллион они указаны в html, но пользователь никогда их не увидит, и вы получите деньги, пока Google не узнает). Однако тот факт, что эта ошибка не появляется в IE и Safari, но появляется в Firefox и Google Chrome... Это странно. Они должны обязательно исправить это на своей стороне.

Для тех, кто работает с тем же программным обеспечением: я сам столкнулся с этой проблемой при реализации карусели jQuery (http://sorgalla.com/projects/jcarousel/), в которой реклама смешивалась с фотографиями, представленными пользователями в карусели.

У меня была точно такая же проблема. В конце концов я решил эту проблему с помощью jQuery для загрузки с src, указывающим на html-файл, который содержит JavaScript Google AdSense. Это довольно не элегантно, так как код Google AdSense создает <iframe>, И я работаю с приложением Facebook, поэтому в моем случае у меня есть <iframe> (Google Ad) в <iframe> (тот, который я использовал, чтобы обойти ошибку Firefox) в <iframe> (мое приложение на Facebook). Но это работает.

Я использую этот вариант. Все хорошо!

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

В adsense.html поместите код AdSense "AsIs".

Только этот код работает

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

Не удаляйте, переместите полный div.

Вот как бы я это сделал. Просто и коротко.

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

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

В link на страницу, которая была загружена через ajaxЯ поставил data-ajax="false" а затем на странице, которая была загружена, я прошу пользователя использовать кнопку назад.

Другие вопросы по тегам