JQuery добавляет Google Adsense к div
У меня возникли проблемы с google adsense, и он загружается до моего jQuery и убивает мои коды, поэтому я подумал, что попытаюсь добавить javascript Google Adsense в соответствующий div, используя функцию готовности документа, здесь код я ' m пытается написать:
<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, поэтому, если кто-то мог помочь мне реализовать это, это было бы фантастически.
Ошибка в FF, которую я сейчас получаю, это "Ошибка: google_protectAndRun не определен". Я не уверен, что это значит, но я предполагаю, что я написал код jQuery неправильно. Lol
Ответы
Ответ 1
То, как я это делаю, - это иметь место на месте, где я хочу, чтобы объявление появилось.
<html>
<body>
<div id="googleadgoeshere"></div>
</body>
</html>
Затем поместите код google в контейнер в конце страницы.
<div id="adsense" style="display:none;">all the google javascript goes here</div>
Затем я использую jQuery для перемещения iframe, создаваемого кодом AdSense после загрузки страницы.
$(window).load(function(){
$("#adsense").find("iframe").appendTo("#googleadgoeshere");
$("#adsense").remove();
});
Если вы просто попытаетесь переместить div #adsense, вы получите пустую страницу. Если вы попытаетесь сделать это больше всего по-другому, вы получите пустую страницу.
Google разработал активные способы проверки того, что код не перемещен. Если это так, ваша страница будет пустой. Почему google сделал это вне меня, но я нашел, что это обходное решение работает для меня...
Ответ 2
Вы не можете включать внешние скрипты таким образом.
Чтобы включить javascript после загрузки страницы, вы должны использовать функцию jQuery jQuery.getScript(), но я не знаю, будет ли это работать для Google Adsense.
Немного больше информации можно найти здесь:
http://geek.littleredstring.com/17-load-adsense-last-jquery
Ответ 3
После попыток и сбоев с кодами здесь я закончил использование объекта jQuery, который я использовал, и поместив его на новую страницу html. Как только я это сделал, я просто использовал iframe, чтобы разместить его на странице с помощью adsense.
Теперь adsense и jQuery запускаются одновременно без проблем.
Ответ 4
Добавьте скрытую 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);
Это работает для меня.
Ответ 5
У меня была такая же проблема. В конечном итоге я решил использовать jQuery для загрузки с помощью src, указывающего на html файл, содержащий javascript Google AdSense. Это довольно непросто, поскольку код Google AdSense создает <iframe>
. И, случается, я работаю с приложением Facebook, поэтому в моем случае у меня есть <iframe>
(Google Ad) в <iframe>
(тот, который я использовал, чтобы обойти ошибку Firefox) в <iframe>
(мое приложение для Facebook). Но это работает.
Ответ 6
Дэнни ответ объяснил основное решение для этого после того, как я безуспешно экспериментировал сам по себе, поэтому спасибо! Тем не менее, мне нужно было более сложное решение, так как у меня было неизвестное количество объявлений, которые я хотел бы заменить на данной странице, поэтому вот что я сделал:
Основная схема html (php), формат ala Danny - обратите внимание на мое увеличение количества показов объявлений на основе различных факторов строк из запроса db, то есть так, что заранее невозможно узнать счет:
<html>
<body>
<? while ($r = mysql_fetch_assoc($rs)) { if (true) { ?>
<div class="adslide"><?=$ads++?></div>
<? } } ?>
</body>
</html>
Я выделил css для div adsense, который я создам за один момент, поскольку у меня есть один для каждого div adlide, созданного выше:
<style> .adsense { display: none; } </style>
Здесь, помещенный в нижней части страницы, я получаю фактические объявления от google в html, количество которых определяется количеством слотов, которые у меня есть для них сверху:
<?php for ($i = 0; $i < $ads; $i++) { echo '<div class="adsense">'.$adscript.'</div>'; } ?>
И, наконец, я просматриваю все объявления AdSense, записанные в html, и заполняю их один за другим в слоты adlide, которые были созданы в html, убедившись, что каждое объявление и слот используются только один раз, удаляя их или их класса после того, как я закончил с ними:
<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>
Это чрезвычайно странная ошибка от Google. Я могу только предположить, что это связано с некоторой защитой google, созданной для того, чтобы люди не скрывали свои объявления (размещая их вне экрана или за другими элементами html или что-то в этом роде), чтобы попытаться собрать количество показаний без фактического показа рекламы (т.е. Вы могли бы положить миллион это в html, но пользователь никогда их не увидит, и вы собираете деньги до тех пор, пока Google не узнает об этом). Однако тот факт, что эта ошибка не отображается в IE и Safari, но делает в Firefox и Google собственный Chrome... Это странно. Они должны определенно исправить это на их стороне.
Для тех, кто работает с одним и тем же программным обеспечением: я сам столкнулся с этой проблемой при реализации jQuery Carousel (http://sorgalla.com/projects/jcarousel/), в котором объявления смешивались с представленными пользователями фотографиями в карусели.
Ответ 7
Только этот код работает
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.
Ответ 8
В link
на страницу, загружаемую через ajax
, я установил data-ajax="false"
, а затем на загруженную страницу. Я прошу пользователя использовать кнопку "Назад".
Ответ 9
Я использую этот вариант. Все хорошо!
$(document).ready(function() {
$("div.youtube_ad").html("<iframe src='/adsense.html' width='350' height='290' scrolling='no'></iframe>")
});
В adsense.html добавьте код AdSense "AsIs".
Ответ 10
Вот как я это сделаю. Простой и короткий.
<script>
$(window).load(function(){
$('#adsense').fadeIn(0);
});
</script>
<div id="adsense" style="display:none;">
[YOUR ADSENSE SCRIPT HERE]
</div>