Обновите Div, в котором есть реклама Google

У меня есть <div>, на котором размещена реклама Google. Мой веб-сайт в основном основан на AJAX, и нет необходимости обновлять браузер. Это означает, что мои объявления тоже не будут обновляться, что не идеально, если пользователь весь день смотрит на одно объявление.

Итак, мне нужен был способ обновить конкретный <div> на странице. Я нашел много решений, но они не работали. Например, используя функцию HTML JQuery:

$("#ads").html("google ad script here");

Это удалось обновить всю страницу, даже не представляя, как это сделать. Я также могу сделать запрос AJAX к HTML-странице, содержащей рекламу Google, но я предполагаю, что это будет иметь тот же эффект, что и предыдущая попытка.

Я не хочу использовать iFrames.

Есть ли у меня другие варианты? Мой гороховый мозг больше не может думать о нем. :)

Обновлено:

Это разрешено, поскольку я буду инициировать обновление только тогда, когда пользователь щелкает ссылку.

Ярким примером является Yahoo Mail - их новый почтовый ящик AJAX использует тот же метод, когда пользователь щелкает ссылку, а затем отображается новое объявление.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
40
0
36 672
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Не разрешается (согласно условиям AdSense) пытаться перезагрузить рекламу в течение жизненного цикла страницы. Кроме того, это вряд ли возможно (благодаря архитектуре платформы).

У вас есть ссылка на это?

Abs 12.01.2009 17:05

это, безусловно, возможно с реализацией двойного щелчка

dmi3y 12.02.2013 18:37

Это не разрешено. но я думаю, вы можете использовать для этого iframe. Я видел хорошие уроки по этому поводу. Я пробовал сделать это с помощью ajax, откатав свои изменения для AdSense TOS

Ответ принят как подходящий

Как указано в обоих других ответах, автоматическое обновление ваших рекламных объявлений AdSense не допускается. Я понимаю, что вы намереваетесь обновить объявление только в ответ на действие пользователя, но по-прежнему не разрешено, хотя должно быть!

Помните, что вы хотите обновить рекламные объявления, чтобы вы могли показывать новые. Показ рекламы называется «впечатлением». Когда вы используете код для обновления объявлений, вы автоматически генерируете показы рекламы.

Состояние Правила программы AdSense (выделено мной):

Invalid Clicks and Impressions

Clicks on Google ads must result from genuine user interest. Any method that artificially generates clicks or impressions on your Google ads is strictly prohibited. These prohibited methods include but are not limited to repeated manual clicks or impressions, using robots, automated click and impression generating tools, third-party services that generate clicks or impressions such as paid-to-click, paid-to-surf, autosurf, and click-exchange programs, or any deceptive software.

Обновление вашей рекламы - это нарушение буквы правила против генерации показов. С учетом сказанного, я думаю, что любой разумный человек согласится с тем, что обновление рекламы в приложении AJAX в ответ на поведение пользователя (например, в ответ на щелчок) не является нарушением дух правила.

Например, представьте, что вы переписываете все свое приложение, чтобы прекратить использование AJAX. Это явно хуже для ваших пользователей (это медленнее, страница мигает при каждом нажатии, страница не может динамически обновляться в фоновом режиме), но технически это не является нарушением правил программы AdSense.

Ясно Google имел в виду, чтобы запретить автоматическую замену рекламы каждые пять секунд (создание «слайд-шоу» рекламы). Google также имел в виду запретить делать ваш сайт более привлекательным для рекламодателей, делая вид, что у вас больше посещений, чем у вас на самом деле. Я уверен, что они не использовали намереваться, чтобы помешать вам разработать высокопроизводительный веб-сайт AJAX ... но, к сожалению, иногда правила имеют непредвиденные последствия.

Конечно, как вы изначально указали, вы МОЖЕТЕ обновлять свои рекламные объявления, если встроите их в iframe и измените его местоположение. (Вот как использовать iframe в приложении AJAX для обновления AdSense.)

Вы отклонили iframe в своем первоначальном вопросе, возможно, потому что знали, что использование iframe нарушит политику Google ... но если вы настаиваете на нарушении правил, вы также можете нарушить их полностью! ;-)

