Ads
Rewarded Ad Flow
RewardedAdManager lifecycle from load to conversion.
Rewarded Ad Flow
Rewarded ads are the core monetization mechanism. Users watch a video ad to unlock content.
Lifecycle
Component: RewardedAdManager
File: components/ads/RewardedAdManager.js
Key callbacks
| Callback | When fired | Effect |
|---|---|---|
onRewarded | User watches full ad | Content unlocks, pixels fire |
onNoAdComplete | KV1 exhausted after CTA click | Triggers KV2 popup |
onAdClosed | Ad dismissed (any reason) | Ad closed pixel fires |
onTrigger | CTA clicked | Starts ad playback |
KV2 fallback flow
KV2 only starts when:
- Theme passes
shouldStartKv2: truein itsonClosepayload - Set solely on
handleNoAdComplete(KV1 no-fill after CTA was clicked)
Article rewarded carryover
ArticleRewardedAd handles rewarded ads on article pages when user arrives with ?guideNoAd=1 from a guide category.
Conversion tracking
On rewarded view (onAdReceived):
fireConversionPixel()— Google conversion- Meta CAPI
reward_viewevent with KV value - Session tracker registers
kv_adsmapping and sends immediate API ping
AdSense differences
- No KV waterfall — single ad request
- Must wait for AdBreak
onLoadbeforeshowAd() - KV2 auto-calls
showAd()on mount - See AdSense Integration