Unity接入激励视频广告,Admob+UnityAds+FacebookAudienceNetwork+Pangle。
前段时间用了两周时间接广告,后来又改用其他方式接入了。
记一下接入过程,算是没白辛苦吧。 2021/2/22
--------------------------------- NRatel割 ---------------------------------
一、Admob+UnityAds+FacebookAudienceNetwork接入笔记
按照 https://developers.google.com/admob/unity/quick-start
1、创建Demo(Unity2019.4.24f1)。
2、下载插件(GoogleMobileAds-v5.4.0.unitypackage),并将插件导入Demo。
导入后弹出了Package Manager Resolver。点击Add Selected Registries。点击 Apply。
3、加入移动广告 SDK(安卓)。
Assets > External Dependency Manager > Android Resolver > Resolve。
要求切到 Android 平台。
切到后要求 Enable Android Auto-resolution。 Enable。
4、设置您的 AdMob 应用 ID。
Assets > Google Mobile Ads > Settings。(会生成一个配置文件于:Assets/Google Mobile Ads/Resources/GoogleMobileAdsSettings)
--------------------------------- NRatel割 ---------------------------------
安卓打包(不能播放)。
ClassNotFoundException com.google.android.gmd.ads.initialization.On...
Assets > External Dependency Manager > Android Resolver > ForceResolve
(ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH)。
下载最新JDK,并设置环境变量JAVA_HOME、CLASSPATH、PATH
https://www.oracle.com/java/technologies/javase-jdk15-downloads.html
注意:项目路径不能带特殊符号,否则会出错。因为要执行一些批处理命令。
--------------------------------- NRatel割 ---------------------------------
5、加入Admob中介测试套件
Admob中介:https://developers.google.cn/admob/unity/mediate
Admob中介测试套件:https://developers.google.cn/admob/unity/mediation-test-suite
6、集成 Facebook Audience Network SDK 及其适配器
https://developers.google.cn/admob/unity/mediation/facebook
技术直接拉到第三步。
下载 Google Mobile Ads mediation plugin for Facebook 解压并导入
(https://bintray.com/google/mobile-ads-adapters-unity/GoogleMobileAdsFacebookMediation#files)
会自动执行Resolve。
最好再执行一下ForceResolve。
不需要额外其他操作。
7、集成 Unity Ads SDK 及其适配器
https://developers.google.cn/admob/unity/mediation/unity
技术直接拉到第三步。
下载 Google Mobile Ads mediation plugin for Unity Ads 解压并导入
(https://bintray.com/google/mobile-ads-adapters-unity/GoogleMobileAdsUnityAdsMediation#files)
会自动执行Resolve。 最好再执行一下ForceResolve。
--------------------------------- NRatel割 ---------------------------------
安卓打包报错:uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library [:com.google.ads.mediation.unity-3.6.0.0:]
解决:Player Settings > Other Settings > Minimum API Level, 16改为19。
怎么找到GAID(Android)(需要安装了Google服务框架的手机)
https://support.spryfox.com/hc/en-us/articles/360005168034-How-do-I-find-my-GAID-Google-Advertising-ID-Google-Play-devices-only-
怎么找到IDFA?(IOS)
在AppStore中搜索"IDFA",随便安装一个工具软件,打开即有显示。
--------------------------------- NRatel割 ---------------------------------
二、Pangle接入笔记
1、接入Pangle SDK Unity 海外版。
下载地址:https://www.pangle.cn/union/media/union/download?platform=unity。(需要登录)
解压并导入其中的 PangleSDK.unitypackage 和 PangleAdapterScripts.unitypackage。
PangleSDK.unitypackage,内含Android (主要是 ioen_ad_sdk.aar)和 IOS 依赖的库。
--------------------------------- NRatel割 ---------------------------------
PangleAdapterScripts.unitypackage,内含其适配到admob 所需的文件。
其中,
Plugins/Android/proguard-user.txt:用于避免SDK代码被混淆
res/xml/file_paths.xml:为com.bytedance.sdk.openadsdk.TTFileProvider提供资源
res/xml/network_config.xml:设置网络安全配置。具体参考 https://developer.android.com/training/articles/security-config?hl=zh-cn
Plugins/Android/AndroidManifest.xml:只是标明了SDK需要的配置。实际使用时要将其删除,然后把其中重要的部分合并到游戏的AndroidManifest.xml中去。
Editor/ModifyUnityAndroidAppManifestSample.cs:告诉你在C#中怎么修改游戏的AndroidManifest.xml。
其他:适配用的C#代码。
2、Admob聚合Pangle。
(安卓部分的文档,https://developers.google.com/admob/android/rewarded-ads-custom-events)
Admob聚合各家广告(如Pangle)的过程其实就是:
1、初始化:AdMob初始化 => 适配器初始化 => Pangle初始化 => 回调AdMob初始化成功/失败。
(com.google.android.gms.ads.mediation.InitializationCompleteCallback 的 onInitializationSucceeded/onInitializationFailed)
2、广告加载:AdMob广告加载 => 适配器广告加载 => Pangle广告加载 => 回调AdMob广告加载成功/失败。
(com.google.android.gms.ads.mediation.InitializationCompleteCallback 的 onInitializationSucceeded/onInitializationFailed)
3、广告展示:AdMob广告展示 => 适配器广告展示 =>Pangle广告加载 => 回调AdMob广告开始/展示/完成/获得奖励。
(com.google.android.gms.ads.mediation.InitializationCompleteCallback 的 onVideoStart/onAdFailedToShow/onVideoComplete/onUserEarnedReward)
--------------------------------- NRatel割 ---------------------------------
适配器要做的就是:
实现Admob Adapter基类的接口方法,调用自家广告的接口,初始化、加载、展示成功/失败/完成某些过程时回调AdMob的回调方法。
注意:admob在调用适配器的广告加载接口时,会传过来一个MediationRewardedAdConfiguration,可以从它里面取到后台配置的可选参数,常用来从Admob后台传递placementID给适配器。
各家广告平台如果未和Admob合作,都需要自己实现这个适配器。
而Pangle 提供了一个示例。
下载地址:https://www.pangle.cn/union/media/union/download?platform=admob(需要登录)
注意:这个示例需要按照 Admob 激励广告自定义事件的文档,做一些修改,才可使用。
--------------------------------- NRatel割 ---------------------------------
安卓注意:
1、由于当前项目只需要激励视频,所以只保留AdmobRewardVideoAdapter.java,其他的 java文件全部删除。
2、写好适配代码后,将其放入Unity工程 Assets/PangleSDK/Android/Adapter/ 下。
3、实际测试时,发现适配器的初始化不会被调用。于是,要将pangle的初始化放在加载时,做个标记,保证只初始化一次。
--------------------------------- NRatel割 ---------------------------------
IOS:
1、由于当前项目只需要激励视频,所以只保留BUDAdmob_RewardCustomEventAdapter.h 和 BUDAdmob_RewardCustomEventAdapter.m,其他的 .h文件和.m文件全部删除(可改名)。
2、加载时调用pangle的初始化,并做个标记,保证只初始化一次。
3、 IOS只能调IOS的加载和播放。否则会因找不到适配器而报错。(安卓没问题,但尽量也只调自己的)。
4、 placementID 必须是String类型,在后台配置时要注意。(IOS中解析json,返回NSString时竟然没报错)。
--------------------------------- NRatel割 ---------------------------------
三、IOS打包遇到的问题
ios 打包的流程:
1)、将Unity工程 导出成 Xcode工程,Unity C# 中调用 BuildPipeline.BuildPlayer(BuildPlayerOptions buildPlayerOptions)
2)、使用 xcodebuild 将 Xcode工程打包成 ipa。
sdk使用cocoapods管理
--------------------------------- NRatel割 ---------------------------------
遇到的问题:
1、ruby 重装。(mac 10.15.7 和 ruby 2.6.3p62下 cocoapods 安装失败) :
关闭 mac sip
sudo rvm remove 3.0.0
rvm ruby 3.0.0
sudo gem install -n /usr/local/bin cocoapods
2、cocoapods 要安装在 /usr/local/bin下,否则unity不能识别。
四、激励视频初始化、加载和播放策略。
记得在上一家公司的时候,是用Fyber聚合,当时都没啥经验,每个广告位都申请一个广告位ID,整天为填充率低发愁。
原因是:广告请求加载后不展示,广告商会降低填充率。
其实还能想到几种策略。
策略一:所有广告场景共用一个adUnitId,游戏登录时初始化,初始化成功后立刻加载一个,然后每次播放关闭后重新加载。
优点:一定程度上解决了填充率低的问题。
缺点:1、解决的不彻底,登录时自动加载的广告还是有可能不被用户播放。2、不好处理加载失败的情况,因为官方不推荐失败即重试(可能连续失败),要想好重试策略(但似乎怎样都别扭)。
策略二:广告场景用可用一个或多个adUnitId,游戏登录时初始化,用户点击播放时主动加载并等待,加载完成后播放。
优点:能解决策略一的所有问题。
缺点:有等待时间,对体验有一定影响,要么强制让用户等待,要么用户可能中途放弃。
策略三:所有广告场景共用两个adUnitId(双线)。设置 cd,20s较合适。(Admob聚合政策:60s内请求超过3次可能会影响广告填充)。
优点:损失一些填充率提升体验(项目实际采用)。
缺点:维护逻辑较复杂。
--------------------------------- NRatel割 ---------------------------------
在我自己看来,策略二可能是最简单最清晰最理想的策略。目前也已经发现了有游戏采用。见《一念逍遥》的观影阁。
但是你不一定能说服你的老板采用策略二。因为他可能更在乎直观的感受而不管内在逻辑。哈哈。
其实仔细想一下,如果用户打算看激励广告,会在乎那一点等待时间吗?如果不打算看,你提前加载了也没用。
五、完整示例
已放入github,并抹掉了参数(请使用自己的参数)(用的策略一)。
https://github.com/NRatel/AdsDemo/
Unity接入激励视频广告,Admob+UnityAds+FacebookAudienceNetwork+Pangle。相关推荐
- Android 接入穿山甲激励视频广告步骤与错误总结
1.先去穿山甲官网,注册登录账号 2.侧边栏->广告变现->流量->应用->新建应用 3.侧边栏->广告变现->流量->代码位->新建代码位 4. 侧边 ...
- 微信小程序接入广告(banner广告 激励视频广告 插屏广告)
1.banner广告 <ad unit-id="{{ adUnitId }}"></ad> 2.视频广告 <ad unit-id="{{ a ...
- 穿山甲和广点通激励视频广告打开失败的异常处理
由于项目里接入了广告,包括但不限于穿山甲sdk和广点通sdk,视频广告是收益比较高的广告,项目里面出现的地方比较多.流程一般都是UI上有个按钮,点击按钮,请求到激励视频广告,然后直接打开该广告,也就是 ...
- 穿山甲sdk激励视频广告关闭按钮引发的bug排查及解决
项目中接入了穿山甲广告,其中包括图文广告和视频广告,后期发现一个偶现的问题,就是看完激励视频广告后,点击视频页面的关闭按钮,此时回到了app源生页面,UI卡住了,本来看完视频有个加分操作,现在没了.排 ...
- 小游戏内测激励视频广告,然而小程序最大的潜力是电商
4月25日,微信发布公告,宣布"为支持小游戏开发者更好将游戏场景与广告融合,现面向部分小游戏开发者启动激励式视频广告组件测试."这是去年3月小游戏与耐克尝试合作"基座广告 ...
- uniapp 小程序 加载显示激励视频广告
uniapp激励广告文档:uni-app官网https://uniapp.dcloud.io/api/a-d/rewarded-video微信官网激励广告文档:激励视频广告 | 微信开放文档微信开发者 ...
- Unity接入腾讯广告/腾讯联盟/优量汇SDK操作步骤——源码+图文效果详情
Unity接入腾讯广告/腾讯联盟/优量汇SDK操作步骤--源码+图文效果详情 前言 一.下载SDK 二.官网注册相关项目信息 1.新建媒体 2.新建广告位 三.更改代码 1.更改初始化SDK的代码 2 ...
- cocos creator 微信小游戏 封装banner、原生格子、插屏、激励视频广告
创建WxPlatform.ts文件 封装bannger广告 class WxPlatform {//banner广告banner: BannerAd;showBanner() {if (cc.sys. ...
- IOS项目接入Vungle视频广告,单例类,可直接调用
IOS项目接入Vungle视频广告,单例类,为了图方便的 复制到项目里,可以直接调用显示 生产环境: XCode 10.1, Vungle: 6.3.2 调用方法: // 初始化: 参数是否打开日志 ...
最新文章
- MFC全局函数开局——AfxGetApp解剖
- 技术人必备的碎片化时间学习工具
- koa-generator 快速生成 koa2 服务的脚手架工具
- JAVA minaio模型_分布式系统之Java IO模型
- SQL Server 2014 许可证(六)虚拟化中的授权
- spring mvc +cookie+拦截器功能 实现系统自动登陆
- LintCode-73.前序遍历和中序遍历树构造二叉树
- Access2016学习12
- 主流微波雷达感应语音播报雷达感应照明灯LD602模块
- 重装显卡驱动,解决NVIDIA-SMI has failed问题
- Scratch www 系统搭建
- 嵌入式开发Linux入门
- 上海是怎么错失这些年的互联网机遇的?——写的很好,转
- HTML5小游戏源码收藏
- 利用matlab实现非线性拟合(三维、高维、参数方程)
- geany配置python_python使用Geany编辑器配置方法
- 熊过留印---爱心篇
- Office2016离线包下载
- NB 的开源项目遍地开花——GitHub 热点速览 Vol.41
- Vector-常用CAN工具 - CANoe入门到精通_02