JQuery добавить Google AdSense для div - PullRequest
20 голосов
/ 17 июля 2009

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

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

Ответы [ 10 ]

20 голосов
/ 02 июня 2010

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

<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 div, вы получите пустую страницу. Если вы попытаетесь сделать это любым другим способом, вы получите пустую страницу. Google встроил активные способы проверки того, что код не перемещен. Если это так, ваша страница будет пустой. Почему Google сделал это, я не знаю, но я нашел этот обходной путь для меня ...

3 голосов
/ 17 июля 2009

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

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

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

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

1 голос
/ 23 августа 2013

Добавьте на свою страницу скрытый 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);

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

1 голос
/ 09 апреля 2012

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

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

0 голосов
/ 23 декабря 2014

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

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

<div id="adsense" style="display:none;">
   [YOUR ADSENSE SCRIPT HERE]
</div>
0 голосов
/ 13 июня 2012

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

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

В adsense.html введите код AdSense "AsIs".

0 голосов
/ 11 апреля 2012

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

0 голосов
/ 17 декабря 2011

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

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

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

0 голосов
/ 04 декабря 2010

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

Базовая схема 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>'; } ?>

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

<script>
// /1219956/jquery-dobavit-google-adsense-dlya-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/), в которой реклама смешивалась с фотографиями, представленными пользователями в карусели.

0 голосов
/ 19 мая 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...