React Native 插件集成
将 Unity LevelPlay React Native 插件(v8.4.0+)集成到应用程序中以启用广告聚合和 Monetization。
阅读时间10 分钟最后更新于 2 天前
先决条件
- 适用于 Android 的原生 SDK 版本 7.2.4.1 和 iOS 的原生 SDK 版本 7.2.4 支持我们的 React Native 插件。
- 该插件支持 JavaScript 和 TypeScript。类型声明包含在 npm 软件包。
- Support React Native 0.66+。
- iOS 版本支持是按网络定义的。 LevelPlay 广告服务和 LevelPlay 聚合支持 iOS 版本 12+、XCode 版本 15.4+。
- Android 操作系统版本 5.0(API 级别 21)+。
步骤 1.向项目添加 Unity LevelPlay React Mediation 插件
NPM 集成
可使用 npm 将 Unity LevelPlay React Native 插件添加到项目中有两个选项:
-
运行 npm CLI 命令npm 安装 Unity-levelplay-mediation
-
Update 软件包 文件:将 Unity-levelplay-mediation 定义添加到 软件包 文件中:"dependencies": { "unity-levelplay-mediation":"9.1.0"}
-
添加 Ad Quality SDKAndroid:dependencies { implementation 'com.unity3d.ads-mediation:adquality-sdk:9.3.1'}iOS:pod 'IronSourceAdQualitySDK','9.3.1'
手动集成
- 下载 React 原生插件版本
- 将 Unity-levelplay-mediation 定义添加到 软件包 文件中:
"dependencies": { "unity-levelplay-mediation":"路径/目标/本地/目录"}
Unity LevelPlay 演示应用程序
集成demo应用程序演示了如何在app程序中集成 Unity LevelPlay。
步骤 2.iOS 的其他设置
SKAdNetwork 支持
要在使用 SDK 7+ 启用 LevelPlay 网络广告服务的显示,请确保在app属性列表文件 (Info.plist) 中包含 LevelPlay 广告网络 ID。
-
在 Xcode 中的项目导航器中选择 Info.plist
-
选择属性列表编辑器中某个关键点旁边的添加按钮 (+),然后按 Return
-
键入键名称 SKAdNetworkItems
-
从 Type 列的弹出菜单中选择 Array
-
创建一个字典项,并在其下方创建一个单刺项
-
输入键名称 SKAdNetworkIdentifier 和键值:su67r6k2v3.skadnetwork
您还可以使用以下代码将 SKAdNetworkIdentifier 添加到 Info.plist:
<key>SKAdNetworkItems</key><array> <dict> <key>SKAdNetworkIdentifier</key> <string>su67r6k2v3.skadnetwork</string> </dict></array>
如需了解编辑属性列表的更多信息,请参阅 Xcode 文档。
通用 SKAN 报告
要接收广告应用的所有需求来源的获胜安装验证回传副本,请在应用的 Info.plist 中添加 NSAdvertisingAttributionReportEndpoint 密钥。
- 在 Xcode 中的项目导航器中选择 Info.plist
- 选择属性列表编辑器中某个关键点旁边的添加按钮 (+),然后按 Return
- 键入键名称 NSAdvertisingAttributionReportEndpoint
- 从 Type 列的弹出菜单中选择字符串
- 键入网址:
https://postbacks-is.com
app 传输安全设置
为了确保在所有聚合网络中不间断地支持广告投放,必须在 info.plist 中进行以下更改:
- 添加一个名为“NSAppTransportSecurity”的字典。确保在“顶级键”上添加此字典。
- 在此字典中,添加一个名为“NSAllowsArbitraryLoads”的布尔值,并将其设置为 YES。
- 确保 info.plist 不包含除“NSAllowsArbitraryLoads”之外的任何其他异常,因为这可能会产生冲突。
- 在此处查找有关安非他明类兴奋剂的更多信息。
步骤 3.Android 的其他设置
播放服务依赖项
将 播放 服务 Dependencies 添加到app程序级别的 构建,如下所示:
dependencies { implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1' implementation 'com.google.android.gms:play-services-basement:18.3.0' implementation 'com.google.android.gms:play-services-appset:16.0.2'}
Android 12 支持
将目标 API 级别更新为 31(Android 12)的应用程序需要在清单文件中声明 Google 播放服务的正常权限,如下所示:
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
请参阅 Google 文档了解有关 Google Advertising ID 更改的更多信息。
步骤 4.初始化 LevelPlay SDK
要初始化 LevelPlay SDK,请执行以下步骤:
LevelPlay SDK 8.7.0+
-
实现初始化成功和失败的回调。
-
使用 LevelPlayInitRequest.Builder 创建初始化请求。构建器应接收以下参数:
- 您的 appKey(必填)
- 用户 ID(可选:如果使用服务器到服务器回调或使用广告品质用户旅程,则需要此 ID)
-
调用 LevelPlay.init 并通道上下文和初始化请求。
const initListener:LevelPlayInitListener = { onInitFailed:(报错:LevelPlayInitError) => { // Provided when init fails }, onInitSuccess:(配置:LevelPlayConfiguration) => { // Provided when init is successfully executed }}// Init the SDK when implementing the Multiple Ad Units APIs for all ad formatsconst initRequest:LevelPlayInitRequest = LevelPlayInitRequest.builder(APP_KEY) .withUserId("userId") // required for server-to-server callbacks or Ad Quality user journey (optional otherwise) .build();LevelPlay.init(initRequest, initListener)
LevelPlay SDK 8.7.0 之前的版本
- 实现初始化成功和失败的回调。
- 定义需要旧版 Ironsource API 支持的广告格式列表。这应包括奖励。
- 使用 appKey、广告格式和用户 ID(如果相关)调用 LevelPlay init API。
const initListener:LevelPlayInitListener = { onInitFailed:(报错:LevelPlayInitError) => { // Provided when init is failed }, onInitSuccess:(配置:LevelPlayConfiguration) => { // Provided when init is successfully executed }}// Init the SDK when implementing the Multiple Ad Units Interstitial and Banner APIs, and Rewarded using legacy APIs const legacyAdFormats = [AdFormat.REWARDED];const initRequest:LevelPlayInitRequest = LevelPlayInitRequest.builder(APP_KEY) .withLegacyAdFormats(legacyAdFormats) .withUserId("userId") // required for server-to-server callbacks or Ad Quality user journey (optional otherwise) .build();await LevelPlay.init(initRequest, initListener)
LevelPlay 初始化监听器
- onInitSuccess – 将在初始化成功完成时触发,并可加载广告服务。
- onInitFailed – 未成功接收配置,无法加载广告服务。建议稍后尝试并初始化 LevelPlay SDK。
如果初始化失败,可以尝试再次初始化 SDK。只有在初始化过程成功之后,才能加载广告服务。
步骤 5。验证您的集成
使用 LevelPlay 集成测试套件可以测试app程序的集成情况,验证平台设置,并审查与配置的网络相关的广告服务。
要在 app 中启用测试套件,请在设置 init 之前调用 setMetaData API:
LevelPlay.setMetaData('is_test_suite', ['enable'])
聚合初始化成功完成后,通过调用以下方法启动测试套件:
LevelPlay.launchTestSuite()
有关 LevelPlay 集成测试套件的更多详细信息和实现示例,请导航到本文章。
适配器调试
调用以下 API 启用聚合网络适配器和 SDK 的调试日志:
LevelPlay.setAdaptersDebug(true);
仅适用于 Proguard 用户
如果将 ProGuard 与 LevelPlay SDK 结合使用,必须将以下代码添加到 ProGuard 文件(Android Studio:proguard-rules.pro 或 Eclipse:proguard-项目.txt):
-keepclassmembers class com.ironsource.sdk.controller.IronSourceWebView$JSInterface { public *;}-keepclassmembers 类 * 实现 Android.os.Parcelable { public static final android.os.Parcelable$Creator *;}- 保留 public 类 com.google.android.gms.广告服务。** { public *;}- keep 类 com. ironsource.adapters。** { *;}- 保留 com. ironsource. unity.androidbridge 类。** { *;}-dontwarn com. ironsource.mediationsdk。**-dontwarn com. ironsource.adapters。**-keepattributes JavascriptInterface-keepclassmembers 类 * { @android.webkit.JavascriptInterface <methods>;}