APS 集成(legacy)
通过配置 APS 帐户并设置与 ironSource 的集成,将 Amazon Publisher 服务(APS)与 Unity LevelPlay 集成。
阅读时间9 分钟最后更新于 2 天前
先决条件
Amazon 发布者服务 (APS) 是一个仅限邀请的计划。要集成 APS,您需要集成和初始化 LevelPlay SDK 和 APS SDK。确保执行以下详细说明的完整集成流程,以便在应用程序中显示 APS 广告服务。
步骤 1.创建 APS 帐户
- 联系 APS 以设置app程序的帐户。要创建 APS 帐户,请访问 APS 网站,选择 联系我们 并提出申请。
- 如果您的 APS 请求获得批准,您将收到一个邀请链接,用于在 APS 中注册和创建帐户。
- 在 LevelPlay 中设置 APS 之前,必须完成上述步骤。
步骤 2.在 APS 网络中设置席位
- 从 apps 菜单中选择正确的应用程序并选择 setup
- 选择 IronSource LevelPlay 作为 Monetization 服务设置菜单
- 添加字段并为每个字段定义:
- Name(名称)
- 广告大小
- 价格点(自动/手动)
- 完成添加所有字段并获取凭据:
- 获取 app ID
- 下载价格点 CSV 文件
步骤 3.激活 APS 网络
在 ironSource 平台中,访问 SDK Networks 设置以将 APS 参数配置为 LevelPlay 帐户。
- 获得上述凭据后,登录 LevelPlay 帐户,然后选择 Monetize > Setup > SDK Networks
- 从 Available Networks 的表中选择 APS,然后选择 Activate。

- 从广告网络列表中选择 APS,然后选择 Setup。

- 输入您的 APS app ID 并按原样上传 CSV 文件。

