Skip to content

Ads (Construct 3)

The FRVR SDK plugin exposes ads as regular Construct 3 actions / triggers / expressions. You never write JavaScript — everything is on the event sheet.

Actions

ActionDoes
Show interstitial adFull‑screen break between levels. Fire‑and‑forget.
Show rewarded adOpt‑in ad that grants a reward when watched to the end.
Show rewarded interstitial adAlias of the rewarded flow (shown as a rewarded ad).
Show banner ad / Hide banner adPersistent strip; stays up until hidden.

Triggers

TriggerFires when
On reward grantedRewarded ad was watched to the end — give the reward here.
On ad skippedRewarded ad was shown but dismissed before the end (user skipped) — no reward.
On ad errorThe ad failed to show, nothing was available, or it returned an unexpected result.
On ad finishedThe ad closed normally (after a completed watch or a skip). Good place to resume the game / re‑enable UI. Not fired on error.

Expressions

ExpressionReturns
FRVR SDK.LastAdResultThe most recent rewarded outcome: "completed", "delivered", or "error".
FRVR SDK.LastAdErrorThe error message from the most recent On ad error (empty otherwise).
Condition:  On button "ShowInterstitial" clicked
Action:     FRVR SDK → Show interstitial ad

No reward handling — the action is fire‑and‑forget. The next interstitial is subject to the SDK’s default throttle (≈5 min between interstitials; the first ~100 s of a session are blocked). See Web SDK ads for the throttling rules.

A rewarded ad has three possible outcomes, and each one maps to its own trigger. This mirrors the SDK’s COMPLETED / DELIVERED / error model — see Web SDK ads → Show an ad.

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

Trigger:    FRVR SDK → On reward granted      // watched to the end
Action:     Add 2 to Coins
            System → Set CoinsMultiplier to 2

Trigger:    FRVR SDK → On ad skipped          // dismissed early — no reward
Action:     Show "Watch the full ad to earn your reward" message

Trigger:    FRVR SDK → On ad error            // nothing available / failed to show
Action:     Show "No ad available right now — try again shortly" message
            Set WatchAdButton enabled
  • On reward granted only fires on a genuinely completed watch — never on skip, dismiss, or error — so it’s always safe to hand out the reward there.
  • On ad skipped is the explicit “user bailed out” signal. Show a distinct message and grant nothing.
  • On ad error covers everything else: no inventory, throttled, or a rejected request.

On ad finished fires once the ad closes — after both a completed watch and a skip (but not on error). Use it to resume your game or re‑enable buttons regardless of whether the reward was earned:

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

Because it doesn’t fire on the error path, also re‑enable the button under On ad error (as shown above).

Inside any of the triggers you can read the outcome with expressions — handy for logging or a single shared handler:

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

FRVR SDK.LastAdResult returns "completed", "delivered", or "error" for the last rewarded ad.

Action:  FRVR SDK → Show banner ad      // stays up until hidden
Action:  FRVR SDK → Hide banner ad      // later

The current Construct plugin does not expose a “rewarded ready” condition. Rather than gate the button on readiness, leave it tappable and handle the outcome: if no ad is available the request resolves through On ad error, where you show a “try again shortly” message and re‑enable the button.

The underlying Web SDK does expose isReady / isSupported (see Web SDK ads → Gate your UI on readiness), but those aren’t surfaced as Construct ACEs yet.

  • Ad waterfall / throttling / readiness concepts: Web SDK ads.