【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  退出广告时闪退 ...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/180268.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用宝塔安装Alist

废话不多说&#xff0c;直接上教程&#xff0c;根据我的步骤一步一步来&#xff0c;肯定可以成功&#xff01; 我这边使用一键安装的时候&#xff0c;一致报错&#xff0c;提示证书过期&#xff0c;无奈我就开始了手动安装&#xff0c;下面的教程也是手动安装的教程 首先&…

RabbitMQ安装说明

注意: 本次安装以 CentOS 7为例 1、 准备软件 erlang 18.3 1.el7.centos.x86_64.rpm socat 1.7.3.2 5.el7.lux.x86_64.rpm rabbitmq server 3.6.5 1.noarch.rpm 2、安装Erlang rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm 3.、安装RabbitMQ 安装 rpm -ivh socat-1.7.3.2-…

码云 -- 本地代码上传到码云

1. 在码云上创建远程仓库 复制远程仓库地址 2. 在本地代码上创建 git 仓库 在本地代码文件夹上&#xff0c;打开git 命令窗口 输入初始化命令&#xff0c;创建 git 仓库 git init3. 给 git 仓库添加远程仓库 继续输入 git 命令 git remote add origin 远程仓库地址4. 按 git 的…

提升性能测试效率:JMeter中的用户自定义变量!

前言 在测试过程中&#xff0c;我们经常会碰到测试服务地址有改动的情况&#xff0c;为了方便&#xff0c;我们会把访问地址参数化&#xff0c;当访问地址变化了&#xff0c;我们只需要把参数对应的值改动一下就可以了。 一&#xff1a;添加配置元件-用户定义的变量&#xff…

python命令行 引导用户填写ssh登录信息

字多不看&#xff0c;直接体验&#xff1a; 待补充 演示代码 # -*- coding:UTF-8 -*- """ author: dyy contact: douyaoyuan126.com time: 2023/11/23 9:20 file: 引导用户填写ssh接口信息.py desc: xxxxxx """# region 引入必要的依赖 impor…

腾讯云 小程序 SDK对象存储 COS使用记录,原生小程序写法。

最近做了一个项目&#xff0c;需求是上传文档&#xff0c;文档类型多种&#xff0c;图片&#xff0c;视频&#xff0c;文件&#xff0c;doc,xls,zip,txt 等等,而且文档类型可能是大文件&#xff0c;可能得上百兆&#xff0c;甚至超过1G。 腾讯云文档地址&#xff1a;https://c…

AI如何帮助IT领导者优化成本和降低风险

围绕AI的兴奋和好奇心-以及随之而来的可能性-让整个行业沸沸扬扬&#xff0c;结果不言而喻&#xff0c;32%的IT领导者表示&#xff0c;集成AI是2023年的首要任务&#xff0c;其次是降低安全风险(31%)和降低IT成本(29%)。 虽然在可预见的未来&#xff0c;AI可能是IT领导者的首要…

Navicat 技术指引 | 适用于 GaussDB 的备份与还原功能

Navicat Premium&#xff08;16.2.8 Windows版或以上&#xff09; 已支持对 GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能&#xff0c;还提供强大的高阶功能&#xff08;如模型、结构同步、协同合作、数据迁移等&#xff09;&#xff0c;这…

【QML】StackView上层页面半透明,显示下层页面

1、 应用场景 有时候需要模拟弹窗效果&#xff0c;需要下层的页面半透明显示。仅仅将上层页面背景设置为透明并不能实现这个效果&#xff0c;下层的页面依然被覆盖。Qt帮助文档中有如下代码&#xff0c;经测试有效果。 2、 代码 重点标记&#xff1a; 下层页面需要设置这个…

三、Keil安装芯片包、下载固件库、建立STM32工程模板

目录 一、首先在Keil软件上安装好芯片包 二、下载官方固件库 三、建立基于固件库的Keil5工程模板 一、首先在Keil软件上安装好芯片包 STM32有很多系列的芯片&#xff0c;我们平常用的最多的是STM32F1系列的&#xff0c;因此安装F1系列的芯片包在我们初学时&#xff0c;只按照…

2023亚太杯数学建模A题思路 - 采果机器人的图像识别技术

