Ответ Дэнни объяснил основное решение для этого после того, как я безуспешно экспериментировал самостоятельно, так что спасибо! Однако мне нужно было более сложное решение, так как у меня было неизвестное количество объявлений, которые я хотел заменить на данной странице, поэтому вот что я сделал:
Базовая схема html (php), аля формат Дэнни - обратите внимание на мое увеличение количества объявлений, основанное на различных факторах строк из запроса к базе данных, то есть такое, что невозможно узнать количество заранее:
<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://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 и собственном Chrome от Google... Это странно. Они обязательно должны исправить это на своей стороне.
Для тех, кто работает с тем же программным обеспечением: я сам столкнулся с этой проблемой при реализации карусели jQuery (http://sorgalla.com/projects/jcarousel/), в которой реклама смешивалась с фотографиями, отправленными пользователями в карусели.
person
Rogus
schedule
04.12.2010