【Unity3D】MAX聚合广告SDK——Pangle广告接入(成了!成了!)

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  穿山甲,各种支持国内还是不支持啥的 太乱了导致如此缓慢!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有没有不含亚硫酸盐的葡萄酒?

没有完全不含亚硫酸盐的葡萄酒&#xff0c;有机葡萄酒和生物动力葡萄酒中也会含有少量天然 亚硫酸盐。因为它是在发酵过程中产生的一种化合物&#xff0c;所以不可能酿造无亚硫酸盐的葡萄酒。 在大多数葡萄酒国家都有葡萄酒法律规定&#xff0c;如果葡萄酒超过特定的亚硫酸盐水…

HttpRunner原来还能这么用,大开眼界!!!

hook机制 Httprunner 框架中的 hook 机制相当于unittest框架中的 setup , teardown 函数&#xff0c;用来进行测试用例执行之前的环境初始化以及测试用例执行完毕之后的环境清理操作。 httprunner 中的 hooks 机制可以用在测试用例层级也可以用在测试步骤层级&#xff0c;其关键…

TDA4VM LInux SDK编译

文章目录 前言编译步骤前言 上篇TDA4VM EVM开发板调试笔记我们尝试把EVM开发板跑起来了,本篇主要记录,Linux SDK 的编译过程。 编译步骤 安装依赖: $ sudo apt-get update $ # Install packages required for builds $ sudo apt-get -f -y install \

【微服务专题】微服务架构演进

目录 前言阅读对象阅读导航前置知识笔记正文一、系统架构的演变1.1 单体架构1.2 单体水平架构1.3 垂直架构1.4 SOA架构1.5 微服务架构 二、如何实现微服务架构2.1 微服务架构下的技术挑战2.2 微服务技术栈选型2.3 什么是Spring Cloud全家桶2.4 Spring Cloud Alibaba版本选择 学…

慢 SQL 分析及优化

目录 分析慢 SQL SQL 优化 单表优化 多表优化 慢 SQL&#xff1a;指 MySQL 中执行比较慢的 SQL排查慢 SQL 最常用的方法&#xff1a;通过慢查询日志来查找慢 SQL MySQL 的慢查询日志是 MySQL 提供的一种日志记录&#xff0c;它用来记录在 MySQL 中响应时间超过阈值的语句&…

AI模型训练——入门篇(一)

前言 一文了解NLP&#xff0c;并搭建一个简单的Transformers模型&#xff08;含环境配置&#xff09; 一、HuggingFace 与NLP 自从ChatGPT3 问世以来的普及性使用&#xff0c;大家或许才真正觉察AI离我们已经越来越近了&#xff0c;自那之后大家也渐渐的开始接触stable diff…

esp32 esp-idf V5.1.1版本看门狗配置

idf.py menuconfig打开配置窗口 选择Component config选项

智慧城市交通大屏|助力解决城市交通问题

2017年起&#xff0c;数字孪生连续三年被Gartner列入“未来科技十大趋势”&#xff0c;由此可见数字孪生技术正屹立在数字化发展的风口之中。 数字孪生作为物理世界的数字映射&#xff0c;将流程、物体的信息利用数字技术实时映射到系统中&#xff0c;可以对某个设备、某个企业…

深入了解MD5加密技术及其应用与局限

一、MD5简介 MD5&#xff08;Message Digest Algorithm 5&#xff09;是一种单向散列函数&#xff0c;由美国密码学家罗纳德李维斯特&#xff08;Ronald Linn Rivest&#xff09;于1991年发明。它主要用于将任意长度的消息映射成固定长度的摘要&#xff0c;从而实现消息的完整…

高危行业vr施工安全教育平台提高员工的学习效果和兴趣

元宇宙作为一个虚拟的、无限的数字空间&#xff0c;为教育领域带来了前所未有的可能性。元宇宙突破了传统教育的物理空间限制&#xff0c;使学生和老师不受地域和时间的束缚&#xff0c;可以随时随地开展课堂学习。它还为学习者提供了更丰富、更沉浸式的学习体验&#xff0c;使…

【攻防世界-misc】glance-50

1.得到一个动图 2.使用GIF动态图片分解&#xff0c;多帧动态图分解成多张静态图片_图片工具网页版&#xff0c;将图片定格组合&#xff0c; 由此得到flag值&#xff0c;拼写提交。

【数据结构/C++】栈和队列_链栈

链头 栈顶。 #include<iostream> using namespace std; // 链栈 typedef int ElemType; typedef struct Linknode {ElemType data;struct Linknode *next; } *LiStack; // 初始化 void InitLiStack(LiStack &S) {S (LiStack)malloc(sizeof(struct Linknode));S->…

【PyQt】(自定义类)阴影遮罩-升级版

这是之前发的代码(自定义类)阴影遮罩的升级版。 升级就升级在&#xff0c;优化了对非矩形控件的遮盖效果&#xff0c;例如圆角按钮&#xff0c;以及默认方法不满足时可以传入其他的遮盖方法。 自定义阴影遮罩Mask&#xff1a; class Mask(QWidget):__excludeNone__colorNonecl…

20 章 多线程

20.1线程简介. 20.2创建线程 2.1继承Thread类 Thread 类是java.lang包中的一个类&#xff0c;从这个类中实例化的对象代表线程&#xff0c;程序员启动一个新线程需要建立Thread 实例。Thread类中常用的两个构造方法如下: public Thread():创建一个新的线程对象。 public Thre…

数据安全:专业服务与您共同对抗.faust数字勒索的威胁

引言&#xff1a; 在数字世界的幕后&#xff0c;一股黑暗势力悄然崛起。.faust勒索病毒&#xff0c;如同数码时代的黑手党&#xff0c;通过其高度精密的加密技术&#xff0c;正在肆虐用户和组织的数据。本文将深入挖掘.faust的狡猾手法&#xff0c;为您揭示其隐藏在数字背后的…

v-model(双向数据绑定)自动收集数据

v-model 是 Vue 中一个常用的指令&#xff0c;用于实现表单元素与数据的双向绑定。 它的实现原理主要基于以下两个方面&#xff1a; 语法实现&#xff1a; v-model 实际上是 Vue 对 :value 和 input 两个属性的语法糖。当我们在组件中使用 v-model 指令时&#xff0c;Vue 会根…

C++ string类(二)

insert&#xff1a; erase&#xff1a; 常见用法&#xff1a; int main() {string s1("hello world");string s2("gm");s1.insert(5,"x");cout << s1 << endl;s1.insert(6,s1,0);cout << s1 << endl;s1.insert(0,&qu…

Matlab 点云曲率计算(之二)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 之前已经讨论过许多关于计算曲率的问题,这里使用一个通过拟合三次曲面方程的方式来计算曲率,计算过程如下图所示: 二、实现代码 %********

goweb入门教程

本文是作者自己学习goweb时写的笔记&#xff0c;分享给大家&#xff0c;希望能有些帮助 前言&#xff1a; 关于web&#xff1a;本质 ​ ​ web中最重要的就是浏览器和服务器的request(请求)和response(响应)&#xff1b; ​ 一个请求对应一个响应。 一个请求对应一个响应&…

11-28渗透

用nmap扫描靶机1进行主机发现 已知靶机1的主机在172.16.17.0/24下 扫描结果如下 根据扫描结果看开启的服务怀疑172.16.17.177是靶机1 浏览器访问172.16.17.177页面得到如下 我们知道织梦cms系统默认管理路径是dede&#xff0c;登陆管理后台可以通过地址172.16.17.177/dede/i…