文档

​
​

Development

User Acquisition

Monetization

工业

LevelPlay SDK - React Native

Unity SDK

Android SDK

iOS SDK

Adobe AIR SDK

Flutter SDK

React Native SDK

LevelPlay SDK - React Native

Unity LevelPlay
​
​
React Native SDK
  • 开始使用
  • 法规和设置
  • 广告格式
    • 奖励广告服务集成
    • 间隙集成
    • 横幅集成
    • 原生广告服务集成
  • 聚合网络
  • 测试集成
  1. 实现游戏增长
  2. Unity LevelPlay
  3. LevelPlay SDK
  4. 适用于 React 原生开发者的 LevelPlay SDK

React Native 的奖励广告服务集成

通过初始化 SDK、创建广告单位以及设置事件监听器来处理广告生命周期事件,将奖励视频广告服务成到 React 本地 app程序中。
阅读时间12 分钟
最后更新于 2 天前

注意
本文档与 SDK 8.7.0+ 相关。

先决条件

  • 确保已将 React Native Plugin 正确集成到 app。此处概述了集成。
  • 确保使用 LevelPlay Initialization API 初始化 SDK。
  • 在 LevelPlay 后台中找到 AdUnitID。

创建奖励并注册到事件

收到 onInitSuccess 回调后,可使用 LevelPlay 平台中定义的相关 Ad Unit ID 创建广告单元(初始化 LevelPlay SDK 步骤)。
为创建的奖励广告单元设置奖励监听器,以便了解广告投放情况。
import { LevelPlayRewardedAd、 type LevelPlayRewardedAdListener, type LevelPlayAdInfo、 type LevelPlayAdError、 Type LevelPlayReward} 来自“Unity LevelPlay-mediation”const [rewardedAd, setRewardedAd] = useState<LevelPlayRewardedAd>(new LevelPlayRewardedAd('YOUR_AD_UNIT_ID'))useEffect(() => { const 监听器:LevelPlayRewardedAdListener = { onAdLoaded:(adInfo:LevelPlayAdInfo) => { // Provided when the ad is successfully loaded }, onAdLoadFailed:(报错:LevelPlayAdError) => { // Provided when the ad fails to load.包含广告单元信息 }, onAdInfoChanged:(adInfo:LevelPlayAdInfo) => { // Provided when the ad info is updated.加载另一个广告后可用,并且包含更高的 CPM/速率 }, onAdDisplayed:(adInfo:LevelPlayAdInfo) => { // Provided when the ad is displayed }, onAdDisplayFailed:(报错:LevelPlayAdError、adInfo:LevelPlayAdInfo) => { // Provided when the ad fails to be displayed }, onAdClicked:(adInfo:LevelPlayAdInfo) => { // Provided when the user clicks on the ad }, onAdClosed:(adInfo:LevelPlayAdInfo) => { // Provided when the ad is closed }, onAdRewarded:(奖励:LevelPlayReward、adInfo:LevelPlayAdInfo) => { // Provided when the ad is rewarded.其中包含广告单元信息和奖励信息。 } }; rewardedAd.setListener(listener);}, [rewardedAd]);

LevelPlay 奖励广告回调

onAdLoaded – 成功加载广告时提供
onAdLoadFailed – 在广告加载失败时提供。包含广告单元信息
onAdDisplayed – 在显示广告时提供。这相当于展示
onAdDisplayFailed(可选)– 在广告无法显示时提供
onAdRewarded – 在广告获得奖励时提供。其中包含广告单元信息和奖励信息。
onAdClicked(可选)– 在用户点击广告时提供
onAdClosed – 广告关闭时提供
onAdInfoChanged(可选)– 在更新广告信息时提供。加载另一个广告后可用,并且包含更高的 CPM/速率

获取奖励广告详细信息

使用 getReward API 可以访问您在 LevelPlay 后台中设置的奖励数据。与其他聚合 API 不同,这是一个独立调用,在初始化后返回存储在 SDK 本地的数据。这使您能够构建动态、数据驱动的 UI,在用户参与广告之前告知他们潜在的奖励,从而无需在app中硬编码奖励值。

先决条件

在实现 getReward API 之前,请确保项目满足以下技术要求:
  • SDK 初始化:调用 initSDK 并等待 onInitializationSuccess 回调以确保奖励数据已缓存。
  • 广告对象实例:在调用 API 之前,使用有效的 Ad Unit ID 实例化奖励广告对象。
  • 最低 SDK 版本:使用 LevelPlay SDK 8.1.0 或更高版本(原生或 Unity 软件包)。

最佳实践

遵循这些建议可确保稳定且可预测的集成。
  • 初始化成功时调用:调用 getReward 的最佳时间是初始化成功监听器器内部。这样可以确保 UI 在用户进入屏幕时就绪。
  • 检查空状态:在更新 UI 之前,请始终验证该数量> 0。如果在初始化期间发生网络报错,这将确保平滑的用户体验。
  • 放置/位置精度:确保在 getReward("placementName") 中使用的字符串与 LevelPlay 后台中定义的名称完全匹配。

API 结构

getReward 方法允许您从 LevelPlay 后台访问同步的奖励数据。使用此方法可以查询本地 SDK 缓存中指定的广告放置/位置或全局广告单元默认值。

getReward

获取指定的广告放置/位置或默认广告单元的奖励名称和金额。没有其他参数可以使用。

参数

描述

placementName在 LevelPlay 后台中定义的放置/位置的唯一标识符。通道
null
,用于获取广告单元的默认奖励。
返回一个 LevelPlayReward 对象,其中包含名称(字符串)和金额(int)。

初始设置

getReward API 充当 LevelPlay SDK 的核心组件,在如下逻辑下运行以确保数据无延迟可用:
  • 集成功能:由于奖励数据是在初始 SDK 设置期间获取的,因此 API 调用是即时的,不需要网络请求。
  • 编辑器配置:将 app 与 LevelPlay SDK 集成后,API 可以立即使用。测试此功能不需要额外的资源或插件。

了解奖励选择逻辑

API 根据指定的层级视图返回 LevelPlayReward 对象。了解此逻辑有助于排除出现指定的奖励的原因。
  • 放置/位置级别:如果在调用中提供了有效的广告放置/位置称,SDK 将返回控制面板中为该广告位放置/位置的指定的奖励。
  • 广告单元级别:如果广告放置/位置名称为 null 或未找到,SDK 将回退到为广告单元定义的默认奖励。
  • 回退状态:如果在初始化完成之前调用 API,则返回一个字符串名称为空且值为 0 的奖励对象。

动态更新 UI

使用 getReward API 可将静态按钮变换为高意图的行动调用。例如:您可以显示“Watch to earn 50 Gold”,而不是通用的“Watch Video”按钮。
  • 有效金额:在更新 UI 组件之前,请务必验证 reward.amount > 0。
  • 事件驱动更新:在初始化成功监听器器中调用 API 以确保 UI 在用户进入屏幕时准确无误。
  • 区分大小写:确保代码中的放置/位置名称字符串与 LevelPlay 后台完全匹配;不匹配的字符串将触发器广告单元回退。

getReward API 实现故障排除

  • 奖励金额返回 0:如果在 onInitializationSuccess 回调之前调用 API,通常会发生这种情况。在查询奖励之前,请确保 SDK 完全准备就绪。
  • 显示错误奖励类型:检查是否有多个广告位。如果放置/位置名称拼写错误,SDK 默认认为主广告单元奖励,而不是指定的广告放置/位置奖励。

加载奖励广告

收到 onInitSuccess 回调后,即可加载奖励广告。应使用 方法执行此操作:
rewardedAd.loadAd();

显示奖励广告

您可以在收到 onAdLoaded 回调后使用 showAd API 展示奖励广告。
如果使用广告位,请将广告位名称作为 API 的一部分共享,如下所示。
// Show ad without placementrewardedAd.showAd();// Show ad with placementrewardedAd.showAd('YOUR_PLACEMENT');

检查广告就绪状态

为了避免显示失败,并确保广告可以正确显示,建议在调用 showAd() API 之前使用以下 API。
isAdReady – 如果广告加载成功并且广告单元未设置上限,则返回一个 Promise,解析为 true,否则返回 false。
isPlacementCapped – 静态方法,在限制有效放置/位置时将 Promise resolution 返回 true。如果放置/位置无效或未设置上限,则返回 false。
// Check that ad is ready and that the placement is not capped (both APIs are async)const isReady = await rewardedAd.isAdReady();const isPlacementCapped = await LevelPlayRewardedAd.isPlacementCapped('YOUR_PLACEMENT');if (isReady && !isPlacementCapped) { await rewardAd.showAd('YOUR_放置/位置');}
广告成功展示给玩家后,您可以加载另一个广告,重复加载奖励广告步骤。一时间加载单个广告时无需创建新的广告实体。

动态 UserId

动态 UserID 是一个参数,用于验证可在整个会话中更改的 AdRewarded 交易。您将通过服务器到服务器的广告奖励回调收到此参数,必须在调用 showAd 之前设置此参数。
  • 字字符串必须包含 1-64 个字母数字角色。
  • 您将在回调网址中收到一个
    dynamicUserId
    参数以及奖励详细信息。
LevelPlay.setDynamicUserId("userId");

奖励用户

LevelPlay SDK 将在用户每次成功完成视频时触发 onAdRewarded。
onAdRewarded 和 onAdClosed 是异步的。确保设置监听器以提供奖励,即使 onAdRewarded 在 onAdClosed 之后被触发也是如此。
onAdRewarded:(奖励:LevelPlayReward、adInfo:LevelPlayAdInfo) => { // Provided when the ad is rewarded.包含广告单元信息和奖励信息}

多个广告单元奖励 API

旧版

Ad Unit(广告单元)(新)

类IronSourceLevelPlayRewardedAd
APIloadRewardedVideoloadAd
showRewardedVideoshowAd
isRewardedVideoPlacementCappedisPlacementCapped
isRewardedVideoAvailableisAdReady
placement.getRewardNamereward.name
placement.getRewardAmountreward.amount

奖励广告的完整实现示例

import { LevelPlayRewardedAd、 type LevelPlayRewardedAdListener, type LevelPlayAdInfo、 type LevelPlayAdError、 Type LevelPlayReward} 来自“Unity LevelPlay-mediation”const [rewardedAd, setRewardedAd] = useState<LevelPlayRewardedAd>(new LevelPlayRewardedAd('YOUR_AD_UNIT_ID'))const 监听器:LevelPlayRewardedAdListener = { onAdLoaded:(adInfo:LevelPlayAdInfo) => { // Implement your logic here, for example showing the ad rewardedAd.showAd() }, onAdLoadFailed:(报错:LevelPlayAdError) => { // Implement your logic here... }, onAdInfoChanged:(adInfo:LevelPlayAdInfo) => { // Implement your logic here... }, onAdDisplayed:(adInfo:LevelPlayAdInfo) => { // Implement your logic here... }, onAdDisplayFailed:(报错:LevelPlayAdError、adInfo:LevelPlayAdInfo) => { // Implement your logic here... }, onAdClicked:(adInfo:LevelPlayAdInfo) => { // Implement your logic here... }, onAdClosed:(adInfo:LevelPlayAdInfo) => { // Implement your logic here... }, onAdRewarded:(奖励:LevelPlayReward、adInfo:LevelPlayAdInfo) => { // Implement your logic here... }};useEffect(() => { rewardedAd.setListener(listener) rewardedAd.loadAd()}, []);// Rest of component ...// End of component ...

LevelPlay Mediation 演示应用程序

Integration Demo 应用程序演示如何在 app 中集成奖励广告单元 API。
下载 React Native demo 应用程序
验证您与我们的集成测试套件的集成。

后续步骤

请遵循我们的集成指南来集成其他奖励广告网络或配置其他广告格式:
  • 添加聚合网络
  • 横幅广告服务
  • 插页式广告服务
  • 原生广告服务

Copyright © 2026 Unity Technologies
法律信息隐私政策CookiesDocumentation Terms of Use请勿出售或分享我的个人信息您的隐私选择(Cookie 设置)

“Unity”、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属公司在美国和其他地方的商标或注册商标(此处查看更多信息)。其他名称或品牌是其各自所有者的商标。

为方便起见,一些页面是机器翻译的,可能包含不准确的内容。如有信息不一致的情况,以英文版本为准。

  • 在本页上
    • 先决条件

    • 创建奖励并注册到事件

      • LevelPlay 奖励广告回调

    • 获取奖励广告详细信息

      • 先决条件

      • 最佳实践

      • API 结构

        • getReward

      • 初始设置

      • 了解奖励选择逻辑

      • 动态更新 UI

      • getReward API 实现故障排除

    • 加载奖励广告

    • 显示奖励广告

      • 检查广告就绪状态

      • 动态 UserId

    • 奖励用户

    • 多个广告单元奖励 API

    • 奖励广告的完整实现示例

    • LevelPlay Mediation 演示应用程序

    • 后续步骤


报告此页面的问题