首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Google覆盖&用于JavaScript的满时隙广告参考

Google覆盖&用于JavaScript的满时隙广告参考
EN

Stack Overflow用户
提问于 2016-11-08 02:15:23
回答 1查看 953关注 0票数 4

我已经用Google HTML5 SDK API在我们自制的播放器中显示了一个完整的广告。

现在,我试图在同一个API中添加一个覆盖广告,但是我找不到相应的文档。在常见问题中有一个指向技术快速启动指南的链接,但事实证明它是为Flash制作的--但我需要HTML5 5/JavaScript的相同指南。

如何实现两者,使用HTML5 5/JavaScript实现Google覆盖和满槽广告?

更新

这是我当前针对两个不同广告请求的JavaScript代码(它现在总是返回覆盖层的一个空广告,因此它还不能工作):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var google = google || {
  ima: 'blocked'
}; //AdBlocker
/*
	#################################################################
	#																#
	#		Required: Google IMA SDK for HTML5						#
	#																#
	#################################################################
*/


wct.videoads = (function() {
  'use strict';

  //---------------------------------------------------------------
  // AdBlocker
  //---------------------------------------------------------------
  if (google.ima == 'blocked')
    return function() {};


  //---------------------------------------------------------------
  // $_
  //---------------------------------------------------------------
  var $_ = {
    // (HTML5 Full-Slot Ads)
    adTagPostroll: '[url removed]',
    adTagOverlay: '[url removed]'
  };


  //---------------------------------------------------------------
  // _
  //---------------------------------------------------------------
  var _ = {
    adsManagerOverlay: {
      destroy: function() {},
      resize: function() {}
    },
    adsManagerPostRoll: {
      destroy: function() {},
      resize: function() {}
    },
    height: 0,
    onError: function() {},
    width: 0
  };


  //---------------------------------------------------------------
  // :
  var createAds = function($container, width, height) {
    //---------------------------------------------------------------
    _.height = height;
    _.width = width;


    //¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
    // Init
    //¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
    google.ima.settings.setLocale(LANGUAGE.id);
    var adDisplayContainer = new google.ima.AdDisplayContainer($container.get(0));
    adDisplayContainer.initialize();

    var adsLoaderPostRoll = new google.ima.AdsLoader(adDisplayContainer);
    var adsLoaderOverlay = new google.ima.AdsLoader(adDisplayContainer);

    var postRollRequest = new google.ima.AdsRequest();
    var overlayRequest = new google.ima.AdsRequest();

    postRollRequest.adTagUrl = $_.adTagPostroll;
    postRollRequest.linearAdSlotWidth = width;
    postRollRequest.linearAdSlotHeight = height;
    postRollRequest.nonLinearAdSlotWidth = width;
    postRollRequest.nonLinearAdSlotHeight = height;
    postRollRequest.forceNonLinearFullSlot = true;

    overlayRequest.adTagUrl = $_.adTagOverlay;
    overlayRequest.linearAdSlotWidth = width;
    overlayRequest.linearAdSlotHeight = height;
    overlayRequest.nonLinearAdSlotWidth = width;
    overlayRequest.nonLinearAdSlotHeight = height;
    overlayRequest.forceNonLinearFullSlot = false;


    //¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
    // LOCAL Events
    //¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
    adsLoaderPostRoll.addEventListener(
      google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,
      onAdsManagerPostRollLoaded,
      false
    );
    adsLoaderPostRoll.addEventListener(
      google.ima.AdErrorEvent.Type.AD_ERROR,
      onAdErrorPostRoll,
      false
    );
    adsLoaderOverlay.addEventListener(
      google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,
      onAdsManagerOverlayLoaded,
      false
    );
    adsLoaderOverlay.addEventListener(
      google.ima.AdErrorEvent.Type.AD_ERROR,
      onAdErrorOverlay,
      false
    );


    //¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
    // :
    var startOverlay = function(options) {
      //¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
      var options = options || {};

      adsLoaderOverlay.contentComplete();
      adsLoaderOverlay.requestAds(overlayRequest);

      _.onErrorOverlay = options.onEmpty || function() {};
    };


    //¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
    // :
    var startPostRoll = function(details) {
      //¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
      return;//postroll is disabled for the moment to avoid any possible conflict with the overlay
      _.onContentPauseRequested = details.onAdStart;
      _.onContentResumeRequested = details.onAdFinish;

      adsLoaderPostRoll.requestAds(postRollRequest);

      _.onErrorPostRoll = details.onEmpty || function() {};
    };


    //¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
    // >
    //¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬¬
    return {
      startOverlay: startOverlay,
      startPostRoll: startPostRoll,
      resize: resize
    };
  };

  //---------------------------------------------------------------
  // :
  var onAdErrorOverlay = function(adErrorEvent) {
    //---------------------------------------------------------------
    _.onErrorOverlay();
    console.warn(adErrorEvent.getError());
    //		_.adsManagerOverlay.destroy();
  };

  //---------------------------------------------------------------
  // :
  var onAdErrorPostRoll = function(adErrorEvent) {
    //---------------------------------------------------------------
    _.onErrorPostRoll();
    console.warn(adErrorEvent.getError());
    //		_.adsManagerPostRoll.destroy();
  };


  //---------------------------------------------------------------
  // :
  var onAdsManagerOverlayLoaded = function(adsManagerLoadedEvent) {
    //---------------------------------------------------------------
    console.debug('overlay ad loaded:');
    console.log(adsManagerLoadedEvent);
  };

  //---------------------------------------------------------------
  // :
  var onAdsManagerPostRollLoaded = function(adsManagerLoadedEvent) {
    //---------------------------------------------------------------
    _.adsManagerPostRoll = adsManagerLoadedEvent.getAdsManager(document.createElement('video'));
    _.adsManagerPostRoll.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError);
    _.adsManagerPostRoll.addEventListener(google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, _.onContentPauseRequested);
    _.adsManagerPostRoll.addEventListener(google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, _.onContentResumeRequested);
    _.adsManagerPostRoll.addEventListener(google.ima.AdEvent.Type.LOADED, function(event) {});


    try {
      _.adsManagerPostRoll.init(_.width, _.height, google.ima.ViewMode[$(document).fullScreen() ? 'FULLSCREEN' : 'NORMAL']);

      // Call start to show ads. Single video and overlay ads will
      // start at this time; this call will be ignored for ad rules, as ad rules
      // ads start when the adsManager is initialized.
      _.adsManagerPostRoll.start();

    } catch (adError) {
      console.error(adError);
    }
  };

  //---------------------------------------------------------------
  // :
  var resize = function(width, height) {
    //---------------------------------------------------------------
    _.adsManagerPostRoll.resize(width, height, google.ima.ViewMode[$(document).fullScreen() ? 'FULLSCREEN' : 'NORMAL']);
  };


  //---------------------------------------------------------------
  // >
  //---------------------------------------------------------------
  return createAds;
}());

