下载 App

广告位到底怎么才会生效:一个「模拟器能播、上真机全挂」的坑

4 小时前14 浏览综合 包含 AI 合成内容
结论先放:TapTap 制造的官方模拟器能拉起激励视频,不代表你的广告能用;玩家能不能看广告,只取决于你的工程里有没有那份广告位配置。 没配,模拟器一声不响,真机直接全部失败。
适用范围:TapTap 制造(Maker / UrhoX + Lua)接入激励视频广告。本文只讲这条链路,Banner / 插屏 / 开屏不在范围内。

现象:只有我看不到问题

同一台手机、同一个 TapTap 账号:
小游戏模拟器真机
A(早就接过广告)能拉起能拉起
B(新接的)能拉起体力+100、看广告解锁答案,全部提示「广告暂不可用,请稍后重试」
B 的代码是照着 A 抄的,连守卫、防重入、防重复发奖都一样。可 B 真机就是一次都没成功过。
更迷惑的是:B 在模拟器里「看起来成功」了——广告能播、能关,甚至播放结束。但看完之后没有任何奖励,界面上只有一行小字说广告不可用。

根因:模拟器根本没用你的广告位

引擎在 WASM 宿主没有暴露广告桥、以及桌面本地运行时,会走到 FakeAd:load 直接同步回调 success = true,show 给一个占位广告,完全不读你的广告位配置。
也就是说,模拟器上的「广告能播」永远成立,跟你的配置一点关系都没有。它是个恒真的假信号。
而真机宿主读的是构建产物里 .project/settings.json 的 @runtime.ad:
B 的这个文件里,@runtime 只有 multiplayer——没有 ad 字段。宿主拿不到广告位,于是每次请求都失败,游戏侧只能降级成一句「广告暂不可用」。
而 A 的这个文件里有 ad,所以真机一直正常。
注意一个反直觉的点:广告位是开发者级的,不是按应用分配的。B 补齐配置后拿到的两组广告位 ID,和 A 一模一样。所以差别从来不是「B 没有广告位」,而是「B 从来没把配置同步进自己的工程」。

为什么会漏:配置有四个副本,没有任何一处会提醒你

层在哪谁写谁读
平台开通状态开发者控制台(广告结算)人get_ad_config 的 status
云端工作区云端 workspace/.project/settings.jsonget_ad_config云端构建
本地工程.project/settings.json(要入库)云端回写 + merge本地预览、下一次构建
构建产物dist/assets/<hash>.json构建真机宿主
get_ad_config 只写云端,不写本地。于是最典型的一条断链是:
  1. 开发者根本没跑过 get_ad_config → 云端没配置;
  1. 或者跑了,但没再跑一次 build → 本地文件没有 ad → 打出来的包还是没有;
  1. 或者本地有了,但这份源码没进构建 → 产物里还是没有。
这三个断点,模拟器全都测不出来,因为模拟器不看这份文件。

正确接入流程

再补三条 Maker 构建链的固定副作用,别被它们带偏:
  • 每次构建都会产生一个空提交 chore: wake maker build server,历史会脏,正常。
  • 云端还会追加 [<epoch>] sync at ... 提交,可能把你的 project.json version 顶上去。工程里若有版本对账(比如埋点常量要跟 project.json 对齐),不同步就会红。
  • Maker 工程常配双 remote(Maker 源 + 代码镜像),构建只推 Maker 那条,镜像要单独推。

为什么这个坑特别贵

  1. 模拟器没有任何提示。它不但不报错,还给你一个「成功」的假象。
  1. 失败发生在最贵的时候:本地全绿、真机自测……如果你恰好没有真机自测的环境,就是发布给玩家之后才炸。
  1. 它长得像「只有正式版才能看广告」。公测阶段有人跑不通,很容易归因成「等正式上线就好了」。等真上线,问题一模一样地留给玩家——这是最危险的一次误判。
  1. 失败信息只有一句「广告暂不可用」,从文案上完全看不出是「没配广告位」「播放没看完」「宿主报错」还是「请求被防抖拒了」。

给官方的三条建议

1)模拟器应该内置广告模拟

