【问题标题】:How to preview an ad using the preview_url in the creative_spec?如何使用 creative_spec 中的 preview_url 预览广告?
【发布时间】:2011-09-28 13:31:06
【问题描述】:

我正在开发一个管理 Facebook 广告活动的 Facebook 连接网站,我有一个小 问题。 当我使用 API 创建广告时,我在创建的广告的 creative_specs 中收到 preview_url,然后我想在我的网站上显示它。 但是,我得到的 URL 在 Facebook 内部。例子: http://www.facebook.com/ads/api/creative_preview.php?cid=6003167825281

由于 facebook 框架检测代码,我无法在 iframe 中显示它,并且我无法在 AJAX 调用中请求它(我不断收到错误请求 4xx)... 那么到底如何才能在我的网站中预览使用 Facebook 广告 API 创建的广告呢?

谢谢, 亚尼夫

【问题讨论】:

    标签: facebook preview ads facebook-ads-api


    【解决方案1】:

    您可以查看此参考:http://developers.facebook.com/docs/reference/ads-api/generatepreview/

    --- 首先你需要通过

    获取账户CSS
    $url  = 'https://graph.facebook.com/act_' . $bizId  . '/adpreviewscss?access_token=' .  $access_token;
    

    --- 然后通过

    获取HTML部分
    $url  = 'https://graph.facebook.com/' . $adId  . '/previews?access_token=' .  $accessToken;
    

    --- 添加这个 CSS 补丁

      /* ---- Ads Preview Styles ----------------------- */
                     a.forceLTR{cursor:pointer;color:#3B5998;text-decoration:none}
                     .fbEmuPreview{border:1px solid #E5E5E5;background-color:#FFF;width:234px;padding:10px}
                     .fbEmuEgo{line-height:13px}
                     .fbEmu .title{font-weight:700;margin-bottom:0!important}
                     .fbEmu .forceLTR{direction:ltr;text-align:left;display:block}
                     .fbEmu .adInfo a.identity{color:gray;display:block;white-space:nowrap}
                     .fbEmu .image_body_block{padding-top:3px}
                     .clearfix{zoom:1}
                     .clearfix::after{clear:both;content:".";display:block;font-size:0;height:0;line-height:0;visibility:hidden}
                     .fbEmuEgo .image{width:100px;display:block}
                     .lfloat{float:left}
                     .-cx-PRIVATE-uiImageBlock__mediumImage{margin-right:8px}
                     .-cx-PRIVATE-uiImageBlock__content{overflow:hidden}
                     .-cx-private-uiimageblock__content a{font-size:11px}
                     .fbEmu .body .fbEmuLink{color:#333}
                     div.fbEmuEgo .image .img{padding-top:3px;max-height:72px;max-width:100px}
                     .fbEmuEgo .action{color:#777;margin-top:5px}
                    .uiIconText{padding-left:21px;position:relative}
                    .uiIconText .img{left:0;position:absolute;top:-1px;vertical-align:middle}
                    .sx_39ed22{width:12px;height:11px;background-position:-49px -154px}
                    .sp_buw69i{background-image:url(http://static.ak.fbcdn.net/rsrc.php/v2/yR/r/hqPYFjMiGCV.png);background-repeat:no-repeat;display:inline-block;height:16px;width:16px}
                    a.forceLTR,a.uiIconText{cursor:pointer;color:#3B5998;text-decoration:none}
    

    【讨论】:

      【解决方案2】:

      同时从您存储在数据库中的数据或从 api 检索具有广告 ID 的广告详细信息。

      【讨论】:

      • 是的,我知道我可以显示我的数据库中的数据或从 api 获取广告的数据,但我想完全按照 Facebook 在 Facebook.com 上的显示方式显示广告......我不'不想构建 facebook 拥有的每种广告类型(以及未来的广告类型)的 HTML。这就是他们提供 preview_url 字段的原因。问题是它不能作为 iframe 嵌入到您的网站中,现在唯一的方法是将其作为新的浏览器窗口打开。
      • 我想没有办法解决这个问题 - 但到目前为止,您只有一种广告类型,即标准传单。您可以通过复制粘贴他们的 html 和 CSS(chrome 检查器,FF firebug)来模拟它并重新创建它 - 使其完美。大约需要一个小时才能在任何布局中正确包装等。
      猜你喜欢
      • 2013-05-02
      • 2016-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多