Pangle, App Monetization Simplified
注册 登录 创建应用 创建广告单元 将其应用ID和广告ID关联到MAX广告。
下载Pangle Unity Plugin包,新建一个空工程(很重要)
Unity版本2019.4.0f1
gradle plugin 4.2.0
gradle版本6.7.1
build_tools 34.0.0
修改文件:
Assets\PAG\Scripts\Editor\PangleAdapterScriptsDependencies.xml
<repositories><repository>https://artifact.bytedance.com/repository/pangle</repository><repository>http://maven.aliyun.com/nexus/content/groups/public/</repository></repositories>
新增了一个阿里云镜像加速依赖资源下载(不要删默认的,别问我为什么,就是尼玛报错了而且还很奇葩,你可以试试...)
然后去force resolved 等资源全部成功下载到Plugins/Android下,这堆资源转移到我们的正式工程里,并导入这个unity插件包即可打包。(尽可能不要在多SDK环境下去force resolve依赖资源 坑太多 搞不过来的)
坑点一:
Unity工程修改gradle插件版本,无论是直接替换默认工程安装目录下的lib还是指定新的gradle都有一个问题,就是force resolved时实际用的还是默认工程lib的(具体原因未知),我们要修改这个文件夹下的lib也替换为gradle_4.2.0的lib文件。
C:\Users\用户名\.gradle\wrapper\dists\gradle-5.1.1-bin\90y9l8txxfw1s2o6ctiqeruwn\gradle-5.1.1\lib
其实你如果报错了,那一定是会提示.gradle\wrapper\dists\xxxx的,直接找到它,然后使用gradle_4.2.0_all下的lib整个替换,不要部分替换 要先删除再换!
Gradle Distributions
你需要下载一个gradle-6.7.1-all.zip,如果看到gradle-6.7.1-all文件夹将zip放进去,一般是自动生成这一串特殊字符串的文件夹的 放进去就好了,并且解压出来进它里面的lib文件夹弄到工程版本默认gradle(我的是Unity2019 默认是5.1.1所以就要移到上面的C:\Users\用户名\.gradle\wrapper\dists\gradle-5.1.1-bin\90y9l8txxfw1s2o6ctiqeruwn\gradle-5.1.1\lib 直接删了原本的lib文件夹,用6.7.1下的lib文件夹替换!(可以备份下 没了也只是重新去下个gradle-5.1.1-all.zip里面的lib)。【这一步目的是保证force resolved用的是我们gradle4.2.0去下载东西】
相关文章:【Unity】接入MAX聚合广告SDK Applovin + GoogleAdmob-CSDN博客
坑点二:
Android 12以上必须<activity>/<service>/<receiver>标签显示声明andorid:exported="true",必须是true。
<?xml version="1.0" encoding="utf-8"?>
<!-- GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN-->
<manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.unity3d.player"xmlns:tools="http://schemas.android.com/tools"><application><activity android:name="com.unity3d.player.UnityPlayerActivity"android:theme="@style/UnityThemeSelector" android:exported="true"><intent-filter android:exported="true"><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter><meta-data android:name="unityplayer.UnityActivity" android:value="true" /></activity></application>
</manifest>
如果还有其他类似的报错提示你android:exported,那说明还有没有修改的。
(可不看,因可以直接force resolved了,无需搞main template gradle)
2023年11月27日08:50:20(补充)
因为打包时想用Main Template Gradle但它确实是无法成功加载的,所以我们要用文章的方式取消这个,再用force resolve加载依赖资源到工程内,但因为少了一步是没去忽略掉依赖资源被gradle再次build时去加载,即注释文件:Assets\PAG\Scripts\Editor\PangleAdapterScriptsDependencies.xml 如下几行
<!--<androidPackage spec="com.pangle.global:ads-sdk:4.6.1.0"/><androidPackage spec="com.android.support:support-core-utils:28.0.0"/><androidPackage spec="com.android.support:support-compat:28.0.0"/><androidPackage spec="pl.droidsonroids.gif:android-gif-drawable:1.2.6"/>-->
注意注释了就无法使用force resolved去加载依赖文件了,想加载依赖文件必须要取消注释这4行并且取消勾选Main Template Gradle,去Force Resolve加载完依赖文件后再注释和勾选上Main Template Gradle,反正你只要勾选上了Main Tempalte Gradle,在打包时它就会动态生成一份新的包含这些各种SDK的依赖项,基本都通过这个xml形式以及代码动态加载一份(具体没了解)
需要取消勾选这个,不然打包时会自动清掉所有已经加载的jar aar
2023年11月27日10:36:27补充
好像取消Patch mainTemplate.gradle后会导致其他第三方需要用这种形式导入到mainTemplate.gradle的依赖丢失,导致无法打包,所以可能还得找办法解决这个
2023年11月27日19:38:03补充
【结论是失败】实际上不用那么麻烦,还是我这个gradle版本(保证是4.x以上吧)然后直接去打包即可,什么main template.gradle也不用管了(也就是自动下依赖)可能maven镜像要用下 如果下不了依赖包,虽然可以打出包了,也能正常打开APK,但是!20001错误码,他不支持在这个country,然后试了用MAX SDK也一样能打包,能加载(只是没有fail load错误)但是还是无法Show!再次Load会警告你already load Ad,但就是无法Show最终我看到了!【此处我打的是demo包官方给的Unity插件包里有个Example包去测试的,会有各种20001 40034等报错自行查阅】
所以,试试用国外账户过一遍?(真的没那精力了)
(可选看 不重要)2023年11月28日15:23:00补充
直接用Pangle官网Unity插件包里的PAG Example场景打包,可以成功跑(非应用内竞价)类型广告,也就是可以跑统一定价或自动定价的广告;应用内竞价广告会报错40034 unknow server error(用日本节点) 但是使用聚合MAX去跑还是不行(全都不行),卡在无法加载(没有打印加载成功 以及 加载失败都没有,也就是啥也没有)
2023年11月28日16:26:25最终成功总结
把节点改为日本(或其他Pangle支持的国家节点),然后去创建Pangle广告单元并关联到MAX聚合那边的Bidder Mediator
将其应用ID和广告ID填入,保存,它会告诉你要等个30~60分钟。Pangle创广告单元后也是要等的,保守起见等1小时去测。(打包是用ARM64位,IL2CPP打的)
我是使用mumu模拟器12,节点用日本的(或其他Pangle支持的国家节点)
Pangle支持的国家和地区 | Pangle
还是用官方提供的Unity插件包 导入,然后用MAX那边也要导入个中介
注意不是CSJ(穿山甲),这玩意是国内专用的,我接海外,必须是Pangle
测试设备也要弄下吧如何测试广告 | Pangle
mumu模拟器12 GAID获取途径
我语言环境改为了英文(保险起见还是改下)
然后就是调用MAX SDK 加载和显示广告(激励广告),可能要等个几分钟或十几分钟才加载完毕广告(不知道为什么如此缓慢!节点不给力),必须看到广告加载成功回调打印出了,你才能去显示广告,如果你尝试反复去Load,SDK方会提示这广告已经Loading,其实是假的,这时候广告仍然还在Loading中,你还要等(如果等很久很久都不行 换个节点 或 软件吧)
其实为啥会那么艰难还是因为第一次接这种类型 以及最后那个报错说已经loading 我急着测 一直点 没有耐心等十几分钟导致的,以及CSJ、Pangle、穿山甲等多重SDK名词,加上MAX SDK聚合那边也有好几个叫法 CSJ Pangle CSJ2 穿山甲,各种支持国内还是不支持啥的 太乱了导致如此缓慢!