2016-12-01 61 views
1

我试图在我的广告素材中使用Safeframe外部方API,但我在控制台中收到了“$ sf not defined”。尽管这里所说的内容看起来像是safeframe外部派对api不可用: https://support.google.com/dfp_premium/answer/6023110?hl=en

为什么Google在其帮助文档中有这样的说法?我可能错过了一个步骤,但我的创意可以在Creative Preview Tool(http://publisherconsole.appspot.com/safeframe/creative-preview.html)中使用。

请帮忙!客户的广告有被耽误的风险。

回答

0

晚会稍晚,但DFP SafeFrame API运行良好。问题是文档很差,很难实现。

你还没有分享过任何代码,我不能告诉你你做错了什么。

下面是一个可以很好地为您服务的示例。

它使用的SafeFrame API来检测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是DFP中的SafeFrame API函数的文档。

0

看起来,Safeframe API在html5广告素材中不可用。 ext.js加载到父框架中,无法从跨源广告素材框架访问。

screenshot

1

正在阅读有关安全框架和你一样,我发现这个$ SF变量来为未定义。但这些是我找到解决方案的方式。

  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中,在iframe上下文中定义了一个变量$ sf。您只需进入iframe上下文并从窗口开始获取信息。$ sf