通过中介集成 Liftoff Monetize (Vungle)
Info
注:Vungle 现已更名为 Liftoff Monetize。
本指南介绍如何使用 Google Mobile Ads SDK 通过中介加载并展示来自 Liftoff Monetize 的广告,内容涵盖竞价(bidding)和瀑布流(waterfall)集成。它提供了关于将 Liftoff Monetize 集成到 Godot 应用的中介配置中,以及将 Vungle SDK 和适配器集成到您的 Godot 应用中的说明。
本文档基于:
支持的集成和广告格式
Vungle 的 AdMob 中介适配器具有以下功能:
| 集成方式 | |
|---|---|
| 竞价 (Bidding) | ✅ |
| 瀑布流 (Waterfall) | ✅ |
| 广告格式 | |
|---|---|
| 横幅广告 (Banner) | 1 |
| 插页式广告 (Interstitial) | ✅ |
| 激励广告 (Rewarded) | ✅ |
| 插页式激励广告 (Rewarded Interstitial) | 1, 2 |
前提条件
限制
- Liftoff Monetize 不支持使用相同的广告位参考 ID(Placement Reference ID)加载多个广告。
- 如果该广告位已有另一个请求正在加载或等待显示,Vungle 适配器将正常返回第二个请求失败。
- Liftoff Monetize 仅支持每次加载 1 个横幅广告。
- 如果已经加载了横幅广告,Vungle 适配器将正常返回后续的横幅广告请求失败。
第 1 步:设置 Liftoff Monetize
我们建议遵循 Android 或 iOS 的教程,因为两者的步骤是相同的。
第 2 步:为您的 AdMob 广告单元配置中介设置
我们建议遵循 Android 或 iOS 的教程,因为两者的步骤是相同的。
第 3 步:导入 Vungle SDK 插件
第 4 步:启用插件
请确保在项目设置(位于 Admob > Android > Mediation > Vungle 下)中启用了 Vungle。
请确保在 iOS 导出预设的插件列表中勾选了 Ad Mob 和 Ad Mob vungle(并在 Plists 配置中输入了您的 AdMob App ID)。