# 1 赛题 问题A 采果机器人的图像识别技术 中国是世界上最大的苹果生产国&#xff0c;年产量约为3500万吨。与此同时&#xff0c;中国也是世 界上最大的苹果出口国&#xff0c;全球每两个苹果中就有一个&#xff0c;全球超过六分之一的苹果出口 自中国。中国提出了一带一路倡议…

Java引用和内部类

引用 引用变量 引用相当于一个 “别名”, 也可以理解成一个指针. 创建一个引用只是相当于创建了一个很小的变量, 这个变量保存了一个整数, 这个整数表示内存中的一个地址. new 出来的数组肯定是在堆上开辟的空间,那么在栈中存放的就是引用,引用存放的的就是一个对象的地址,代表…

中部A股第一城,长沙如何赢商?

文|智能相对论 作者|范柔丝 长沙的马路&#xff0c;都很有故事。 一条解放西路&#xff0c;是全国人民都争相打卡的娱乐地标&#xff1b;一条太平街&#xff0c;既承载了历史的厚重又演绎着现代的鲜活...... 但如果来到河西的桐梓坡路&#xff0c;风景会变得截然不同。 沿…

Javascript中的宏任务与微任务

事件循环 JavaScript 语言的一大特点就是单线程&#xff0c;也就是说&#xff0c;同一个时间只能做一件事。为了协调事件、用户交互、脚本、UI 渲染和网络处理等行为&#xff0c;防止主线程的不阻塞&#xff0c;Event Loop 的方案应用而生。Event Loop 包含两类&#xff1a;一…

[Linux 基础] Linux使用git上传gitee三板斧

文章目录 1、使用git1.1 安装git1.2 在Gitee上创建项目1.2.1 使用Gitee创建项目1.2.2 上传本地代码到远端仓库 1.3 git上传三板斧1.3.1 三板斧第一招&#xff1a;git add1.3.2 三板斧第二招&#xff1a;git commit1.3.3 三板斧第三招&#xff1a;git push 1、使用git 1.1 安装…

01 第一个C++程序:Hello, World!

系列文章目录 01 第一个C程序&#xff1a;Hello, World! 目录 系列文章目录 文章目录 前言 二、创建项目 三、书写代码 代码逐行解释 其它细节 总结 前言 这是c入门的第一个程序。 一、配置c环境 我们要使用visual studio创建一个新的项目时&#xff0c;需要安装c, 这里我没…

大数据分析仓库Kylin

一、Kylin 定义 Apache Kylin 是一个开源的分布式分析引擎&#xff0c;提供 Hadoop/Spark 之上的 SQL 查询接口及多维分析能力以支持超大规模数据&#xff0c;最初由 eBay 开发并贡献至开源社区。它能在亚秒内查询巨大的 Hive 表。 二、Kylin 架构 A、REST Server 是应用程序…

透过一台电视,看到万家星闪

此前我们说过&#xff0c;实现万物互联的梦想&#xff0c;不仅要关注光纤、5G所打通的智能联接&#xff0c;更要关注短距传输所支撑的最后一段距离。 在咫尺之间&#xff0c;方寸之地&#xff0c;数据的传输与设备的协同依旧会遇到大量挑战。反过来说&#xff0c;一旦出现稳定、…

为企业解决设备全生命周期需求,凌雄科技凸显DaaS增长价值

企业成长离不开投资&#xff0c;但毫无疑问的是&#xff0c;投资最有价值的部分在业务。相比之下&#xff0c;诸如办公设备之类的固定资产投资&#xff0c;很容易变成企业现金流的吞噬者。从购买、运维到保养、折旧、回收&#xff0c;现代企业在越来越大的办公设备规模面前&…

利用GenericMenu创建上下文菜单或下拉菜单

使用GenericMenu 创建自定义上下文菜单和下拉菜单丰富自己的编辑器功能。 GenericMenu 介绍 变量 allowDuplicateNames 允许菜单具有多个同名的菜单项。 公共函数 AddDisabledItem 向菜单添加已禁用的项。 AddItem 向菜单添加一个项。 AddSeparator 向菜单添加一个分隔符项…