现在的模拟器只会「成功」。而广告的真实分支至少有五种:完整观看、中途关闭、直接关闭、无填充/加载失败、宿主报错。开发者在本地根本造不出后四种,只能靠真机碰运气。
建议把模拟器的占位广告做成可选结果的组件:
  • 看完(发奖)
  • 中途退出(不发奖)
  • 直接关闭(不发奖)
  • 加载失败 / 无填充(给出错误码)
  • 宿主不回调(验证防卡死)
官方做一次,所有接入方都省一套。现在只能自己封装:给广告模块注入假宿主,把五种结果跑成用例——能做,但每个团队重复造一遍。

2)广告位配置必须显式、且和「开通广告服务」绑定

必须先在开发者控制台开通广告服务(广告结算),才会有广告位;然后本地代码/工程里也要有这份广告位配置,玩家才看得到广告。公测和正式阶段都依赖它,跟版本阶段无关。
这条建议真实存在的原因:上面的四层副本没有任何一处做交叉校验。工程里没有 @runtime.ad,构建、预览、真机都不会提前拦你。

3)模拟器就该是「配置体检 + 广告模拟」二合一

官方完全可以在这里一次说清两件事:
  • 配置到底对不对:没配广告位的工程,普通玩家绝对看不了广告——这句话应该在模拟器里直接展示,而不是等真机。顺带给一句 AI 可执行的接入指引(调哪个工具、传什么参数、配置落到哪个文件、怎么验证)。
  • 给你几种模拟结果:配置对了,还要能测错分支;配置不对,就别让你继续往下写。
一个「广告配置:未开通 / 本地未同步 / 产物未包含」的红黄绿灯,价值比一堆文档都高。

4)甚至可以再激进一点,发布给玩家之前如果是非无广游戏应该人工确认

当然,说一千道一万,也只能怪开发者自己学艺不精,多踩踩坑也就经验丰富了。值

给同行的自测清单

真机不能播时,按这个顺序查,别跳、别先怀疑代码:
  1. git show HEAD:.project/settings.json 里有没有 @runtime.ad.ad_spaces?
  2. 当前产物里的 settings 载体 JSON 有没有同内容?
  3. 这份产物是不是最新一次构建?版本号对不对?
  4. 日志里 AD show path=new|legacy 走哪条?AD WARN load fail code=… message=… 的 code 是什么?
  5. 后台的广告服务是不是真的开通了?
