下载 App

本地接入不了广告的看下这里,如何本地100%接入

09/0772 浏览
首先进入开发者界面看到未上线的游戏,点进去,把游戏服务-广告变现打开。
然后告诉本地这些,可复制txt给你的ai,也可直接复制前五条尝试接入。不行就全部放到txt或者md里发给ai

horizontal linehorizontal line

name: setup-ads description: "面向本地和云端 UrhoX/Maker 开发者,通过官方 Maker MCP 同步广告配置,并使用 UrhoX 内置 API 设计、接入和排查激励视频广告。Use when users need to (1) 接入或配置广告, (2) 添加看广告复活、双倍奖励、免费刷新等奖励广告, (3) 检查广告状态或广告位配置, (4) 调用或排查 sdk:ShowRewardVideoAd, or (5) 避免错误引导到 AdMob、TopOn、Unity Ads 等外部平台."

UrhoX 广告接入

只接入用户主动选择的激励视频广告。当前游戏侧公开 API 只有 sdk:ShowRewardVideoAd(callback);不要虚构 Banner、插屏或开屏广告接口。

接入边界

UrhoX 已经完成宿主和广告平台接入。游戏开发者只负责:
  1. 通过官方 Maker MCP 同步当前项目的广告配置。
  2. 在合适的游戏 UI 中提供“看广告获得奖励”的按钮。
  3. 调用 sdk:ShowRewardVideoAd(callback)
  4. 在成功回调中执行项目已有的奖励逻辑。
  5. 在失败时恢复按钮并提示玩家稍后重试。
不要要求开发者:
  • 注册 AdMob、TopOn、Unity Ads 或其他广告平台账号;
  • 创建应用、广告单元或 placement ID;
  • 提供广告平台 API key、App ID、Secret 或证书;
  • 安装第三方广告 SDK,修改 Gradle、Podfile、原生工程或应用清单;
  • 自己查找或登录第三方广告平台控制台完成配置。
不要用第三方广告平台的通用接入教程替代 UrhoX API。遇到广告不可用时,检查 UrhoX 文档、运行环境和回调结果;不要把游戏开发者引导到外部平台注册或重新接 SDK。

先同步广告配置

get_ad_config 是当前项目广告开通状态和广告配置的唯一真源。它会读取 .project/project.json 中的 app_iddeveloper_id,调用官方配置接口,并把结果写入 .project/settings.json@runtime.ad。不要手工传入广告位 ID,也不要直接请求内部 广告接口。

本地 Maker 开发

  1. 先用当前环境提供的 Maker 状态工具检查工作区;目标必须是具体游戏项目,不是 UrhoX 引擎仓库或项目的上级目录。
  2. 如果当前客户端通过 Maker 插件包装动态工具,先列出实时工具,再调用其中的 get_ad_config;如果客户端直接暴露 Maker MCP 工具,则直接调用同名工具。
  3. 只在 .project/project.json.project/settings.json 已完成初始化后调用。
  4. 不要自己构造或展示 _mac_token_project_path、Client ID 或 Client Token;本地 Maker Proxy 负责注入登录态和项目上下文。
  5. 如果缺少 app_iddeveloper_id,调用一次 generate_test_qrcode 生成项目身份, 然后重试 get_ad_config。不要为此改用发布工具。
如果主要项目配置尚未初始化,不要根据 SDK 文档、.maker-mcp/config.json、本地回调或 .project 目录存在与否猜测广告可用。构建可能提交并推送项目;只有用户明确要求构建、 提交或预览时才执行构建,否则说明当前无法同步广告配置。

云端 Maker 开发

在云端项目工作区直接调用官方 MCP 的 get_ad_config,随后使用同一份 @runtime.ad 结果。不要在云端另写一套广告位初始化逻辑,也不要让开发者复制本地凭证。 如果云端当前没有暴露该工具或缺少项目身份,明确说明广告状态尚未验证,不要假定已经 开通。

处理同步结果

  • ad.status == 1:配置已生效,可以继续接入或验证游戏代码。
  • ad.status != 1:停止实现真实广告流程,向开发者说明 status_messagewarning
  • 返回 ad.url 时,只把它作为 TapTap 官方开通或异常处理入口交给开发者;不要自行访问、 代办,也不要替换为 AdMob、TopOn、Unity Ads 等第三方平台注册流程。
  • 开发者完成官方处理后,再调用 get_ad_config 同步一次;不要循环重试。
  • ad_spacestop_on_placements 只供宿主运行时消费。不要在 Lua 中复制、修改或硬编码。
