最近要接入穿山甲广告,我把穿山甲广告相关的接入流程记录一下,说说最近踩过的坑,和怎么解决的问题。注意我们需求是只发安卓包没有iOS的需求,本篇只介绍Unity接入安卓相关的处理(帖子是2019年底写的最近才发有问题可以留言或者看官方文档)
(1)、创建穿山甲平台账号账号成功之后创建自己的应用
(2)、申请代码位
这里解释一下,广告的大小是在后台设置的入banner广告和开屏广告都是可以设置大小和比例的,视频广告需要设置横屏或者竖屏。
(3)、去穿山甲官网下载穿山甲Unity插件,插件地址:
https://partner.oceanengine.com/union/media/union/download
下载完成之后是一个压缩包。打开之后包含的内容如下。
将除了ios相关的文件全部导入到unity中。
(1)在导入unity插件之后,在对应的Android平台中AndroidManifest.xml文件里检查以下配置信息。配置完AndroidManifest.xml后,需要检查混淆文件的配置。如果项目中没有AndroidManifest的话那么需要导出一个项目的安卓工程如下图
导出之后用androidStudio打开工程导入然后找到AndroidManifest复制到项目的 Plugins/Android下没有目录的话创建目录。导出的工程还有用初始化广告逻辑的话还需要在androidStudio中写初始化广告的代码。
(2)在导出的AndroidManifest中添加以下权限
如果您的应用需要适配Anroid7.0及以上,请在AndroidManifest中添加如下代码:
在Assets/Plugins/Android/res/xml目录下,新建一个xml文件file_paths,在该文件中添加如下代码,或者直接拷贝官方提供的示例项目中的xml
注意下图的描述工程内要引用这个这个不需要写在AndroidManifest里写在
这个Gradle文件中即可。这个版本可以引用高版本我这引入的是implementation 'com.android.support:support-v4:28.0.0'。
(3)provider配置,单线程或者多线程的环境下都要配置,到此AndroidManifest中的配置就完成了
下图贴出完整的AndroidManifest配置。
(4)代码混淆,可以直接复制官方案例里的proguard-user文件。
或者按照官方文档里将下图内容复制到 proguard-user中。
(5)接下来需要用androadStudio打开上边导出的安卓工程,在自己的包路径下创建一个名叫 UnionApplication 的java脚本按照官方文档将初始化配置的逻辑写在脚本中。UnionApplication这个脚本在官方的示例工程里有可以拷贝到安卓项目中简单修改就可以使用。具体参考下图,我的这个脚本叫TtadManagerHolder
添加好之后调用脚本中的init方法就可以完成广告SDK初始化了。具体参数说明可以参考android平台相关配置文档。在C#里调用java代码我就不在这赘述了网上教程很多。
(6)在unity创建一个调用广告的脚本
视频广告,banner,插屏,开屏广告,详细参考exampleSDK脚本。
穿山甲Unity插件官方文档:https://partner.oceanengine.com/union/media/union/download/detail?id=6&docId=5de8d86a25b16b00113af0c1&osType=
问题1:
报错的具体内容
解答:这个问题是在java脚本中广告没有被调用初始化出现的问题
问题2:
这个问题比较严重意思是12月5日之后申请的广告位ID是模板型的广告位,而unity中的是渲染型的广告位id,申请之后接入unity这个插件不能用模板类型的广告,这也是我后来选择重新接入Android原生的穿山甲SDK
(2)关于没有customGadleTemplate和UserProguardFile两个文件的问题。
注意如果项目中没有下图这两个文件的话可以通过Inspector窗口勾选build中customGadleTemplate和UserProguardFile生成