Перезагрузите Google Ad iFrame при нажатии на отдельный iframe фотогалереи

Я тщательно изучил это и потратил 2 дня, пытаясь заставить его работать. По-видимому, предыдущий разработчик смог обновить объявление Google (с тегами GPT) в iframe, чтобы перезагрузить и загрузить другое объявление всякий раз, когда пользователь нажимал каждый третий слайд в фотогалерее, которая находится в отдельном iframe на странице.

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

top.$("#companion IFRAME").attr("src", top.$("#companion IFRAME").attr("src"));

Я пробовал несколько других методов с использованием JS и jQuery, чтобы попытаться сделать это, например:

var iframe = top.$("#companion IFRAME");
iframe.src = iframe.src;

или top.$("#companion IFRAME").attr('src', function ( i, val ) { return val; }); и другие, также пытались использовать только "компаньон" в качестве идентификатора

теги Google GPT также позволяют автоматически обновлять объявления, например:

slot1 = googletag.defineSlot('/39761691/[var ADTAGGING_SITE]_[var ADTAGGING_DARTZONE]', [300, 250], 'companion').addService(googletag.pubads()).setTargeting('pos', '1');

googletag.pubads().refresh([slot1]);

У меня это успешно работает с использованием предложенной ими временной функции, поэтому перезагружает ее каждые 10 секунд. Но не смог включить этот скрипт Google в свой скрипт фотогалереи. Не удалось определить переменные googletag.

Я знаю Javascript и немного jQuery, однако я не эксперт и могу упустить что-то принципиально неправильное, однако, судя по ошибкам в консоли, я предположил, что это та же самая политика происхождения, которая мешает, потому что они находятся на моем домене и домен гугл.

Вот одна из страниц, о которых я говорю, реклама справа от фотогалереи: http://chm.live7.mediaspanonline.com/photos/artist-profile-led-zeppelin

Есть ли способ сделать это? Пожалуйста помоги! Спасибо

Джон


person user2884629    schedule 16.10.2013    source источник


Ответы (1)


Извините, у меня не так много времени, чтобы копаться, но мне пришло в голову, вы пробовали top.googletag.pubads().refresh([slot1]); или parent.googletag.pubads().refresh([slot1]); из этого iframe?

По сути, вы просто хотите запустить функцию googletag.pubads().refresh([slot1]);, но эта функция существует в родительском элементе.

person Steve Perks    schedule 17.10.2013
comment
Привет, вы имеете в виду в самом файле photogallery_v4.js под той же функцией или где-то еще? Извините, не могли бы вы уточнить немного больше? Я попробовал обе эти строки, но ничего не обновилось - person user2884629; 22.10.2013
comment
Правильно - вы должны иметь возможность добавить top.googletag.pubads().refresh([slot1]); там, где у вас есть top.location.hash = $(this).attr("slugline"); в этом файле. - person Steve Perks; 29.10.2013
comment
На самом деле вы не можете определить рекламный слот как var, потому что он доступен только для этой функции/скрипта, поэтому вам нужно назвать его как-то уникальным и удалить var. - person Steve Perks; 29.10.2013
comment
Я столкнулся с той же проблемой. Можете ли вы предложить мне, как вы решаете это? - person Katty; 08.06.2017