用户只要求解释、设计建议或只读审查时,不调用会写入 settings.jsonget_ad_config。可以读取已有配置辅助检查,但必须标注它不是刚同步的实时状态;需要验证 实时状态时,先征得用户同意。

工作流程

  1. 判断当前是本地 Maker、云端 Maker,还是只读审查。
  2. 对接入或配置任务,按上节调用 get_ad_config,确认 ad.status == 1
  3. 阅读 engine-docs/recipes/sdk.md 的“激励视频广告”章节,核对当前 API 契约。
  4. 找到用户指定的入口及项目已有的奖励、存档和 UI 流程。
  5. 明确“玩家主动做什么、看到什么提示、成功后得到什么”。
  6. 沿用项目现有架构完成最小改动,不主动重构其他系统。
  7. 处理请求未受理、成功、提前关闭、加载失败、无回调和页面销毁。
  8. 验证重复点击和迟到回调不会重复发奖或卡住 UI。
用户只要求检查时保持只读,报告确定的 API 错误和体验问题,不顺带整改其他系统。

核心 API

lua
sdk:ShowRewardVideoAd(function(result) if result.success then -- 广告完整观看,发放奖励 else -- 未完整观看或加载失败,不发奖励 print("广告未完成: " .. tostring(result.msg)) end end)
回调结果:
字段类型含义
successboolean是否完整观看并满足发奖条件
msgstring平台结果或错误描述
extrastringSDK 扩展 JSON;没有时为空字符串
success 作为唯一发奖依据。不要根据播放时长、按钮状态、msg 文案或 extra 自行推断成功。"embed manual close" 表示提前关闭,必须视为失败。
API 还会返回一个 boolean,表示本次展示请求是否被受理。它不代表广告观看成功。 回调可能在调用栈内同步失败,也可能稍后异步返回,因此同时处理返回值和回调:
lua
local adInFlight = false local function showRewardAd(options) if adInFlight then return end adInFlight = true local completed = false local callbackFired = false local cancelWatchdog local function finish(result) if completed then return end completed = true adInFlight = false if cancelWatchdog then cancelWatchdog() end if result and result.success == true then options.grantReward() if options.onSuccess then options.onSuccess() end return end if options.onFailure then options.onFailure(result and result.msg or "广告暂不可用") end end -- 可选:复用项目已有计时器。startWatchdog 接收超时回调并返回取消函数。 if options.startWatchdog then cancelWatchdog = options.startWatchdog(function() finish({ success = false, msg = "广告响应超时,请稍后重试" }) end) end local accepted = sdk:ShowRewardVideoAd(function(result) callbackFired = true finish(result) end) if accepted == false and not callbackFired then finish({ success = false, msg = "广告暂不可用,请稍后重试" }) end end
如果需要无回调 watchdog,只能把本次流程结束为失败并恢复 UI,绝不能因为等待时间、 焦点变化、切后台时长或“玩家大概率看完”而发奖。watchdog、正常回调、同步拒绝和重复 回调必须共用同一个一次性完成状态;先完成的路径关闭本次流程,其他路径直接返回。
在成功分支中调用项目原有的奖励方法;不要为了接广告改造既有数据层或存档结构。

引擎已经处理的事项

  • get_ad_config 同步到 @runtime.ad 的广告位 ID、国内/海外平台映射和变现状态, 由宿主配置与引擎 Bootstrap 加载。
  • 广告平台账号、原生 SDK 和宿主应用配置不属于游戏项目的接入工作。
  • 引擎内置 3 秒调用防抖,并从服务端获取广告冷却间隔。
  • 不支持真实广告 SDK 的运行环境会使用内置 FakeAd 预览。
  • 平台差异由同一个 Lua API 适配。
不要在游戏脚本中硬编码广告位 ID、修改 ad_spacestop_on_placements,也不要直接 调用 urhox-libs/FakeAd。不要通过循环重试绕过引擎冷却;收到失败后恢复 UI,让玩家 稍后主动重试。

审查现有项目