以及一条纪律:预览能播 = 状态机可用,不等于广告可用。 广告链路的验收只有真机。
24点·全集更新速报 · 10月25日 · 负号能转正 + −24 算赢截图
24点·全集更新速报 · 10月25日 · 负号能转正 + −24 算赢
以前算出负数得自己把式子反过来重写(3−5 改成 5−3),再接着往下算,一步错就得多绕两下。这版不用了:想怎么减就怎么减,负了再处理。 ✨ 新特性 负号能救。算出负数(3−5 = −2)不用反过来重算:把那张牌拖到丸丸神身上,或者拖到减号上,松手就转正,−2 变 2,牌上的算式跟着改成 5−3,不会留个 −(3−5) 让人看不懂。丸丸神会先提醒你一次。 最后一张是 −24,也算通关。已经算到 −
官方
拼豆小花更新速报 · 10月23日 · 音效焕新 + 排行榜扩容
大家好!这版把局内最常听到的声音重做了一遍——点豆飞起、豆子落位,以及拼完最后一块后整幅扫亮那一段;排行榜一页也放宽到 100 人,难度关的星级线也一并放宽了。 ✨ 新特性:音效焕新 这几个声音一局里要听几百次,所以专门重做了一遍: 飞起音和起飞同拍:点豆的那一下声音就响,不再慢半拍。 音色更「实」:飞起是往上吸的声音,落位是坐进坑里的闷响,连续快速点也不刺耳。 扫亮会跟着唱:拼完最后一块后整幅画
官方
01:04
游戏服务器工程师入门截图
游戏服务器工程师入门
从事游戏服务器开发,需要这些知识储备,造作准备,早学习,为工作做准备
00:47
新游招募令-【创世纪】"命运眷顾勇敢之人!"截图
新游招募令-【创世纪】"命运眷顾勇敢之人!"
欢迎来到这片充斥着枪炮,细菌,与钢铁的土地,旅人。 在这里,世界正处于大争之世。驱动与链接钢铁巨兽的不是蒸汽,而是被湮灭的“信息熵”。人们通过魔晶这一工业奇迹开启了工业化的浪潮,第二次魔导革命于一战后的阵痛中开启,魔导工业技术于实践中爆炸式发展,也带来了不可逆的代价——世界正在枯竭,洋流遭到污染,现实的物理法则开始被人质疑,时序在魔导工业化的浪潮中逐渐崩坏,历史被人所遗忘,又以扭曲的方式重组,人与
1 赞
6 回复
10:35
打工人VS资本家,游戏Demo详细介绍截图
打工人VS资本家,游戏Demo详细介绍
游戏为策略游戏,玩家只需要把握时机召唤角色,释放技能。角色有自己的ai决策逻辑执行寻路、攻击、释放节能。 对现实职场进行讽刺。#发现好游戏
1 赞
龙之谷启程手游丨战士新手加点攻略(剑圣分支)截图
龙之谷启程手游丨战士新手加点攻略(剑圣分支)
一转分支:剑圣(爆发连招流,喜欢高输出选)定位:敏捷爆发、单体高伤、灵活连招,攻速快、打击感强,适合喜欢秀操作、打单体爆发的玩家。核心加点(15-50 级,优先满核心) 1. 必满核心(优先级最高)三段斩(满):突进 + 三连伤害,快速贴近 BOSS,连招起手月影斩(满):剑圣核心单体爆发,高伤 + 剑气,打 BOSS 主力技能。剑气共鸣(满):普攻附带范围剑气,持续输出拉满,清怪 / 单体都好用
1 赞
01:26
高燃 PVP 对决,每一秒都在极限拉扯!截图
高燃 PVP 对决,每一秒都在极限拉扯!
你以为拼的只是手速?在《萍城异闻录》的战场里,硬核操作与心机博弈并存,高手过招,差一步就是生死之别! 华丽技能破空而来,浮空追击、闪避反打、魂卡瞬发,每一个动作都丝滑带感,打击感拉满!没有绝对的无敌,只有瞬息万变的战局 —— 前一秒你还在强势压制,下一秒对手就能用羁绊阵容逆转局势。 是莽夫硬刚,秀翻全场?还是老六埋伏,坐收渔利?在这里,没有固定套路,你的打法,由你定义! 搭配玩家打斗视频,近距离感
【独立小游戏】欢乐三选一|休闲微信小游戏截图
【独立小游戏】欢乐三选一|休闲微信小游戏
大家好,我们独立开发的休闲小游戏《欢乐三选一》已经上线微信小游戏平台啦 玩法简介:通过选择卡牌,合成技能提升自己,来打败强大的boss。 游戏特色: 1. 轻松愉快,没有复杂的操作,仅需要简单的点击即可 2. 随玩随停,3分钟一局,没有时间负担 3. 充满挑战,boss的强大超出你的想象(只打“小白”的朋友,当我没说~)
1 赞
3 回复
想玩什么设定都能玩的引擎这辈子能玩到吗截图
想玩什么设定都能玩的引擎这辈子能玩到吗
【核心理念:作者搭骨架,玩家浇筑世界】 传统游戏是“一栋建好的房子”,玩家只能住在里面。《万象引擎》不同——开发者负责打地基、搭钢筋,玩家负责浇筑水泥、贴瓷砖、摆家具。 地基(开发者预设):游戏引擎框架、AI绘图管线、角色生成系统、互动对话模块、数据结算规则。这些是“钢筋结构”,一旦搭稳,所有世界共享。 浇筑(玩家创造):玩家输入一段世界设定,引擎自动根据设定生成对应的规则、场景、角色和玩法。你写
2 赞
00:15
AI美学方法论:从“如意之心”到“如如之心”截图
AI美学方法论:从“如意之心”到“如如之心”
AI美学方法论:从“如意之心”到“如如之心” 一、核心命题 AI美术的关键,不是让AI完全服从人的意志,而是理解AI自身的能力结构,并顺着它最擅长的方向生成美学。 我真正反对的不是“控制”本身,而是在错误的地方使用错误的控制方式。 美术创作需要开放、生成、筛选; 系统程序需要秩序、逻辑、精密。 所以我的核心思想不是简单的“放任AI”,而是: 美学上顺势,系统上控制;生成时开放,建构时精密。 二、哲
6 赞
2 回复