版本:
Unity:2019.4.35f1
gradle plugin: 4.2.0 (实际要7.0+ 对应build_tools:34.0.0)
gradle: 6.7.1 (实际要7.0+ 对应build_tools:34.0.0)
jdk: 1.8.0_241
build_tools: 34.0.0
ndk: android-ndk-r19
文档:
6.0.1(Android 12.0.0 & iOS 12.0.0) MAX聚合广告Unity:MAX Mediation Documentation
8.5.3 Google Admob:Releases · googleads/googleads-mobile-unity · GitHub
应对gradle和build_tools版本不对可能引起的报错 提示34.0.0损坏解决方法:
Android Installed Build Tools revision 34.0.0 is corrupted. Remove and install again using the SDK-CSDN博客
(即修改build_tools目录下的d8.bat和 build_tools/lib下的d8.jar 命名都改为dx,后缀不变.)
正常应找到对应的gradle版本 设置正确的gradle plugin版本.
升级 Gradle for Android | Unity | Google for Developers
要注意Google Admob方面的插件要求gradle版本,我这里是用了最新的版本所以用了4.2.0 gradle插件。
将max sdk unity插件包和google admob插件包导入Unity后的设置:
填写的ID是谷歌Admob那边的应用ID,而不是广告ID。
asset菜单下的(同理填的是Google Admob应用id
坑点:在MAX聚合广告文档里你会看到有个SDK KEY,如果你用了中文翻译可能是错误的KEY,最好是去到聚合广告控制台里找到你的应用SDK KEY,且不要翻译为中文,错误的KEY我是检查到了是有大小写问题,要打开大小写识别去检查所有KEY是否正确。
聚合广告MAX控制台
AppLovin - Sign in
谷歌Admob控制台
https://apps.admob.com/
这里去添加广告单元,注意什么类型的广告必须要用具体的API去加载和显示广告以及对应的回调也是,如果广告无法正常加载说明可能就是用错了API或广告ID不对。
比如上面我选择了Rewarded类型激励广告,就必须要用激励广告API
这里必须要关联Google Admob(Admob就是Google的)它要填App id和Ad Unit ID,这个Ad Unit ID不是指聚合广告SDK的 我们现在创的聚合广告ID,而是指谷歌Admob的广告ID。
这个谷歌广告ID要去到Admob控制台创建广告单元,并且将广告单元设置为中介。
然后将会得到一个广告ID,将它设置到聚合广告那边。
我们使用聚合广告SDK的API加载和显示广告都是传入聚合广告ID,而不是Google Admob的广告ID,其实就是一个聚合广告ID能关联多个其他平台的广告ID,它会用一套优先规则去选择展示哪个平台的广告。
CPM Price是每千次广告播放带来的收益,这个不是很懂 我目前随便设置1的
Unity PlayerSetting相关配置:
Google平台要求必须64位
主要是Target API Level选自动最高,即34 实际33就满足所有包的要求
选中这4个,之后去Force Resolve会瞬间成功,实际上就是加了一些依赖配置到mainTemplate.gradle,你必须勾选Custom Main Gradle Template选项才是这样不然就是帮你直接加载依赖文件到Plugin/Android文件夹下(会很慢而且可能会失败!推荐这样做)
加到mainTemplate.gradle的依赖项会在构建build时帮你下载依赖,这个很快就成功。
mainTemplate.gradle我的是会自动添加如下配置:
// Android Resolver Repos Start ([rootProject] + (rootProject.subprojects as List)).each { project -> project.repositories { def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/") maven { url "https://maven.google.com" } maven { url "http://maven.aliyun.com/nexus/content/groups/public/" // Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:7 } maven { url "https://maven.google.com/" // Assets/GoogleMobileAds/Editor/GoogleUmpDependencies.xml:7 } mavenLocal() mavenCentral() } } // Android Resolver Repos End dependencies { // Android Resolver Dependencies Start implementation 'com.applovin.mediation:google-adapter:[22.5.0.0]' // Assets/MaxSdk/Mediation/Google/Editor/Dependencies.xml:5 implementation 'com.applovin:applovin-sdk:12.0.0' // Assets/MaxSdk/AppLovin/Editor/Dependencies.xml:4 implementation 'com.google.android.gms:play-services-ads:[22.3.0]' // Assets/GoogleMobileAds/Editor/GoogleMobileAdsDependencies.xml:7 implementation 'com.google.android.ump:user-messaging-platform:2.1.0' // Assets/GoogleMobileAds/Editor/GoogleUmpDependencies.xml:7 // Android Resolver Dependencies End } // Android Resolver Exclusions Start test android { packagingOptions { exclude ('/lib/armeabi/*' + '*') exclude ('/lib/armeabi-v7a/*' + '*') exclude ('/lib/mips/*' + '*') exclude ('/lib/mips64/*' + '*') exclude ('/lib/x86/*' + '*') exclude ('/lib/x86_64/*' + '*') } } // Android Resolver Exclusions End
因为我当时想通过Force Resolve直接下载依赖资源到工程的,所以改了maven镜像路径,改动地方是Assets\GoogleMobileAds\Editor\GoogleMobileAdsDependencies.xml
http://maven.aliyun.com/nexus/content/groups/public/
改为http://maven.aliyun.com/nexus/content/groups/public/ 阿里云镜像,能加快下载google依赖
baseProjectTemplate.gradle里修改
classpath 'com.android.tools.build:gradle:4.2.0'
4.2.0就是gradle plugin版本,对应gradle 6.7.1
2019版本Unity工程默认是3.4.0版本 对应gradle 5.1.1
Android studio版本对用的gradle版本和插件版本(注意事项)_gradle版本和gradle插件版本-CSDN博客
可以去到工程查看,使用这个勾选上,就是用工程默认的gradle 我是直接替换了默认的gradle的
替换的是这个文件夹
Gradle Distributions
最后测试我是接入了谷歌登录的,然后正常连登录一个谷歌邮箱进去游戏,播广告成功,有问题就是MUMU模拟器12 在播完广告 点击X 退出广告时闪退 ...