【Unity】接入MAX聚合广告SDK Applovin + GoogleAdmob

版本:
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

<dependencies>
  <androidPackages>
    <androidPackage spec="com.google.android.gms:play-services-ads:[22.3.0]">
      <repositories>
        <repository>http://maven.aliyun.com/nexus/content/groups/public/</repository>
      </repositories>
    </androidPackage>
  </androidPackages>

  <iosPods>
    <iosPod name="Google-Mobile-Ads-SDK" version="~> 10.9">
      <sources>
        <source>https://github.com/CocoaPods/Specs</source>
      </sources>
    </iosPod>
  </iosPods>
</dependencies>

改为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

 下载它解压找到lib文件夹 直接替换过去。

最后测试我是接入了谷歌登录的,然后正常连登录一个谷歌邮箱进去游戏,播广告成功,有问题就是MUMU模拟器12 在播完广告 点击X  退出广告时闪退 ...

坑点:广告有些是不能开启全局模式以及更换下节点(台湾或日本)才正常 ,不然是无法成功Load说你未填充(其实是假的,换下节点或模式就又好了!)

注意:MAX SDK测试设备是7天后(一定时间后)自动取消激活!如果一直失败要去看看这个测试设备是否处于激活中。

测试阶段直接去添加测试设备,不用连海外即可

AppLovin

 需要注意测试设备添加的GAID要弄正确,不要写错了。

 

我测试就接入Admob

注意它很SB,你只能添加一次这个设备GAID 绑定一个network,你如果想测试别的中介广告 比如Pangle,你就得去改一下 或者 新建一个模拟器用新的GAID绑定Pangle平台广告。

注意激活测试设备后,要等个几分钟,虽然是测试广告也是要等个几秒才加载出来的,如果不行还是连节点吧,还是不行改改模式(全球模式或规则模式) 

猜你喜欢

转载自blog.csdn.net/qq_39574690/article/details/134571949