第 5 步:需要添加的其他代码
Liftoff Monetize 要求将您将在 Godot 应用中使用的所有广告位列表传达给其 SDK。您可以使用 VungleInterstitialMediationExtras 和 VungleRewardedVideoMediationExtras(此处使用 VungleRewardedMediationExtras)类将此广告位列表提供给适配器。以下代码示例展示了如何使用这些类。
var vungle_mediation_extras := VungleInterstitialMediationExtras.new()
if OS.get_name() == "iOS":
vungle_mediation_extras.all_placements = ["ios_placement1", "ios_placement2"]
elif OS.get_name() == "Android":
vungle_mediation_extras.all_placements = ["android_placement1", "android_placement2"]
var ad_request := AdRequest.new()
ad_request.mediation_extras.append(vungle_mediation_extras)
var vungleMediationExtras = new VungleInterstitialMediationExtras();
if (OS.GetName() == "iOS")
{
vungleMediationExtras.AllPlacements = new string[] { "ios_placement1", "ios_placement2" };
}
else if (OS.GetName() == "Android")
{
vungleMediationExtras.AllPlacements = new string[] { "android_placement1", "android_placement2" };
}
var adRequest = new AdRequest();
adRequest.MediationExtras.Add(vungleMediationExtras);
var vungle_mediation_extras := VungleRewardedMediationExtras.new()
if OS.get_name() == "iOS":
vungle_mediation_extras.all_placements = ["ios_placement1", "ios_placement2"]
elif OS.get_name() == "Android":
vungle_mediation_extras.all_placements = ["android_placement1", "android_placement2"]
var ad_request := AdRequest.new()
ad_request.mediation_extras.append(vungle_mediation_extras)
var vungleMediationExtras = new VungleRewardedMediationExtras();
if (OS.GetName() == "iOS")
{
vungleMediationExtras.AllPlacements = new string[] { "ios_placement1", "ios_placement2" };
}
else if (OS.GetName() == "Android")
{
vungleMediationExtras.AllPlacements = new string[] { "android_placement1", "android_placement2" };
}
var adRequest = new AdRequest();
adRequest.MediationExtras.Add(vungleMediationExtras);
集成 Liftoff Monetize 无需添加其他代码。
SKAdNetwork 集成
遵循 Liftoff Monetize 的文档 将 SKAdNetwork 标识符添加到您项目的 Info.plist 文件中。
第 6 步:测试您的实现
我们建议遵循 Android 或 iOS 的教程,因为两者的步骤是相同的。
可选步骤
Info
重要提示:请确保您拥有 帐号管理 权限,以完成欧盟用户同意和 GDPR、CCPA 以及用户消息平台的配置。要了解更多信息,请参阅以下新用户角色文章。
欧盟用户同意和 GDPR
根据 Google 的欧盟地区用户同意策略,您必须向欧洲经济区 (EEA) 的用户进行某些披露,并就使用设备标识符和个人数据征得他们的同意。该政策符合欧盟电子隐私指令 (ePrivacy Directive) 和通用数据保护条例 (GDPR)。在征求同意时,您必须明确指出中介链中可能收集、接收或使用个人数据的每个广告网络。此外,您还应该提供有关每个网络打算如何使用这些数据的信息。重要的是,Google 目前无法自动将用户的同意选择传输给这些网络。
以下示例代码展示了如何将此同意信息传递给 Vungle SDK。如果您选择调用此方法,建议在通过 Google Mobile Ads SDK 请求广告之前进行调用。
有关更多详细信息以及该方法中可以提供的值,请参阅 GDPR 推荐的实现说明。
将 Liftoff 添加到 GDPR 广告合作伙伴列表中
遵循 GDPR 设置 中的步骤,在 AdMob UI 中将 Liftoff 添加到 GDPR 广告合作伙伴列表中。
CCPA
加州消费者隐私法案 (CCPA) 规定,加州州内居民有权选择退出其“个人信息”的“销售”(根据法律定义)。该选择退出选项应通过销售方主页上醒目的“勿出售我的个人信息”(Do Not Sell My Personal Information)链接展示。
CCPA 准备 指南提供了一项为 Google 广告投放启用限制性数据处理 的功能。然而,Google 无法将此设置应用到您中介链中的每个广告网络。因此,您必须识别中介链中可能涉及个人信息销售的每个广告网络,并遵循这些网络提供的特定指南,以确保符合 CCPA。
以下示例代码展示了如何将该同意信息传递给 Vungle SDK。如果您选择调用该方法,建议在通过 Google Mobile Ads SDK 请求广告之前进行调用。
将 Liftoff 添加到 CCPA 广告合作伙伴列表中
遵循 CCPA 设置 中的步骤,在 AdMob UI 中将 Liftoff 添加到 CCPA 广告合作伙伴列表中。
网络特定参数
适用于 Godot 的 Vungle 适配器支持一个额外的请求参数,可以根据您实现的广告格式,使用 VungleRewardedMediationExtras 或 VungleInterstitialMediationExtras 类将其传递给适配器。这些类包含以下属性:
-
sound_enabled:确定播放视频广告时是否应启用声音。 -
user_id:表示 Godot 的 Liftoff Monetize 集成的激励用户 ID 字符串。 -
all_placements:包含应用内所有广告位 ID 的数组(对于使用 Vungle SDK 6.2.0 或更高版本的应用,不需要此属性)。
对于 iOS,您可以简单地使用 VungleAdNetworkExtras 类。
以下是关于如何创建设置了这些参数的广告请求的代码示例:
var vungle_mediation_extras := VungleInterstitialMediationExtras.new()
if OS.get_name() == "iOS":
vungle_mediation_extras.all_placements = ["ios_placement1", "ios_placement2"]
vungle_mediation_extras.sound_enabled = true
vungle_mediation_extras.user_id = "ios_user_id"
elif OS.get_name() == "Android":
vungle_mediation_extras.all_placements = ["android_placement1", "android_placement2"]
vungle_mediation_extras.sound_enabled = true
vungle_mediation_extras.user_id = "android_user_id"
var ad_request := AdRequest.new()
ad_request.mediation_extras.append(vungle_mediation_extras)
var vungleMediationExtras = new VungleInterstitialMediationExtras();
if (OS.GetName() == "iOS")
{
vungleMediationExtras.AllPlacements = new string[] { "ios_placement1", "ios_placement2" };
vungleMediationExtras.SoundEnabled = true;
vungleMediationExtras.UserId = "ios_user_id";
}
else if (OS.GetName() == "Android")
{
vungleMediationExtras.AllPlacements = new string[] { "android_placement1", "android_placement2" };
vungleMediationExtras.SoundEnabled = true;
vungleMediationExtras.UserId = "android_user_id";
}
var adRequest = new AdRequest();
adRequest.MediationExtras.Add(vungleMediationExtras);
var vungle_mediation_extras := VungleRewardedMediationExtras.new()
if OS.get_name() == "iOS":
vungle_mediation_extras.all_placements = ["ios_placement1", "ios_placement2"]
vungle_mediation_extras.sound_enabled = true
vungle_mediation_extras.user_id = "ios_user_id"
elif OS.get_name() == "Android":
vungle_mediation_extras.all_placements = ["android_placement1", "android_placement2"]
vungle_mediation_extras.sound_enabled = true
vungle_mediation_extras.user_id = "android_user_id"
var ad_request := AdRequest.new()
ad_request.mediation_extras.append(vungle_mediation_extras)
var vungleMediationExtras = new VungleRewardedMediationExtras();
if (OS.GetName() == "iOS")
{
vungleMediationExtras.AllPlacements = new string[] { "ios_placement1", "ios_placement2" };
vungleMediationExtras.SoundEnabled = true;
vungleMediationExtras.UserId = "ios_user_id";
}
else if (OS.GetName() == "Android")
{
vungleMediationExtras.AllPlacements = new string[] { "android_placement1", "android_placement2" };
vungleMediationExtras.SoundEnabled = true;
vungleMediationExtras.UserId = "android_user_id";
}
var adRequest = new AdRequest();
adRequest.MediationExtras.Add(vungleMediationExtras);
错误代码
如果适配器未能从 Audience Network 接收广告,发布商可以使用以下类下的 ResponseInfo 来检查广告响应中的底层错误:
| 广告格式 | 类名 |
|---|---|
| 横幅广告 (Banner) | com.vungle.mediation.VungleInterstitialAdapter |
| 插页式广告 (Interstitial) | com.vungle.mediation.VungleInterstitialAdapter |
| 激励广告 (Rewarded) | com.vungle.mediation.VungleAdapter |
| 广告格式 | 类名 |
|---|---|
| 横幅广告 (Banner) | GADMAdapterVungleInterstitial |
| 插页式广告 (Interstitial) | GADMAdapterVungleInterstitial |
| 激励广告 (Rewarded) | GADMAdapterVungleRewardBasedVideoAd |
以下是当广告加载失败时,Liftoff Monetize 适配器抛出的错误代码和随附消息:
| 错误代码 | 域名 | 原因 |
|---|---|---|
| 0-100 | com.vungle.warren | Vungle SDK 返回了错误。请参阅文档获取更多详细信息。 |
| 101 | com.google.ads.mediation.vungle | 服务器参数无效(例如,app ID 或 placement ID)。 |
| 102 | com.google.ads.mediation.vungle | 请求的横幅广告尺寸无法映射到有效的 Liftoff Monetize 广告尺寸。 |
| 103 | com.google.ads.mediation.vungle | Liftoff Monetize 需要 Activity 上下文来请求广告。 |
| 104 | com.google.ads.mediation.vungle | Vungle SDK 无法为相同的广告位 ID 加载多个广告。 |
| 105 | com.google.ads.mediation.vungle | Vungle SDK 初始化失败。 |
| 106 | com.google.ads.mediation.vungle | Vungle SDK 返回了成功加载的回调,但 Banners.getBanner() 或 Vungle.getNativeAd() 返回了 null。 |
| 107 | com.google.ads.mediation.vungle | Vungle SDK 未准备好播放该广告。 |
| 错误代码 | 域名 | 原因 |
|---|---|---|
| 1-100 | Vungle SDK 发送 | Vungle SDK 返回了错误。请参阅代码获取更多详细信息。 |
| 101 | com.google.mediation.vungle | 在 AdMob UI 中配置的 Liftoff Monetize 服务器参数缺失/无效。 |
| 102 | com.google.mediation.vungle | 此网络配置已加载了一个广告。Vungle SDK 无法为同一个广告位 ID 加载第二个广告。 |
| 103 | com.google.mediation.vungle | 请求的广告尺寸与 Liftoff Monetize 支持的横幅广告尺寸不匹配。 |
| 104 | com.google.mediation.vungle | Vungle SDK 无法渲染该横幅广告。 |
| 105 | com.google.mediation.vungle | 无论广告位 ID 如何,Vungle SDK 每次仅支持加载 1 个横幅广告。 |
| 106 | com.google.mediation.vungle | Vungle SDK 发送了一个回调,说明该广告不可播放。 |