先定位所有广告调用:
bash
rg -n 'ShowRewardVideoAd|广告' <project>/scripts
对每个入口追踪完整链路:
text
按钮 → SDK 调用 → 回调结果 → 项目原有奖励方法 → UI
重点检查:
  • 是否忽略 boolean 返回值,导致按钮或全局锁永久卡住。
  • 是否把失败、无回调、超时或失焦转成成功。
  • 页面关闭或场景切换后,回调是否仍操作失效 UI、错误对象或错误列表索引。
  • 是否硬编码广告位或广告视频 URL。

广告设计原则

让玩家主动选择

  • 在按钮上明确写出行为和收益,例如“看广告复活”或“看广告领取双倍金币”。
  • 在点击前说明准确奖励,不使用伪装按钮、误导文案或默认勾选。
  • 不在启动、首次教学、战斗操作中或其他无预期时刻强制弹出广告。

放在自然节点

优先选择玩家已经停下并面临明确选择的节点:
  • 失败结算时复活一次;
  • 关卡结算时领取双倍奖励;
  • 主动补充体力、免费刷新或重抽;
  • 可选地缩短等待时间。
不要为了制造广告需求而故意削弱正常奖励、拖慢流程或制造虚假失败。

表达清楚

  • 在按钮上直接说明广告行为和具体收益。
  • 成功后及时显示结果,失败时说明没有获得奖励。
  • 同一次观看最多发奖一次。重复回调、重复点击或页面重建不得重复发放。

失败不惩罚玩家

  • 提前关闭、加载失败、平台不支持或冷却中均不发奖励。
  • 失败时不得扣除已有资源、消耗复活次数或破坏当前进度。
  • 给出简短可行动提示;技术错误写入日志,不把原始 SDK 错误堆给玩家。
  • 广告期间禁用触发按钮并显示等待状态;回调或请求拒绝后必须恢复。

验证清单

  • 正常完整观看只发放一次奖励。
  • 提前关闭、加载失败、nil/异常结果和 accepted == false 均不发奖励。
  • accepted == false 同步触发回调和不触发回调两种路径都只结束一次。
  • 快速连点不会发起多个广告,也不会重复发奖。
  • 无回调 watchdog 只恢复 UI 并报失败,不会推断成功。
  • 重复回调和超时后的迟到回调不会发奖。
  • 广告返回时原页面已经关闭,不会访问失效 UI 或卡住全局输入。
  • 成功、失败和冷却提示清晰,按钮最终都会恢复可用状态。
  • 本地 FakeAd 流程可走通;真实 SDK 行为在目标宿主或设备上复验。
  • 没有硬编码广告位或广告视频 URL。
