2013-06-20 2 views
2

Я уверен, что об этом спросили и ответили раньше, но я не смог отследить ответ, поэтому я снова спрашиваю.Dynamic DFP Javascript

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

У нас нет никакого встроенного JS в нашем приложении, поэтому я пытаюсь построить его динамически с помощью JS, и мне не повезло.

Я вставил свой JS here. Стоит отметить, что верхняя часть (до /////! СОБЫТИЯ) загружается немедленно, тогда как нижняя часть загружается внутри вызова $ (document) .ready() в случае, если это может быть преступником.

Идея с кодом состоит в том, что каждый рекламный div имеет атрибуты данных с URL-адресом, размером и идентификатором рекламы. Используя этот цикл I через каждое добавление, определяющее слот, как только все слоты определены, я показываю все слоты, и как только это произойдет, я вызываю остальные функции DFP. Похоже, он должен работать (мне все равно), но его нет.

Каждый вызов console.log() происходит, как ожидалось, и когда я проверяю объект googletag, зарегистрированный этим последним вызовом, журнал отладки содержит такие записи, как: «Созданный слот:/[userid]/[ad div id] «Служба сервиса JS Google», «Созданная служба: publisher_ads», «Связанная служба издателя с слотом/[userid]/[идентификатор рекламного блока]»; для каждой записи.

Я не уверен, что, возможно, служба JS службы Google или созданные вызовы служб, происходящие для каждого рекламного блока, вызывают проблемы или ожидаемые поведения, но ничто не записывается на консоль, кроме того, что я зарегистрировал, и там нет по-видимому, является признаком того, что я обнаружил, что что-то пошло не так, его просто не показывают рекламу.

В документации и в версии реализации, с которой я работал, были встроенные сценарии, которые отображали вызовы. Я не уверен, что, возможно, это должно быть обработано inline и каким-то образом отображает результаты в родительском теге скрипта, который его вызвал или что-то в этом роде, но даже когда я делаю вызовы на дисплее inline, он не работает, что приводит к тому, что что-то не работает корректно во время шага defineSlot(), но, как я уже упоминал, debuglog объекта googletag указывает, что слот был определен.

В моей сетевой панели кажется, что есть два звонка в Google: http://partner.googleadservices.com/gampad/google_ads_gpt.js и http://www.googletagservices.com/tag/js/gpt.js, который возвращает требуемый Javascript, но это единственные звонки в Google (связанные с рекламой, другие вызовы аналитики) и на этой странице есть 4 объявления, которые должны быть загружены, поэтому я ожидаю, что будет больше вызовов, если реклама действительно будет использоваться.

Излишне говорить, что я в недоумении. Я уверен, что ответ смотрит мне в лицо, но я не очень много работал с DFP ​​или вообще на рекламе, поэтому я не уверен, где еще искать, чтобы отслеживать это.

Заранее благодарим за любое направление.

ответ

2

У меня действительно есть рабочий сценарий, который, я уверен, делает то, что вам нужно.

https://github.com/coop182/jquery.dfp.js

Вы должны быть в состоянии получить некоторые указатели от my script, а просто глядя на ваш codepen, один вопрос, который я заметил, что вы не используете фактический DOM идентификатор AdUnit DIV какой DFP будет необходимость.Везде вы используете:

$(that).attr('data-id'); 

должно быть:

$(that).attr('id'); 

Призывы googletag.display также должны прийти после

googletag.pubads().enableSingleRequest(); 
googletag.enableServices(); 
+0

Я на самом деле есть атрибут данных с идентификатором, а также сам идентификатор. Было бы полезно добавить DOM в кодировщик. Я предполагаю, что его дублирование дублируется, но я стараюсь хранить данные, которые я буду использовать в своих сценариях, связанных с атрибутами данных, и использовать атрибут id как селектор. Я переместил эти вызовы выше вызовов на дисплее, и, похоже, он изменился, но все же не является рендерингом. Теперь вызов http://pubads.g.doubleclick.net/gampad/ads из google_ads_gpt возвращает ошибку 400. В debug_log он извлекает gpt, задерживает каждое объявление, получает gpt, вызывает fillslot для каждого объявления. Нет отображаемых объявлений. – BrandonThorn

+0

Я просто упал в вашем скрипте, и он отлично работает. Я добавил текст MIT в комментарии выше сценария. Я пробовал просматривать его и пытаться понять, могу ли я обнаружить что-то, что я делал неправильно, но, похоже, проще всего было бы использовать это, а не сворачивать самостоятельно. Я не знаю, какие будущие варианты мы можем использовать, и вы, похоже, уже учитывали таргетинг и вещи, которые я еще не начал рассматривать. Спасибо за быстрый ответ и отличный сценарий. Это огромная помощь. – BrandonThorn

+0

Прохладный рад, что он работает на вас ... не стесняйтесь разворачивать его и отбрасывать обратно на основы, если он делает немного больше, чем вам нужно в данный момент ... но да, целевые вещи весьма полезны! –