H5接入常见问题
广告是否支持除了OPPO小游戏或OPPO浏览器之外的环境调试?
解决方法:
需要在OPPO小游戏(H5小游戏)或OPPO浏览器(H5站点)环境进行测试。
引入JS SDK后报错 Cannot read property 'appendChild' of null
解决方法:
将广告的script标签放在body标签后面可以解决问题。
请求广告时出现1003?
解决方法:
是否使用的是oppo手机
同部手机某些广告类型有广告,有的广告类型没有广告,可以降低请求频率,可将appid、posId提交给商务查看
同部手机所有广告类型返回1003,可使用其他的手机验证,若其他手机还是不行,可联系商务处理
【建议】使用广告预览功能(路径:广告联盟-工具中心-广告预览),将手机IMEI号与广告位ID绑定生成预览信息,再进行广告测试
插屏或BANNER广告点击后游戏无反应(H5小游戏)
解决方法:
尝试在游戏中创建一个iframe标签,设置src属性,如https://www.oppo.com,并尝试点击;
若点击后仍出现相同情况,需检测游戏逻辑是否问题;
白鹭引擎尝试手动触发
egret.ticker.resume
;如果以上步骤未解决问题,可以联系运营人员反馈。
创建广告时提示opUnion不存在
解决方法:
检查运行环境。目前仅允许在OPPO小游戏(H5小游戏)或OPPO浏览器(H5站点)下运行JS SDK,且需要保证Android系统在4.4及以上版本;
尝试输出window.android.getAppVersion()。如有报错,请下载最新的调试包,https://cdofs.oppomobile.com/cdo-activity/static/201809/30/gamehall/book/not_battle/readme.html(H5小游戏);
若使用的仍旧是测试环境JS SDK,请改成正式:
<script type="text/javascript" src="https://adsfs.oppomobile.com/mp/app/union/h5/index.js"></script>
;尝试输出 window.OppoWebPage.getCommonBrowserInfo()。若是 undefined ,请联系运营人员反馈加域名白名单(H5站点);
尝试把script标签放到body标签后面;
尝试动态加载JS SDK,并检测是否加载成功;
如果以上步骤未解决问题,可以联系运营人员反馈。
containerId是什么?
解决方法:
DOM(https://developer.mozilla.org/en-US/docs/Glossary/DOM),是由开发者通过HTML或者Javascript生成的,containerId即为开发者生成的DOM的id属性(https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id);
开发者生成的广告想置于哪一个DOM中,则将该DOM的id传递;
H5小游戏:若是原生广告,由webgl渲染生成的广告,请传递游戏的canvas的id。
例: 创建banner的DOM
var id = '_' + Math.random().toString(36).slice(2);
el = document.createElement('div');
el.id = id;
el.style.position = 'absolute';
el.style.zIndex = 999;
el.style.bottom = 0;
el.style.width = '100%';
el.style.fontSize = 0;
document.body.appendChild(el);
Webgl渲染图片跨域(H5小游戏)
解决方法:
若图片为本地渲染,则不会出现跨域的错误;
若非本地渲染,可以使用游戏内元素代替图片素材进行渲染。
出现Uncaught in promise
解决方法:
详见官方文档: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise;
需要加上catch捕获错误。
收到日志报"Mixed Content: The page at ...... was loaded over HTTPS, but requested an insecure image ...... This content should also be served over HTTPS."
解决方法:
对接入无影响,可以直接忽略。
Banner广告未出现
解决方法:
检查containerId是否填写正确,通过输出document.getElementById(containerId)校验;
使用 getBoundingClientRect查看位置;
设置 css属性,例如:z-index,postion,top,width等;css属性参考文档:http://css.doyoe.com/;
如果以上步骤未解决问题,可以联系运营人员反馈。
视频广告展示时会跳转到其他页面
解决方法:
需要改动触发展示的事件为click。
插屏/视频广告加载成功但未展现
解决方法:
create方法后无法直接调用show方法,需要在触发展现广告前创建广告
错误例子:
var ad = opUnion.createInterstitialAd({
...
});
ad.show(); // 错误,create之后直接调用show
正确例子
var ad = opUnion.createInterstitialAd({
...
});
xx.onclick = function () {
ad.show(); // 正确,在调用show之前已经create
};
Banner广告距离底部有一段距离
解决方法:
设置渲染Banner的DOM节点样式的fontSize为0。
插屏广告反复出现关闭后弹出现象
解决方法:
需要检查代码逻辑,插屏广告在关闭后会自动加载广告。
Banner广告如何控制显示/隐藏
解决方法:
可以通过控制展示广告的DOM元素的样式控制,如控制DOM的 display 为 block/none 显示隐藏。
H5接入常见错误码
值 | 描述 | 解决方案 |
---|---|---|
0 | 成功 | |
1 | 未知错误 | 可检查手机是否OPPO手机 |
1001 | 参数错误 | |
1002 | 对象不存在 | |
1003 | 无广告返回,开发者需要对该情况进行兼容处理 | |
1004 | 请求广告错误 | |
1014 | 广告请求应用ID无效 | 检查代码中的mediaId与申请的mediaId是否一致,是否存在空格 |
1015 | 广告请求应用包名无效 | |
1016 | 广告请求广告位ID无效 | 检查代码中的posId与申请的posId是否一致,是否存在空格 |
1016 | 广告请求广告位ID无效 | |
1029 | 广告请求类型错误 | |
20001 | 广告请求错误 | |
20002 | 广告加载中 | |
20003 | 浏览器或游戏大厅版本不支持 |