Skip to content

Novvy Ads React Native SDK ​

React Native 端广告 SDK 对接文档。包名 novvy-ads-react-native,当前版本 1.2.1。

从 1.1 升级

1.2 兼容 1.1:无需修改任何代码,更新依赖版本即可。包版本号独立递增(任一端原生升级都会带动插件发新版):当前 1.2.1 封装 iOS 原生 1.2.1 与 Android 原生 1.2.0,详见SDK 安装。

本 SDK 是原生 Novvy Ads SDK(Android / iOS)的薄封装层:仅暴露 SDK 顶层入口(初始化 + 用户/内容上下文),广告本身通过各自的类创建和驱动。

接入顺序 ​

SDK 安装(npm 依赖 + 原生工程配置)
        ↓
初始化 SDK(appId / endpoint / apiKey)
        ↓
设置用户与内容上下文        // 短剧场景是填充前提
        ↓
按广告类型接入(load → show / 挂载组件)
  1. SDK 安装 —— 环境要求、依赖、iOS / Android / Expo 配置
  2. 初始化 SDK —— NovvyAds.initialize() 参数与时机
  3. 用户与内容上下文 —— NovvyUserContext / NovvyContentContext
  4. 广告类型 —— 见下表
  5. 错误类型 —— onAdFailedToLoad 的错误字符串取值

NovvyAds 顶层入口 ​

NovvyAds 是一个只含方法的入口对象,负责初始化与上下文管理。

方法说明
NovvyAds.initialize(options) → Promise<boolean>初始化 SDK,创建广告前必须调用。见初始化 SDK
NovvyAds.setUserContext(ctx: NovvyUserContext) → void替换整个用户画像(null 字段清空原值)
NovvyAds.updateUserContext(partial: NovvyUserContext) → void按字段合并用户画像(null / 缺省字段保持原值)
NovvyAds.setContentContext(ctx: NovvyContentContext) → void替换整个内容上下文(null 字段清空原值)
NovvyAds.updateContentContext(partial: NovvyContentContext) → void按字段合并内容上下文(null / 缺省字段保持原值)

详见用户与内容上下文。

广告类型一览 ​

所有广告类继承自 NovvyAd,实例由宿主持有:保持引用直到广告结束(onAdDismissed / onAdHidden),随后调用 destroy()。

除暂停卡、叙事植入与横幅外,均为两段式 —— 先 load() 预加载,就绪(onAdLoaded)后再展示 / 挂载。暂停卡与横幅没有 load():嵌入组件即发起请求。

广告类型类形态展示方式生命周期回调
激励视频NovvyRewardedAd全屏show()onAdShowed → onUserEarnedReward → onAdDismissed
插屏NovvyInterstitialAd全屏show()onAdShowed → onAdDismissed
信息流滑动位NovvyScrollAd内联(信息流滑动位)<NovvyScrollAdView> 组件onAdShowed / onAdHidden / onAdPlaybackTick
中插NovvyMidAd全屏(中插)show()onAdShowed → onAdDismissed
片尾NovvyEndAd全屏(片尾)show()onAdShowed → onAdDismissed
暂停卡NovvyPauseAd内联(暂停卡,260×90)<NovvyPauseAdView> 组件onAdShowed / onAdHidden(实时,无预加载)
叙事植入NovvyInsertAd播放器容器内展示(叙事植入)<NovvyInsertAdView> 组件,SDK 自动到点展示onAdLoaded / onAdShowed / onAdClosed(串行多支)→ onChainFinished
横幅NovvyBannerAd内联(横幅常驻位,5 档尺寸)<NovvyBannerAdView> 组件,嵌入即请求、自动轮播onAdLoaded / onAdShowed / onAdClicked / onAdHidden(每轮轮播各触发一次)

短剧场景务必先设置内容上下文

短剧后端需要「当前在看哪部剧、第几集」才有填充,否则无填充。请在每次 load() / 挂载之前调用 NovvyAds.setContentContext(...),详见用户与内容上下文。

NovvyAd 基类 ​

成员类型说明
adUnitIdstring广告位标识(构造时传入)
adObjectIdstring该广告实例的唯一 ID(内部生成,只读)
isReadyboolean是否已加载就绪(只读)
onAdLoaded(() => void) | undefined加载成功回调
onAdFailedToLoad((error: string) => void) | undefined加载/请求失败回调,error 为错误描述字符串
load()void预加载。回调驱动:结果通过 onAdLoaded / onAdFailedToLoad 送达。暂停卡不使用(调用会抛错)
destroy()void释放资源,幂等

错误处理

onAdFailedToLoad 回传 string 错误描述(无填充也走此回调)。可能的取值见错误类型。

回调与曝光 ​

每种广告通过在实例上赋值回调函数接收事件。所有回调统一在 JS 主线程 触发(原生侧已强制主线程 marshaling),各类型的回调表见对应广告类型页。

点击、曝光、跳转等追踪与计费由原生 SDK 内部自动处理,宿主无需干预。点击同样如此 —— 唯一例外是横幅:它在 SDK 处理完点击之后再调 onAdClicked,供宿主自己埋点。

onAdShowed ≠ 曝光

onAdShowed 是「广告已经展示出来」的宿主回调,曝光另有可见性判据—— 广告自身可见面积 > 50% 且连续满足 ≥ 1 秒才上报(跌破重新计时,不累加)。 因此曝光时刻总是晚于 onAdShowed;广告一闪而过时会有 onAdShowed 而没有曝光,这是预期行为。

本文档仅供技术对接使用,请勿外传。