2013-11-11 5 views
1

У меня есть одностраничное веб-приложение, содержащее объявления dfp. У меня есть два dfp-блока, которые Iam срабатывают, и они помещаются между содержимым, которое представляет собой список статей для определенной категории.Отображение одинаковых объявлений dfp в одностраничном веб-приложении

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

Объявления не отображаются во второй раз, и это связано с тем, что вы не можете использовать одни и те же рекламные блоки на одной странице.

Поскольку я не могу использовать функцию обновления, предоставляемую dfp, так как моя DOM реконструируется каждый раз, есть ли способ, которым я могу это сделать ?.

ответ

0

Если вы используете jQuery, посмотрите на plugin, который я сделал, который обертывает DFP и позволяет вам легко использовать его в одностраничных приложениях.

Это демо с помощью turbolinks, который будет похож на ваш одном приложении страницы:

http://coop182.github.io/jquery.dfp.js/dfptests/demo1.html

больше вопросов, просто дайте мне знать.

Edit: вот еще один пример, страница - http://coop182.github.io/jquery.dfp.js/dfptests/spa.html

+0

Как показано вышеприведенное демо одностраничное приложение.?. Нажав на ссылку, вы перейдете на другую страницу. Ознакомьтесь с измененной версией вышеприведенной демонстрации. http://app.genwi.com/resources/44132/misc/ad_single_page.html. Когда вы нажмете здесь здесь обновить; он пытается создать одно и то же объявление; но не может подать объявление. – agaase

+0

Первоначальная демонстрация - это одностраничное приложение ... turbolinks обрабатывает щелчок и толкает URL-адрес в браузер ...так что, хотя похоже, что он меняет страницы, это не так. В любом случае ... Я добавил еще одно демо, которое должно обеспечить лучший пример ... тот, который вы сделали, не работает, потому что вы меняете идентификатор и освобождаете div ... –

+0

Спасибо за демо. У меня все еще одна путаница. Когда я удаляю enableSingleRequest: false из демонстрации, он не запускает новые объявления. Можете ли вы сказать мне, почему используется enableSingleRequest? – agaase

1

Есть несколько из этого выноса вопроса. Плагин DFP, а также нормальная реализация googletag должна работать для одного приложения страницы, так что два требования должны быть выполнены

  1. enableSingleRequest НЕ должен быть установлен верно. В случае плагина dfp от Matt вы должны передать enableSingleRequest: false, чтобы он не установил его в true. Это связано с тем, что если вы установите значение true, вы не сможете увеличить запрос на той же странице, чтобы получать объявления. Также отключается enableSingleRequest (false).

  2. Когда вы запускаете объявления динамически, без перегрузки страницы; убедитесь, что вы начинаете со свежих контейнеров, где будут размещаться объявления. Точная причина этого еще не подтверждена, но похоже, что это то, как googletag работает внутри страны.

Пожалуйста, добавьте, если у вас есть дополнительные комментарии.

0

ли это трудный путь:

function myGoogleTagLoaderFn(callback) { 
    // reset googletag lib 
    window.googletag = null; 

    // we're using requirejs, so we have to do this as well 
    window.requirejs.undef('http://www.googletagservices.com/tag/js/gpt.js'); 

    myRequireOr$getScriptFn('http://www.googletagservices.com/tag/js/gpt.js', function success() { callback(); }); 
} 

Не беспокойтесь о загрузке библиотеки на каждой странице, это то же самое, как в не singlepage месте, и Lib отправляет разумные заголовки кэша. Разумеется, недостатком является то, что скрипт пересматривается каждый раз. Поверхность вы можете использовать режим singleRequest таким образом.