Я пытаюсь найти решение для использования Google DFP с Turbolinks.
Я следую этому руководству
Совместимость с Turbolink DFP
НоЯ думаю, что это связано с более старой версией Turbolinks.
Я пытаюсь адаптировать слушатель событий: из исходной версии
class @Gpt
constructor: ->
@slots = {}
window.googletag = googletag || {}
window.googletag.cmd = googletag.cmd || []
$(document).on 'page:fetch', => @clearAds()
$(document).on 'page:load', => @evaluate()
@evaluate()
evaluate: ->
for slot in $('.gpt-ad')
$slot = $(slot)
cachedSlot = @slots[$slot.data('gpt-div-id')]
if cachedSlot? then @refreshSlot(cachedSlot) else @defineSlot($slot)
defineSlot: ($slot) ->
divId = $slot.data('gpt-div-id')
path = $slot.data('gpt-path')
dimensions = $slot.data('gpt-dimensions')
googletag.cmd.push =>
slot = googletag.defineSlot(path, dimensions, divId).addService(googletag.pubads())
googletag.enableServices()
googletag.display(divId)
@slots[divId] = slot
refreshSlot: (slot) ->
googletag.cmd.push ->
googletag.pubads().refresh([slot])
clearAds: ->
googletag.cmd.push ->
googletag.pubads().clear()
Я изменяю конструктор на
$(document).on 'turbolinks:request-start', => @clearAds()
$(document).on 'turbolinks:load', => @evaluate()
Но разве это не работает:
googletag.defineSlot(path, dimensions, divId).addService(googletag.pubads())
верните мне ошибку
pubads_impl_246.js:1 Exception in queued GPT command TypeError: Cannot read property 'addService' of null
Кто-нибудь нашел решение?