EN

回答 1

Stack Overflow用户

发布于 2016-11-12 08:02:05

满槽广告呈现全屏,有一个跳过按钮.您确定要同时呈现覆盖横幅吗?

您需要两个adsManager实例:一个用于满槽,另一个用于覆盖。在所需的时间,发送两个广告请求,但在自己的adsManager实例中呈现每个广告请求。理论上,您将首先呈现满槽广告,以便覆盖可以呈现在满槽广告的顶部。然而,就拿一点盐来说吧,因为它可能会有多个对象和多个生命周期的混乱。另外,请确保您在策略团队中明确了这一点,因为我不确定是否覆盖广告是否符合策略。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40484274

复制
相关文章
将文档导出为pdf
使用QTextDocument与QPrinter实现文档导出为PDF的小示例。 #include <QtWidgets> /* 需要为项目文件添加QT += printsupport */ #include <QPrinter> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPrinter printer(QPrinter::PrinterResolution); printer.setOut
Qt君
2019/11/24
1.4K0
使用python将word文档转换为PDF文档
对于windows系统的编程开发,微软一开始提供了基于VB语言的接口,后来又推出了.NET框架。对于word等offices套件的自动化操作,由于原生支持的特性,采用这些语言是最为方便且灵活的,唯一的缺点就是这些语言的学习成本相对较高。
生信修炼手册
2020/12/11
7.1K1
利用 Python 将 PDF 文档转为语音音频
微信读书里的电子书有配套的自动音频,而且声音优化的不错,比传统的机械朗读听起来舒服很多
AirPython
2021/01/05
1.6K0
利用 Python 将 PDF 文档转为语音音频
怎么快速、免费将外文PDF文档翻译为中文?
在我们日常生活中可能会接触到众多外文PDF资料,那么我们怎么才能把他们快速翻译成中文呢?今天给大家分享几个小方法。
用户1315847
2018/07/26
4.8K0
怎么快速、免费将外文PDF文档翻译为中文?
利用Python将PDF文档转为MP3音频
微信读书里的电子书有配套的自动音频,而且声音优化的不错,比传统的机械朗读听起来舒服很多。
朱卫军 AI Python
2022/04/03
1.8K0
利用Python将PDF文档转为MP3音频
将DataTable转换成CSV文件
该文介绍了如何将DataTable转换成CSV文件的方法,包括使用C#和StreamWriter等工具。
彭泽0902
2018/01/04
1.5K0
python读取pdf文档
# -*- coding: utf-8 -*- #读取pdf文档 from pdfminer.pdfparser import PDFParser,PDFDocument from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.pdfdevice import PDFDevice import pdfminer.pdfinterp #获取文档对象 fp = open("naacl06-shi
py3study
2020/01/08
7950
如何使用JS将 HTML 页面或表单转化为 PDF文档
PDF 是一种流行的文件格式,我们用来在不同平台和设备上呈现和共享具有固定布局的文档。
前端达人
2023/08/31
5750
如何使用JS将 HTML 页面或表单转化为 PDF文档
python读取pdf文档-实战
# -*- coding: utf-8 -*- #读取pdf文档 from pdfminer.converter import PDFPageAggregator from pdfminer.layout import LAParams from pdfminer.pdfparser import PDFParser,PDFDocument from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.
py3study
2020/01/06
8890
pdf文档怎么拆分呢?
1、首先去https://www.e-iceblue.cn/Downloads/Free-Spire-PDF-JAVA.html这里下载jar包
java后端指南
2021/12/24
1K0
pdf文档怎么拆分呢?
R语言操作pdf文档
至此对pdf文档进行文本的提取过程基本完成。当然这里有一个漏洞那就是没有开发提取pdf中表格的功能,为此有团队开发了对应的包pdftables。但是这个地方需要在https://pdftables.com/注册ID才可以应用提取表格功能,并且有页数限制。另外还有就是从pdf中提取图像的工具也并未发现。为此还是希望大牛进行后期的扩展。
一粒沙
2021/07/05
2K0
python实现pdf文档合并
之前一番在免费知识星球给大家开发过一个在windows下使用的简单的pdf合并工具。其实用python去实现真的很简单,用了tkinter + PyPDF2 + pyinstaller。 今天一番来解读下这个小工具怎么用python实现pdf文档合并的,而且合并完后还自带目录。
efonfighting
2019/10/08
1.2K0
Java 合并、拆分PDF文档
处理PDF文档时,我们可以通过合并的方式,来任意组几个不同的PDF文件或者通过拆分将一个文件分解成多个子文件,这样的好处是对文档的存储、管理很方便。下面将通过Java程序代码介绍具体的PDF合并、拆分的方法。
物流IT圈
2019/07/16
1.8K0
Java 合并、拆分PDF文档
pdf转word文档总结
这里介绍的方法分为两种,一种是直接转为图片版的word,也就是不可编辑的;另一种就是转为可编辑的word,目前很多软件都是要收费的~
全栈程序员站长
2022/09/06
2.8K0
pdf转word文档总结
DataTable.Select 返回DataTable
在实际编程工程中,常常遇到这样的情况:DataTable并不是数据库中的,或者DataTable尚未写到数据库,或者从数据库中读出的DataTable已经在本地被改动,又没有写回数据库(可能还要作其他改动),在这些情况下,其实只要用.NET类库中提供的DataView类的强大功能(主要是用它的RowFilter属性),就能方便地解决这类查询问题。 常有网友在网上询问怎么在DataTable中执行DataTable.Select("条件")返回DataTable,今天我在这里给个解决方法给大家参考:代码如下
跟着阿笨一起玩NET
2018/09/18
1.7K0
利用fluorineFx将DataTable从.Net传递到Flash
FluorineFx自带的示例都不错,就是有点不简洁,下面的代码基本上已经最简版了(环境vs2010) 1、先创建一个Web Application,然后添加FluorineFx以及FluorineFx.ServiceBrowser的引用 这二个程序集的默认位置在: C:\Program Files (x86)\FluorineFx\Bin\net\3.5\FluorineFx.dll C:\Program Files (x86)\FluorineFx\Bin\net\3.5\FluorineFx.Serv
菩提树下的杨过
2018/01/23
2.4K0
利用fluorineFx将DataTable从.Net传递到Flash
基于iTextSharp的PDF文档操作
  公司是跨境电商,需要和各种物流打交道,需要把东西交给物流,让他们发到世界各地。其中需要物流公司提供一个运单号,来追踪货物到达哪里?!   最近在和DHL物流公司(应该是个大公司)对接,取运单号的方式是调用对方提供的API,简单说,就是我们传一些发货地址和客户信息,要发的货物等,对方返回一个运单号和物流面单(就是我们淘宝快递上的面单)。过程呢,还是比较顺利的,经过一系列沟通,最终还是实现了功能   下面还是说说没有实现的功能,如果都实现了,也不用写这篇博客了。不足之处在于DHL提供的面单,没有提供要拣哪些
用户1219352
2018/02/01
1.8K0
基于iTextSharp的PDF文档操作
爬虫爬取英文文档存为PDF,在读取PDF自动翻译文档
这几天在爬了Python的官方文档,但是它里面全是英文,只有数字,没有汉字,原谅我这个英语渣渣搞不懂,只能靠翻译了,如果是复制到百度翻译的话太慢,耗时间。所以就直接用爬虫来搞了,自动化翻译文档
andrew_a
2019/07/30
1.4K0
爬虫爬取英文文档存为PDF,在读取PDF自动翻译文档
spring-boot pdf文档下载
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
johnhuster的分享
2022/03/28
9410
点击加载更多

相似问题

使用jsPDF将HTML字符串呈现为PDF文档

12

将报表呈现为pdf

10

如何将QRImage呈现为可用于pdf文档的.png

11

将HTML呈现为PDF文件

22

将Datatable转换为PDF

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文