Теги публикации Google позволяют клиенту редактировать обновления рекламы - PullRequest
0 голосов
/ 07 июня 2019

Привет! Я пытаюсь встроить рекламу GPT (теги публикации Google) в мое веб-приложение (которое работает нормально).Однако меня попросили убедиться, что клиент может редактировать и вносить изменения в HTML-скриптлеты GPT, просматривая изменения перед отправкой изменений.Моя проблема заключается в том, что когда я снова вставляю измененный рекламный HTML и сценарии обратно в DOM (для просмотра), рекламные сценарии больше не могут выполняться браузером (ошибка javascript).

Здравствуйте, я попытался посмотретьна следующих сайтах для справки: https://support.google.com/admanager#topic=7505988

А также пробуя различные вещи, упомянутые в справочнике API GPT, такие как опция destroySlots, например, чтобы я мог сбросить объект javascript googletag, чтобы заново вставить скрипт
https://developers.google.com/doubleclick-gpt/reference

Пожалуйста, просмотрите этот минимальный воспроизводимый пример того, чего я хочу достичь: https://codepen.io/angusgrant/pen/eawbLV

  1. Нажмите кнопку «Редактировать рекламу» (должно открыться диалоговое окно с вводом текстовой области)показ ввода HTML textarea с указанием источника HTML сценария рекламы.
  2. Нажмите кнопку «Просмотр». Обратите внимание, что реклама GPT больше не отображается / не отображается.

ЭтоHTML-код (скриптлет), который я загружаю при загрузке страницы и должен иметь возможность повторно вставить его обратно в DOM через JS:

<div id="addSlot1" style="height:600px; width:160px;">
    <script>
    googletag.cmd.push(function()
    {
    googletag.defineSlot('/1008130/Wide_Skyscrape', [160, 600], 'addSlot1')
    .addService(googletag.pubads())
    .setTargeting("Pub_code", "asnr");
    googletag.enableServices();
    googletag.display('addSlot1');
    });
    </script>
  </div>

Я ожидаю, что реклама будет (все еще) отображаться (с любым изменением HTML, внесенным в текстовую область, отображаемую также на веб-странице).

Что я на самом деле испытываю, так это то, что рекламный код загружается в DOM, как и ожидалось (с точно таким же кодом HTML / Javascript), и браузер пытается отобразить изменения, но в инструментах разработчика появляется ошибка:

Exception in queued GPT command TypeError: Cannot read property 'addService' of null

, и объявление больше не отображается.

enter image description here

Пожалуйста, сообщите, как я переписываю HTML / скриптлет GPT, чтобызапускается при загрузке страницы и при повторной вставке обратно в DOM?

...