跳转到内容

广告(Construct 3)

FRVR SDK 插件把广告暴露成普通的 Construct 3 动作 / 触发器 / 表达式。完全不写 JavaScript —— 一切在事件表里完成。

动作

动作作用
Show interstitial ad关卡之间的全屏插屏。fire-and-forget。
Show rewarded ad玩家主动看、看完才发奖励的激励广告。
Show rewarded interstitial ad激励流程的别名(按激励广告来弹)。
Show banner ad / Hide banner ad常驻横幅;一直显示到你隐藏它。

触发器

触发器何时触发
On reward granted激励广告完整看完 —— 在这里发奖励
On ad skipped激励广告弹出来了但提前被关掉(用户跳过)—— 不发奖励
On ad error广告弹不出来、没有库存,或返回了意外结果。
On ad finished广告正常关闭后触发(看完 跳过都会触发)。适合用来恢复游戏 / 重新启用 UI。出错时不触发。

表达式

表达式返回
FRVR SDK.LastAdResult最近一次激励广告的结果:"completed""delivered""error"
FRVR SDK.LastAdError最近一次 On ad error 的错误信息(否则为空)。
Condition:  On button "ShowInterstitial" clicked
Action:     FRVR SDK → Show interstitial ad

不需要处理奖励 —— 这个动作是 fire-and-forget。下一次插屏会受 SDK 的默认节流约束(插屏之间约 5 分钟;一次会话开头约 100 秒内会被屏蔽)。节流规则见 Web SDK 广告

激励广告有 三种 可能的结果,每一种都对应自己的触发器。这与 SDK 的 COMPLETED / DELIVERED / 错误模型一致 —— 见 Web SDK 广告 → 展示一条广告

Condition:  On button "WatchAd" clicked
Action:     FRVR SDK → Show rewarded ad

Trigger:    FRVR SDK → On reward granted      // 完整看完
Action:     Add 2 to Coins
            System → Set CoinsMultiplier to 2

Trigger:    FRVR SDK → On ad skipped          // 提前关掉 —— 不发奖励
Action:     弹 "看完整支广告才能拿奖励" 的提示

Trigger:    FRVR SDK → On ad error            // 没库存 / 弹不出来
Action:     弹 "暂时没有广告 —— 稍后再试" 的提示
            Set WatchAdButton enabled
  • On reward granted 只在真正完整看完时触发 —— 跳过、关闭、出错都不会触发 —— 所以在这里发奖励永远是安全的。
  • On ad skipped 是明确的 “用户中途退出” 信号。弹一条 区别于 错误的提示,什么都不发
  • On ad error 覆盖其余所有情况:没库存、被节流,或请求被拒绝。

On ad finished 在广告 关闭 后触发 —— 看完和跳过都会触发(但出错时 不会)。用它来恢复游戏或重新启用按钮,不管奖励有没有拿到:

Trigger:  FRVR SDK → On ad finished
Action:   System → Set game state to "playing"
          Set WatchAdButton enabled

因为它在出错路径上不触发,记得也在 On ad error 里重新启用按钮(如上所示)。

在任意触发器里都可以用表达式读取结果 —— 方便打日志或共用一个处理块:

Trigger:  FRVR SDK → On ad error
Action:   FRVR SDK → Log event "ad_error" with FRVR SDK.LastAdError

FRVR SDK.LastAdResult 会返回最近一次激励广告的 "completed""delivered""error"

Action:  FRVR SDK → Show banner ad      // 一直显示
Action:  FRVR SDK → Hide banner ad      // 之后隐藏

当前的 Construct 插件 没有 暴露 “rewarded ready” 条件。与其把按钮挂在 readiness 上,不如让它一直可点,然后处理结果:如果没有可用广告,请求会走 On ad error,你在那里弹一条 “稍后再试” 的提示并重新启用按钮即可。

底层 Web SDK 确实提供了 isReady / isSupported(见 Web SDK 广告 → 按就绪状态控制 UI),但这些目前还没有作为 Construct ACE 暴露出来。