步骤 4.将 APS 适配器添加到构建中
Gradle
-
确保 app 模块的构建.gradle 脚本中存在以下 Maven 网址repositories { mavenCentral()}
-
将适配器的 Maven 名称添加到 app 模块的构建.gradle 脚本。dependencies {implementation 'com.unity3d.ads-mediation:aps-adapter:4.3.17'implementation 'com.amazon.android:aps-sdk:11.0.0+'implementation 'com.iabtcf:iabtcf-decoder:2.0.10'}
步骤 5。更新 AndroidManifest.xml
清单权限:
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
清单活动:
<activity android:name="com.amazon.device.ads.DTBInterstitialActivity"/><activity android:name="com.amazon.device.ads.DTBAdActivity"/>
仅适用于 Proguard 用户
如果将 ProGuard 与 APS 适配器结合使用,必须将以下代码添加 ProGuard 文件中:
- 保留类 com.amazon.device.广告服务。** { *; }
步骤 6。Init APS SDK
APS 网络要求初始化 ironSource 和 APS SDK 以显示 APS 广告服务。
在打开应用程序后以及在初始化 LevelPlay SDK 之前,立即初始化 APS SDK。使用 APS 设置的步骤 2 中定义的 APS app ID。
AdRegistration.getInstance(APS_APP_ID, this);//Where 'this' is an activity context.
步骤 7。与 LevelPlay 聚合共享每个广告的 APS 出价信息
加载每个广告之前,请调用 APS API 以获取 LevelPlay SDK 加载广告所需的加载信息。
以下是必需的步骤:
- 在每个 IronSource 广告单元加载之前加载 APS 广告请求。
- 调用 SetNetworkData 与 ironSource 共享 APS 出价信息。
- 使用 LevelPlay 聚合 API 加载相关的广告单元。
加载横幅/MREC 广告服务
-
在每个 ironSource 广告单元加载之前调用 APS 横幅广告请求。创建加载广告请求时使用 Slot UUID。
-
APS Android SDK 10.0.0+:DTBAdNetworkInfo adNetworkInfo = new DTBAdNetworkInfo(DTBAdNetwork.UNITY_LEVELPLAY); final DTBAdRequest loader = new DTBAdRequest(adNetworkInfo);loader.setSizes(new DTBAdSize(SLOT_WIDTH, SLOT_HEIGHT, "Your_Slot_UUID"));loader.loadAd(new DTBAdCallback());
-
APS Android SDK 低于 10.0.0:final DTBAdRequest loader = new DTBAdRequest();loader.setSizes(new DTBAdSize(SLOT_WIDTH, SLOT_HEIGHT, "Your_Slot_UUID"));loader.loadAd(new DTBAdCallback());
-
-
如果成功加载了 APS 广告,请与 ironSource 共享广告数据。这应该包括以下参数:
- 出价信息:显示 Amazon 广告所需的信息
- Price Point 编码:从 APS 返回的获胜广告价格
- UUID:插槽唯一标识符
- Width:横幅宽度
- Height:横幅高度
public void onSuccess(DTBAdResponse dtbAdResponse) { // Append the APS bid parameters to LevelPlay mediation to add APS to the next ad request JSONObject apsDataJsonBN = new JSONObject(); apsDataJsonBN.put("bidInfo", SDKUtilities.getBidInfo(dtbAdResponse)); apsDataJsonBN.put("pricePointEncoded", SDKUtilities.getPricePoint(dtbAdResponse)); apsDataJsonBN.put("uuid", slotUUID); apsDataJsonBN.put("width", dtbAdResponse.getDTBAds().get(0).getWidth()); apsDataJsonBN.put("height", dtbAdResponse.getDTBAds().get(0).getHeight()); // Define APS data per interstitial ad unit JSONObject apsDataJson = new JSONObject(); apsDataJson.put(IronSource.AD_UNIT.BANNER.toString(), apsDataJsonBN); IronSource.setNetworkData("APS", apsDataJson);}如果 APS 未返回填充,则调用 LevelPlay 的 loadBanner() -
加载 ironSource 横幅广告。在此处了解更多信息。
加载插页式广告服务
-
在每次加载 ironSource 广告单元之前调用 APS 插页式广告请求。创建加载广告请求时使用 Slot UUID。
-
APS Android SDK 10.0.0+:DTBAdNetworkInfo adNetworkInfo = new DTBAdNetworkInfo(DTBAdNetwork.UNITY_LEVELPLAY); final DTBAdRequest loader = new DTBAdRequest(adNetworkInfo);loader.setSizes(new DTBAdSize.DTBInterstitialAdSize(YOUR_INTERSTITIAL_UUID));loader.loadAd(new DTBAdCallback());
-
APS Android SDK 低于 10.0.0:final DTBAdRequest loader = new DTBAdRequest();loader.setSizes(new DTBAdSize.DTBInterstitialAdSize(YOUR_INTERSTITIAL_UUID));loader.loadAd(new DTBAdCallback());
-
-
LevelPlay 从 APS 适配器 4.3.3 开始支持 APS 插页式视频广告服务。要加载插页式视频,请调用以下方法:如果 app 处于纵向模式:
-
APS Android SDK 10.0.0+:DTBAdNetworkInfo adNetworkInfo = new DTBAdNetworkInfo(DTBAdNetwork.UNITY_LEVELPLAY); final DTBAdRequest loader = new DTBAdRequest(adNetworkInfo);loader.setSizes(new DTBAdSize.DTBVideo(320, 480, YOUR_INTERSTITIAL_VIDEO_UUID)); loader.loadAd(new DTBAdCallback());
-
APS Android SDK 低于 10.0.0:final DTBAdRequest loader = new DTBAdRequest();loader.setSizes(new DTBAdSize.DTBVideo(320, 480, YOUR_INTERSTITIAL_VIDEO_UUID));loader.loadAd(new DTBAdCallback());
如果 app 处于横向模式:-
APS Android SDK 10.0.0+:DTBAdNetworkInfo adNetworkInfo = new DTBAdNetworkInfo(DTBAdNetwork.UNITY_LEVELPLAY); final DTBAdRequest loader = new DTBAdRequest(adNetworkInfo);loader.setSizes(new DTBAdSize.DTBVideo(480, 320, YOUR_INTERSTITIAL_VIDEO_UUID));loader.loadAd(new DTBAdCallback());
-
APS Android SDK 低于 10.0.0:final DTBAdRequest loader = new DTBAdRequest();loader.setSizes(new DTBAdSize.DTBVideo(480, 320, YOUR_INTERSTITIAL_VIDEO_UUID));loader.loadAd(new DTBAdCallback());
-
-
如果成功加载了 APS 广告,请与 ironSource 共享广告数据。这应该包括以下参数:
- 出价信息:显示 Amazon 广告所需的信息
- Price Point 编码:从 APS 返回的获胜广告价格
- UUID:插槽唯一标识符
public void onSuccess(DTBAdResponse dtbAdResponse) { // Append the APS bid parameters to LevelPlay mediation to add APS to the next ad request JSONObject apsDataJsonIS = new JSONObject(); apsDataJsonIS.put("bidInfo", SDKUtilities.getBidInfo(dtbAdResponse)); apsDataJsonIS.put("pricePointEncoded", SDKUtilities.getPricePoint(dtbAdResponse)); apsDataJsonIS.put("uuid", slotUUID); // Define APS data per interstitial ad unit JSONObject apsDataJson = new JSONObject(); apsDataJson.put(IronSource.AD_UNIT.INTERSTITIAL.toString(), apsDataJsonIS); IronSource.setNetworkData("APS", apsDataJson); }如果 APS 未返回填充,请调用 LevelPlay 的 loadInterstitial()。 -
加载 ironSource 插页式广告。在此处了解更多信息。
奖励广告
APS 集成因您在 app 中实现的奖励操作模式而异。
- 手动加载模式:这是与 APS 集成的推荐设置。这将要求您在每次奖励加载之前调用 APS 广告请求。
- 奖励广告服务默认模式(自动):使用 LevelPlay 默认模式显示奖励广告服务时,需要在初始化 LevelPlay SDK 和初始化 APS SDK 之前加载第一个 APS 广告。此外,我们建议在每次显示之前调用下一个 APS 加载请求,从而影响下一个瀑布流请求。
加载奖励广告服务
- 在每次加载 IronSource 广告单元之前(或在展示之前,在自动模式下)调用 APS 奖励广告请求。创建加载广告请求时使用 Slot UUID。如果 app 处于纵向模式:
-
APS Android SDK 10.0.0+:DTBAdNetworkInfo adNetworkInfo = new DTBAdNetworkInfo(DTBAdNetwork.UNITY_LEVELPLAY); final DTBAdRequest loader = new DTBAdRequest(adNetworkInfo);loader.setSizes(new DTBAdSize.DTBVideo(320, 480, YOUR_REWARDED_VIDEO_UUID)); loader.loadAd(new DTBAdCallback());
-
APS Android SDK 低于 10.0.0:final DTBAdRequest loader = new DTBAdRequest();loader.setSizes(new DTBAdSize.DTBVideo(320, 480, YOUR_REWARDED_VIDEO_UUID));loader.loadAd(new DTBAdCallback());
-
如果 app 处于横向模式:
-
-
APS Android SDK 10.0.0+:DTBAdNetworkInfo adNetworkInfo = new DTBAdNetworkInfo(DTBAdNetwork.UNITY_LEVELPLAY); final DTBAdRequest loader = new DTBAdRequest(adNetworkInfo);loader.setSizes(new DTBAdSize.DTBVideo(480, 320, YOUR_REWARDED_VIDEO_UUID)); loader.loadAd(new DTBAdCallback());
-
APS Android SDK 低于 10.0.0:final DTBAdRequest loader = new DTBAdRequest();loader.setSizes(new DTBAdSize.DTBVideo(480, 320, YOUR_REWARDED_VIDEO_UUID));loader.loadAd(new DTBAdCallback());
-
-
如果成功加载了 APS 广告,请与 ironSource 共享广告数据。这应该包括以下参数:
-
出价信息:显示 Amazon 广告所需的信息
-
Price Point 编码:从 APS 返回的获胜广告价格
-
UUID:插槽唯一标识符public void onSuccess(DTBAdResponse dtbAdResponse) { // Append the APS bid parameters to LevelPlay mediation to add APS to the next ad request JSONObject apsDataJsonRV = new JSONObject(); apsDataJsonRV.put("bidInfo", SDKUtilities.getBidInfo(dtbAdResponse)); apsDataJsonRV.put("pricePointEncoded", SDKUtilities.getPricePoint(dtbAdResponse)); apsDataJsonRV.put("uuid", slotUUID); // Define APS data per rewarded ad unit JSONObject apsDataJson = new JSONObject(); apsDataJson.put(IronSource.AD_UNIT.REWARDED_VIDEO.toString(), apsDataJsonRV); IronSource.setNetworkData("APS", apsDataJson); }如果 APS 未返回填充,请调用 LevelPlay 的 loadManualRewardedVideo()。
-