猜你想搜
taptap制造 showrewardvideoad
别再烧积分了!从每次 2000 到每次 50 的血泪经验截图
别再烧积分了!从每次 2000 到每次 50 的血泪经验
适用场景:所有在用 TapTap Code 开发游戏的小白 难度:★☆☆☆☆ 背景最近群里总有人"炫耀"一次操作花了几千积分,说实话这不是值得高兴的事——这是在告诉所有人你的开发方式有根本性问题。我也走过这条弯路,所以来说说怎么改。 积分消耗的本质是什么积分 = AI 处理的 token 数量 = 你发给 AI 的内容 + AI 回给你的内容所以烧积分的本质只有两种: 你让 AI 做了大量无效/重
精华
68 赞
21 回复
03:06
为了不被斩杀,我只能做到这些了截图
为了不被斩杀,我只能做到这些了
之前一直申请不到计划3,之前说太花哨,后面说体量完成度不足,在我一番小作文下,编辑终于给了我解答,什么原生质感,玩家开局体验啥的。 本来计划2也够用,准备以后再优化了,结果计划2赠送的积分要砍半了,学生党实在消费不起,于是只能再冲一波计划3了 从周六中午到现在一天半时间,优化了一遍角色卡,战斗卡,还有抽卡界面,优化了新手教程,该说不说确实比之前要舒服些。 前半部分为新版,后半部分为旧版。 明天再次
33 赞
6 回复
点击`经营`积累,从一到万的修行截图
点击`经营`积累,从一到万的修行
开局一粒米:从微尘到宇宙,这一粒米中藏着真正的须弥山 佛观一粒米,大如须弥山。若人不了道,披毛戴角还。 在忙碌的现代生活中,我们往往习惯了快节奏的感官刺激,却鲜少有机会静下心来,体会“积累”本身的力量。TapTap上有一款独具禅意的放置经营游戏—— 《开局一粒米》 ,它没有华丽的特效轰炸,也没有激烈的对抗,有的只是从无到有、从微尘到宇宙的极致养成体验。游戏目前热度已突破4000,吸引了大量玩家在数
所有游戏都是自己的构思,截图
所有游戏都是自己的构思,
希望能给你的游戏开发带来灵感
1 赞
01:27
《大二暑假,我用AI做了一款属于自己的游戏》截图
《大二暑假,我用AI做了一款属于自己的游戏》
本人自制游戏现已加入taptap封闭测试(仅适配安卓机型)欢迎大家前来尝试(八月十号可以正式开始游玩) 如果有建议或者bug反馈可以加入qq群928501443 #发现好游戏 #游戏日常 #浅评一下 #今天游戏圈发生了啥
3 赞
人不知米贵截图
人不知米贵
我今天在过堂的时候,看见各人吃饭,渐渐有些散乱。吃饭时候容易散乱,亦正好对治散乱。世人不知人身之宝贵。《大涅槃经》偈曰:“生世为人难,值佛世亦难,犹如大海中,盲龟遇浮孔。”《杂阿含经》曰:“大海中有一盲龟,寿无量劫,百年一遇出头。复有浮木,只有一孔,漂流海浪,随风东西。”盲龟百年一出,得遇此孔。凡夫漂流五趣海,还复人身,甚难于此。 《显扬论》曰:“一日月之照临,名一世界;此一世界,九山八海和四洲。
开发心得-界面布局心得截图
开发心得-界面布局心得
大家好,我正在用 TapTap 制造制作一款2D 治愈林间徒步旅行游戏《徒步荒野》。 我分享一下我的开发心得,希望能有用,下面是一些界面布局的心得。 第一步:定版式、操作 先确定游戏是横版还是竖版、需要哪些操作按钮,敲定整体玩法思路。 我的玩法灵感参考《边境之旅》,主打散步看风景、沿途触发随机事件。 原版是 3D,考虑到自己是新手,选择2D 横版街机式来做,制作更简单、好上手。 第二步:敲定全局美
6 赞
3 回复
【游戏上新】——宅男打丧尸截图
【游戏上新】——宅男打丧尸
这是一款横向俯视角射击生存游戏,主打"轻松上手、越玩越爽"的爽快体验。游戏目前已包含: 四种核心模式:挑战、防守、生存、无尽,满足不同玩家口味 多种枪械,从手枪到重型火力,打出自己的风格 地雷,手雷,枪架多种不同军火自由选择,给敌人造成最大伤害 完整的成长体系:角色等级、军火系统、被动技能,越肝越强 丰富的敌人设计:普通丧尸到多种 Boss,战斗层次感明显 未来会制作更多不同的角色,天赋,军火,玩
4 赞
12 回复
AI 生成的 NPC 太假?那是你没给它注入“灵魂” | TapTap 制造截图
AI 生成的 NPC 太假?那是你没给它注入“灵魂” | TapTap 制造
在多人或竞技游戏中,如何让 AI 队友不呆板?如何在高延迟下实现丝滑的竞技体验?本期我们采访了《猛攻兄弟》与《飞驰登山拉力赛车》的作者,分享他们的经验之谈~ 2026/03/30 - 2026/4/6 本期核心看点: 数据概览:该周上架游戏中动作策略模拟类持续领跑优质分发榜,占比均达 43.08%。 重点关注:让 AI 像活人,让同步“零延迟” —— 多人竞技开发实战 避坑指南:人工测评准入与分
精华
26 赞
6 回复
如何提升你游戏中的UI美术水平截图
如何提升你游戏中的UI美术水平
一、请为你的游戏挑选一款合适的字体 很多开发者没有注意到其实UI界面中最重要的元素是字体,一款合适的字体能给整个游戏的界面感官带来蜕变。 请看案例 那么如何挑选适合自己的字体呢? 我总结出了一些小经验可供参考: 黑体:通用 宋体:古风、武侠、修仙 楷体:古风、武侠、修仙 圆体:卡通、动漫、Q版 科技:科幻、未来、电子 顺手分享一个免费可商用字体网站: 当然 如果你不知道自己的游戏适合什么风格
精华
122 赞
44 回复