Unity 2017.2.0中基于AdMob 3.11.1中介集成Vungle 5.3.2的问题
Vungle 5.3.2 集成到 AdMob 3.11.1 Unity 中介的完整解决方案
我之前在Unity 2017版本里折腾过类似的AdMob+Vungle中介集成,结合你已经完成的配置,下面给你梳理剩下的关键步骤和常见坑的解决办法:
一、Unity 端的依赖与配置补全
你已经导入了Vungle的.jar文件,但还要确认这几点:
- 确保你用的是Vungle 5.3.2对应的AdMob中介适配器(如果AdMob 3.11.1插件里没自带,需要单独下载适配版本的jar放到Plugins/Android),适配器是中介能打通两个广告平台的关键,没它AdMob没法调用Vungle的广告
- 检查Plugins/Android下的Vungle jar文件的Inspector设置:平台选Android,CPU架构勾选
ARMv7、ARM64(根据你的发布需求),不要勾选其他平台,避免打包冲突 - 打开Unity的Player Settings,把Minimum API Level设为Android 4.1 (API Level 16),Vungle 5.3.2要求最低API版本是16,低于这个会打包失败
二、AndroidManifest.xml 手动配置
Unity打包会自动生成Manifest,但Vungle的一些组件需要手动添加,你可以在Plugins/Android下创建一个AndroidManifest.xml(如果没有的话),添加以下内容:
- 补充Vungle需要的权限(AdMob可能已经加了,但确认下):
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
- 添加Vungle的核心Activity:
<activity android:name="com.vungle.publisher.VungleActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/> <activity android:name="com.vungle.publisher.FullScreenAdActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
- 配置Vungle的App ID(替换成你的Vungle控制台的App ID):
<meta-data android:name="com.vungle.publisher.app_id" android:value="你的Vungle App ID"/>
三、代码层面的初始化与广告调用
AdMob中介会自动管理Vungle的初始化,你只需要保持原来的AdMob初始化逻辑,额外注意这几点:
- 初始化AdMob时,确保你已经在代码里设置了正确的AdMob App ID:
MobileAds.Initialize(initStatus => {});
- 加载插屏/激励广告时,用你在AdMob控制台配置的中介广告单元ID(不是Vungle的原生广告位ID),比如加载激励广告:
RewardedAd rewardedAd; private void LoadRewardedAd() { string adUnitId = "你的AdMob激励中介广告单元ID"; rewardedAd = new RewardedAd(adUnitId); rewardedAd.OnUserEarnedReward += HandleUserEarnedReward; rewardedAd.OnAdClosed += HandleRewardedAdClosed; AdRequest request = new AdRequest.Builder().Build(); rewardedAd.LoadAd(request); } private void HandleUserEarnedReward(object sender, Reward args) { // 处理用户获得奖励的逻辑,这里的奖励信息会由Vungle通过AdMob中介传递过来 Debug.Log("用户获得奖励:" + args.Type + " " + args.Amount); }
- 插屏广告的调用逻辑和原生AdMob插屏一致,不需要额外修改,AdMob会自动优先调用Vungle的广告(因为你设了高eCPM)
四、常见问题排查
如果遇到广告加载失败或不显示,按以下步骤排查:
- 日志排查:用Android Studio连接设备查看Logcat,搜索关键词
Vungle、Mediation,看有没有初始化失败、广告位ID错误、网络请求失败的日志,比如Vungle init failed通常是App ID错误 - 混淆设置:如果开启了ProGuard,必须添加Vungle和AdMob的混淆规则,避免代码被误删:
-keep class com.vungle.** { *; } -keep class com.google.android.gms.ads.** { *; } -dontwarn com.vungle.** -dontwarn com.google.android.gms.**
- 依赖冲突:检查Plugins/Android下有没有重复的jar包(比如okhttp、gson这类第三方库),如果有,删除版本较低的那个,避免打包时的DEX错误
- 控制台配置核对:再次确认AdMob控制台里的Vungle广告源:广告位ID是否和Vungle控制台的自定义插屏/激励广告位一致,eCPM设置是否生效,广告源是否处于启用状态
内容的提问来源于stack exchange,提问作者Nicolas Lorusso
相关产品推荐
相关产品推荐