В конечном счете, я думаю, вы обнаружите, что создание показов таким образом не стоит риска: вы «обновите» объявления только для того, чтобы обнаружить, что Google просто показывает вам те же самые объявления, что и раньше.

Это было хорошее чтение, спасибо :) - Я все еще уверен, что это не является незаконным. У меня другое толкование предложения, выделенного жирным шрифтом. Я не считаю, что функция, запускаемая из-за того, что пользователь нажимает ссылку, в любом случае является искусственной! :)

Abs 15.01.2009 20:58

Я не думаю, что схема ОП нарушает какое-либо разумное толкование буквы политики. Трудно увидеть какое-либо существенное различие между тем, что предлагает OP, и обычной практикой использования JavaScript для перехвата нажатий кнопок и загрузки нового URL-адреса. В обоих случаях у нас есть действие пользователя -> JavaScript -> изменить содержимое страницы.

Bennett McElwee 14.12.2009 03:41

Подумайте об этом так: продукт Google называется «AdSense для контента». Это не для веб-приложений; это для статических страниц, например блогов. (В общем, AdSense для веб-приложений был бы гораздо более сложным и амбициозным проектом, потому что веб-приложения постоянно меняются; вы можете понять, почему они выбрали легкий путь.) Изменение содержимого веб-страниц - обычная практика для веб-приложений, но это не значит, что AdSense поддерживает это!

Dan Fabulich 17.12.2009 00:52

Вчера Google анонсировал AdSense для Ajax, чего вы действительно хотели с самого начала.

Dan Fabulich 20.05.2010 19:33

А теперь похоже, что AdSense для AJAX упразднен. Они больше не принимают запросы, поэтому либо близки к запуску, либо решили, что это не стоит угрозы для их бизнеса. Хотя у всех нас в этой ветке есть веские причины попробовать это, клоуны, которые пытаются обмануть систему, угрожают целостности своей рекламной платформы, что делает ее менее желательной для людей. Хмм. Кто-нибудь добился успеха с AdSense для карт?

earnshavian 27.06.2011 18:52

Если вы заметили рекламу в Gmail, всякий раз, когда вы нажимаете на письмо (вызов ajax), объявление обновляется. Это заставляет меня думать, что обновление объявления по клику пользователя является законным.

Vladimir 27.01.2012 20:10

@Vladimir Gmail - продукт Google; они не используют AdSense для контента. Было бы очень неразумно предполагать, что вы как партнер AdSense можете что-то делать только потому, что Google позволяет себе это делать.

Dan Fabulich 28.01.2012 00:28

@DanFabulich - Если в объявлении не написано AdSense, это не означает, что источником рекламируемого контента не является AdSense, или вы думаете, что Google создал отдельную рекламную платформу для Gmail? :) Если я останусь без жизнеспособной альтернативы, я рискну. Часть, выделенная жирным шрифтом, говорит об искусственном создании впечатлений - навигация по приложению на основе Ajax с богатым клиентом не является искусственным в моем словаре.

Vladimir 30.01.2012 19:38

@Vladimir Это зависит от вас, но, как я уже сказал, я думаю, что рисковать не стоит, потому что в большинстве случаев вы не получите никакой пользы. При обновлении объявления то же самое будет отображаться во второй раз. Вы рискуете получить бессрочный бан на всю жизнь. (Да, они действительно так делают.)

Dan Fabulich 31.01.2012 00:40

Как ребята из Mashable это делают? , Checkout, mashable.com/2012/08/19/top-10-tech-10/… Проверить слайд-шоу изображений, вниз по странице, при нажатии на каждое изображение, объявление обновляется?

Pradeep 20.08.2012 16:44

@pradeep, на самом деле они используют ajax для получения новых данных при прокрутке вниз, поскольку это бесконечная прокрутка и добавление рекламы каждые 2 сообщения. Их объявления расположены в другом html файле, поэтому это не вызвано триггером обновления рекламы Google, его триггер обновлен из html файла mashable.com. Я думаю, что они это делают именно так. В любом случае бесконечная прокрутка съедает мою оперативную память

diti 13.02.2014 21:19

Показ страницы - это не то же самое, что запрос страницы. Один запрос может привести к нескольким показам. Таким образом, вам действительно разрешено обновлять объявление, когда посетитель создает новый показ страницы. Когда у вас есть галерея изображений ajax, просмотр нового изображения = отображение новой страницы

