2016-12-01 3 views
1

Я пытаюсь использовать API сторонних сторон Safeframe в своем объявлении, но я получаю «$ sf not defined» в консоли. Похоже, что SafeFrame внешней стороны апи не доступно в творческом, несмотря на то, что сказано здесь: https://support.google.com/dfp_premium/answer/6023110?hl=en

Почему Google есть это заявление в своей справочной документации, если это не так? Возможно, что мне не хватает шага, но мои творческие работы в инструменте предварительного просмотра объявлений (http://publisherconsole.appspot.com/safeframe/creative-preview.html).

Пожалуйста, помогите! Объявление Клиента может задерживаться.

ответ

0

Немного опоздал на вечеринку, но DFP SafeFrame API работает хорошо. Проблема в том, что плохая документация затрудняет ее реализацию.

Вы не указали ни одного кода, так что я не могу рассказать вам, что вы сделали неправильно.

Вот пример, который может послужить вам хорошо.

Он использует API SafeFrame для обнаружения inscreen, так что вы можете начать анимацию:

<script type="text/javascript"> 
var sfAPI = window.sfAPI || $sf.ext; 

window.onload = function() { 
    var inscreen = false; 

    var refreshIntervalId = setInterval(function() { 
     if(sfAPI.inViewPercentage() == 100) { 
      // Start animation if inscreen 
     } 
    }, 500); 
}; 
</script> 

Here документация для доступных функций API SafeFrame в DFP.

0

Похоже, что API Safeframe не доступен внутри объявления html5. ext.js загружается в родительский фрейм и не может быть достигнут из крестового фрейма.

screenshot

1

читал о безопасных кадров и, как вы, я нашел эту переменную $ НФ подходит как неопределенные. Но именно так я смог найти решение.

  1. Перейти на любой сайт, на котором издатель реализовал безопасные фреймы. Я попробовал этот сайт https://www.w3schools.com/html/default.asp Теперь парить на оных и осмотреть его и увидеть IFRAME, вы заметите этот атрибут в IFrame тег

данных является-SafeFrame = «истинный»

enter image description here

Теперь перейдите в контекст этого iframe в консоли инструмента разработчика. В Chrome, если вы проверите это объявление, вы автоматически перейдете в контекст iframe в консоли.

После того, как вы находитесь в консоли IFRAME, нажмите эту команду

window.sf_.cfg.initialGeometry;

Это даст вам некоторые атрибуты, упомянутые в документации безопасного фрейма. https://sourceforge.net/p/safeframes/wiki/How-To/

{ 
    "windowCoords_t": 24, 
    "windowCoords_r": 1236, 
    "windowCoords_b": 720, 
    "windowCoords_l": 65, 
    "frameCoords_t": 128, 
    "frameCoords_r": 964, 
    "frameCoords_b": 218, 
    "frameCoords_l": 236, 
    "styleZIndex": "auto", 
    "allowedExpansion_t": 0, 
    "allowedExpansion_r": 128, 
    "allowedExpansion_b": 0, 
    "allowedExpansion_l": 0, 
    "xInView": 1, 
    "yInView": 1 
} 

Вы можете увидеть кадр координаты в плане слева, справа, сверху и снизу. xInView и yInView задаются в терминах десятичных значений, умножаются на 100, чтобы получить процент.

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

Данное решение выполняется в Internet Explorer и Chrome/Chromium.

В firefox существует переменная $ sf, определенная внутри контекста iframe. Вам просто нужно попасть в контекст iframe и начать получать информацию из окна. $ Sf

Смежные вопросы