Flutter 插件集成
将 LevelPlay SDK 集成到 Flutter 应用程序中,以便在 Android 和 iOS 平台上启用广告聚合和 Monetization。
阅读时间9 分钟最后更新于 2 天前
先决条件
- 适用于 Android 和 iOS 的 SDK 版本 7.2.1.2 支持 Flutter 插件。
- 支持 Flutter 3.0.0+
向项目添加 LevelPlay Mediation 插件
Pub.dev 集成
可使用 pub.dev 接口将 LevelPlay Flutter 插件添加到项目中。
-
运行 Flutter CLI 命令flutter pub get Unity_levelplay_mediation
-
通过将定义添加到 pubspec.yaml 文件来更新 pubspec.yaml 文件。
unity_levelplay_mediation依赖项: flutter: sdk: flutter unity_levelplay_mediation: '>=9.1.0 <9.2.0' -
添加 Ad 品质 SDK
dependencies { implementation 'com.unity3d.ads-mediation:adquality-sdk:9.3.1'}
手动集成
LevelPlay 演示应用程序
Integration Demo 应用程序演示如何在 app 中集成 ironSource LevelPlay
iOS 的其他设置
SKAdNetwork 支持
要在使用 SDK 7+ 启用 Ironsource 网络广告服务的显示,请确保在app属性列表文件 (Info.plist) 中包含 Ironsource ad network ID。
-
在 Xcode 中的项目导航器中选择 Info.plist。
-
选择属性列表编辑器中某个键旁边的添加按钮 (+),然后按 Return。
-
键入键名称 SKAdNetworkItems。
-
在对话框的 Type 列中,选择 Array。
-
创建字典项和相应的单个蛰伏项。
-
输入键名称 SKAdNetworkIdentifier 和键值:su67r6k2v3.skadnetwork还可以使用以下代码向 Info.plist 添加:
SKAdNetworkIdentifier
<key>SKAdNetworkItems</key><array> <dict> <key>SKAdNetworkIdentifier</key> <string>su67r6k2v3.skadnetwork</string> </dict></array>
使用 ironSource SKAdNetwork IDs Manager 可创建代码片段以支持 ironSource 网络和聚合网络 ID。
如需了解编辑属性列表的更多信息,请参阅 Xcode 文档。
通用 SKAN 报告
要接收广告应用的所有需求来源的获胜安装验证回传副本,请在应用的 Info.plist 中添加 NSAdvertisingAttributionReportEndpoint 密钥。
- 在 Xcode 中的项目导航器中选择 Info.plist
- 选择属性列表编辑器中某个关键点旁边的添加按钮 (+),然后按 Return
- 键入键名称 NSAdvertisingAttributionReportEndpoint
- 从 Type 列的弹出菜单中选择字符串
- 键入网址:
https://postbacks-is.com/
app 传输安全设置
为了确保在所有聚合网络中不间断地支持广告投放,必须在中进行以下更改:
info.plist- 添加一个名为 的字典。确保在 Top Level Key 上添加此字典。
NSAppTransportSecurity - 在此字典中,添加一个名为 的布尔值,并将其设置为 YES。
NSAllowsArbitraryLoads - 确保 info.plist 不包含除 之外的任何其他异常,因为这可能会产生冲突。
NSAllowsArbitraryLoads - 在 Apple 文档中查找有关苯丙胺类兴奋剂的更多信息。
Android 的其他设置
播放服务依赖项
将 播放 服务 Dependencies 添加到app程序级别的 构建,如下所示:
dependencies { implementation 'com.google.android.gms:play-services-ads-identifier:18.2.0' implementation 'com.google.android.gms:play-services-appset:16.1.0'}
Android 12 支持
将目标 API 级别更新为 31(Android 12)的应用程序需要在清单文件中声明 Google 播放服务的正常权限,如下所示:
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
在此处阅读有关 Google 广告 ID 更改的更多信息。
替换 AndroidManifest.xml 上的标签
要防止 AndroidManifest 上出现与标签相关的报错,请执行以下操作:
- 将“xmls:tools”添加到项目的 AndroidManifest.xml
- 在“application”标签中添加“tools:replace=”Android”
初始化 LevelPlay SDK
要初始化 LevelPlay SDK,请执行以下步骤:
LevelPlay SDK 8.6.0 及更高版本
-
实现初始化成功和失败的回调。
-
定义要在会话中初始化的广告格式列表。
-
使用创建初始化请求。构建器接收以下参数:
LevelPlayInitRequest.builder- 您的 appKey(必填)
- 用户 ID(可选:如果使用服务器到服务器回调或使用广告品质用户旅程,则需要此 ID)
-
调用 LevelPlay.init 并通道上下文和初始化请求。
class MyLevelPlayInitListener implements LevelPlayInitListener { @override void onInitFailed(LevelPlayInitError error) { // Provided when init is failed } @override void onInitSuccess(LevelPlayConfiguration configuration) { // Provided when init is successfully executed }}LevelPlayInitRequest initRequest = LevelPlayInitRequest.builder([app_KEY]) .withUserId("userId") // required for server-to-server callbacks or Ad Quality user journey (optional otherwise) .build();LevelPlay.init(initRequest, MyLevelPlayInitListener());
LevelPlay SDK 8.6.0 之前的版本
- 实现初始化成功和失败的回调。
- 定义需要旧版 LevelPlay API 支持的广告格式列表。这应包括奖励。
- 使用 appKey、广告格式和用户 ID(如果相关)调用 LevelPlay.init API。
如果要使用服务器到服务器回调来奖励用户或使用广告品质用户旅程,请将用户 ID 添加为初始化 API 的一部分。
class MyLevelPlayInitListener implements LevelPlayInitListener { @override void onInitFailed(LevelPlayInitError error) { // Provided when init is failed } @override void onInitSuccess(LevelPlayConfiguration configuration) { // Provided when init is successfully executed }}// Init the SDK when implementing the Multiple Ad Units Interstitial and Banner APIs, and Rewarded using legacy APIs List<AdFormat> legacyAdFormats = [AdFormat.REWARDED];LevelPlayInitRequest initRequest = LevelPlayInitRequest.builder([app_KEY]) .withLegacyAdFormats(legacyAdFormats) .withUserId("userId") // required for server-to-server callbacks or Ad Quality user journey (optional otherwise) .build();LevelPlay.init(initRequest, MyLevelPlayInitListener());
LevelPlay 初始化监听器
- :在 init 成功完成并可以加载广告服务时触发。
onInitSuccess - :未成功接收配置,无法加载广告服务。建议的最佳做法是稍后尝试并初始化 LevelPlay SDK。
onInitFailed
请考虑以下最佳实践:
- 在初始化 API 之前调用的所有 API 均未更改,在功能和语法方面应保持原样。这包括高级设置、监管设置或与指定广告格式相关的其他 API
- 如果初始化失败,可以尝试再次初始化 SDK。只有在初始化过程成功之后,才能加载广告服务。
验证您的集成
使用 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>;}