Daniel W. 05.02.2015 20:03

Google «Как правило, впечатление переводится как представление пользователя о конкретном элементе на вашем сайте [...]» Возможно, этот ответ был правильным в 2009 году, но неверным в 2015 году.

Daniel W. 05.02.2015 20:10

Этот ответ - полная чушь. Ничто в ответе не подтверждает утверждение о том, что Google запрещает автоматическое обновление одностраничных приложений. И на самом деле, если вы читаете их страницу, хотя она явно не затрагивает эту проблему, она явно соответствует духу их условий.

Flimzy 21.05.2015 00:36

Просто включите рекламу на страницах, которые вы загружаете через ajax. Нет ничего плохого в загрузке рекламы из файла через ajax для каждой страницы.

если я загружаю Read.inc, в котором есть контент и реклама Щелкните что-нибудь на странице, и вы попадете на Make.inc, где есть содержание и реклама.

Что случилось с этим? Это органично. Одна загрузка с рекламой как часть контента.

Это то же самое, что щелкнуть ссылку.

На самом деле я еще не пробовал это, но это, безусловно, кажется логичным.

Это не сработает с AdSense. Он загрузит не более 3 объявлений на страницу. Нужно как-то выгружать старую рекламу, для которой нет API.

rustyx 21.07.2014 12:46

Я знаю, что опаздываю на вечеринку на полтора года, но ... Возможно, проблема с рекламой в том, что они используют document.write (рекламные серверы печально известны этим, но я не знаю, использует ли AdSense это или нет.)

В этом случае у меня есть библиотека, которая может помочь: writeCapture.js. Пример:

$('#ads').writeCapture().html('<script src = "whatever-your-adsense-code-is"> </script>');

Здесь используется jQuery, но есть и отдельная версия.

Что касается того, является ли это нарушением TOS ... Gmail динамически меняет рекламу, так что все не так уж плохо. Пока контент тоже меняется, я думаю, что все в порядке.

Вы не опоздали (я действительно опоздал). Я попробую ваш скрипт прямо сейчас, потому что у меня такая же проблема, не могу обновить div с помощью блока AdSense.

Beto Aveiga 02.04.2013 21:04

Новые "теги" Google DFP позволяют, в частности, "обновлять объявления для AJAX".

refresh

pubService.refresh(slots) Refreshes the specified array of slots on the page with new ads.

Parameters:

array slots - Optional array of slots to refresh. If not supplied, all ad slots are refreshed. Example:

var slot1 = googletag.defineUnit("/1234567/leaderboard", [728, 90], "div-1").addService(googletag.pubads());

var slot2 = googletag.defineUnit("/1234567/skyscraper", [160, 600], "div-2").addService(googletag.pubads());

// The call to refresh fetches a new ad for each slot

googletag.pubads().refresh([slot1, slot2]); http://support.google.com/dfp_sb/bin/answer.py?hl=en&answer=2372721&expand=pubservice_details#refresh

+1, хотя это не AdSense, но он предлагает достойную альтернативу. Я очень рад, что они вернули это! Некоторое время его не было.

Brad 08.11.2012 05:22

Я работаю с спортивным приложением по крикету в прямом эфире, которое обновляет рекламу каждый раз, когда появляется новый овер. Это ничем не отличается от телевизора.

Dave Robertson 27.03.2013 06:07

Просто к сведению - DFP не поддерживает блоки ссылок AdSense (блоки высотой 15 пикселей). Поддерживаются только рекламные блоки.

rustyx 21.07.2014 12:42

Вышеупомянутое будет работать только при инициализации с помощью асинхронного кода. Пожалуйста, обратитесь к этой статье: support.google.com/dfp_sb/answer/3058726?hl=en

roberthuttinger 13.11.2015 19:10

Вы можете обновить рекламные места Google с помощью следующего кода. Поместите это в функцию JS, которую вы хотите обновить, Ads. Он должен обновить все объявления на странице.

if ( undefined !== googletag ) {
  googletag.pubads().refresh();
}

Справка Google Ad Manager - перезагрузка объявлений без обновления страницы

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